HDFS操做

①必需要知道的

盗来的图:HDFS架构体系
html

一、Clientnode

在我们这就是Linux命令或者Java代码。
web

二、NameNodeapache

整个HDFS集群只有一个NameNode,它存储整个集群文件分别的元数据信息。这些信息以fsimage和editlog两个文件存储在本地磁 盘,Client经过这些元数据信息能够找到相应的文件。此外,NameNode还负责监控DataNode的健康状况,一旦发现DataNode异常, 就将其踢出,并拷贝其上数据至其它DataNode。虽然Client是与NameNode通讯,可是最终操做文件仍是链接Datenode安全

三、Secondary NameNode架构

Secondary NameNode负责按期合并NameNode的fsimage和editlog。这里特别注意,它不是NameNode的热备,因此NameNode依 然是Single Point of Failure。它存在的主要目的是为了分担一部分NameNode的工做(特别是消耗内存的工做,由于内存资源对NameNode来讲很是珍贵)。oop

四、DataNodespa

DataNode负责数据的实际存储。当一个文件上传至HDFS集群时,它以Block为基本单位分布在各个DataNode中,同时,为了保证数据的可靠性,每一个Block会同时写入多个DataNode中(默认为3,我们搞成了2)。DataNode经过心跳向node汇报本身的状态,同时拿到namedode指派下来的command执行。orm

五、Blockhtm

默认64M一块,一块存三分,童叟无欺。

②Linux操做HDFS

        HDFS 命令基本就是 Linux命令前面加上 "Hadoop fs -",官方文档入口

        下面是具备表明性的命令:

            hadoop dfsadmin -safemode leave  //退出安全模式,否则没法put

            hadoop fs -mkdir /user/kitten     //建文件夹,建立HDFS的用户

                 hadoop fs -chown kitten  /user/kitten   //更改文件夹的全部权

            hadoop fs -ls /user   //罗列文件

            hadoop fs -lsr /user //递归罗列文件

            hadoop fs -put test.txt  /user/kitten  //从Linux复制到HDFS

            hadoop fs -get /user/kitten   /test.txt  //从HDFS取到Linux

            hadoop fs -cat /user/kitten/test.txt   //建文件

            hadoop fs -tail /user/kitten/test.txt  //查看最后1000字节

            hadoop fs -rm /user/kitten/test.txt //删除

            hadoop fs -help ls   //国际惯例,查看ls命令的帮助文档

   

③Java操做HDFS

④看看现象

相关文章
相关标签/搜索