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

④看看現象

相關文章
相關標籤/搜索