美文网首页
HDFS学习

HDFS学习

作者: 肖涛_83df | 来源:发表于2017-03-15 21:38 被阅读0次

    HDFS是设计成一次写入,多次读取的场景,且不支持文件的修改

    HDFS通常 位于 /hadoop-2.6.4/temp/dfs目录下

    修改时间统一

    date -s "2017-03-15 20:14:00"

    namenode

    目录结构及文件分块位置的信息(元数据)的管理

    datanode

    文件的各个block的存储管理

    shell命令操作

    统一:       hadoop fs    

    -ls:显示目录信息       hadoop fs -ls /            显示根目录信息

    -mkdir (-p多级目录):创建目录        hadoop fs -mkdir /bbb      根目录上创建一个bbb的文件夹

    -moveFromLocal:从本地剪贴到hdfs上   hadoop fs -moveFromlocal /root/app/a.txt(本地路径) /a(服务器路径)

    -moveToLocal:从服务器剪贴到本地    hadoop fs -moveToLocal /aa/bb/1.txt服务器路径) /root/aaa(本地路径) 

    -appendToFile:追加一个文件到已经存在的文件末尾 hadoop fs -appendToFile /a.txt(本地路径) /b.txt(服务器路径)

    -copyFromLocal:从本地拷贝

    -copyToLocal:从服务器拷贝

    -cat:显示文件内容  hadoop fs -cat /aaa/bbb/hellow.txt

    -tail:显示一个文件的末尾 hadoop fs -tail /aaa/bbb/hellow.txt

    -text:以字符形式打印一个文件内容   hadoop fs -text /aaa/bbb/hellow.txt

    -chmod:更改文件权限   hadoop fs -chmod 666 /aaa/bbb/a.txt

    -chown:更改所属组      hadoop fs -chown someuse:someGroup /aaa/bb/a.txt

    -cp:从hdfs的一个路径拷贝到hdfs的另一个路径  hadoop fs -cp /aaa/bbb/a.txt /aaa/ccc/c.txt

    -mv:hdfs路径上的剪贴

    -get:等同于 -copyToLocal

    -put:等同于 -copyFromLocal

    -rm:删除  hadoop fs -rm -r /aaa/bbb

    -df:统计文件系统的可用空间信息   hadoop fs -df -h /

    -du:统计文件夹的大小信息   hadoop fs -du /aaa

    -count:统计指定目录下文件节点的数量个数 hadoop fs -count /aaa

    -setrep:设置hdfs中文件的副本数量   hadoop fs -setrep 3 /aaa/jdk.tar.gz  (注意这个命令不是立即执行的)

    可以查看官网APIhadoop.apache.org/docs/r2.6.5/

    hdfs dfsadmin -report    查看hdfs集群的工作状态、

    HDFS写入数据流程


    1.HDFS客户端向namdenode请求,namenode会检测目录树中是否存在一样的结构树

    2.namenode检测完结构树中是否存在相同的结构树,就会通知HDFS客户端是否可以上传文件

    3.可以上传文件就跟namenode通知需要上传文件,

    4.HDFS客户端上传文件

    5.namenode就会查询datanode信息池中挑选可用的节点以供上传(根据就近原则 a.首先就近挑选一台机器 b.优先选择另一个机架上的namenode c.本机架在挑选一台)

    6.服务端返回可用的datanode给HDFS客户端(d1,d2,d3有备份)

    7.HDFS客户端向datanode发出数据请求建立pipline的请求

    8.datanode1向datanode2,datanode2又向datanode3建立pipline请求。

    9.piplien请求建立好通知HDFS客户端。

    10,客户端将文件分成每个小包,通过socketStream进行数据传输

    11.datanode1创建目录存储数据。

    12.然后将备份至datanode2,datanode3

    13.通知HDFS客户端一个小包传输完毕,进行下一个小包的传输。

    HDFS读取数据

    1.与namenode通信查询元数据,找到文件所在的datanode服务。namenode返回文件信息

    2.挑选一台datanode(就近原则,然后随机)服务器,请求建立socket流

    3.datanode开始发送数据(从磁盘中读取数据放入流中,以packet为单位来校验)

    4.客户端以packet为单位接收,先在本地缓存,然后写入目标文件

    NAMENODE职责

    负责客户端的请求与响应

    元数据的管理(查询,修改)

    元数据的额管理

    相关文章

      网友评论

          本文标题:HDFS学习

          本文链接:https://www.haomeiwen.com/subject/ttkknttx.html