1. 程式人生 > >HDFS的體系結構和操作

HDFS的體系結構和操作

HDFS fs 常用命令

1.對hdfs操作的命令格式是hadoop fs
  1.1 -ls 表示對hdfs下一級目錄的檢視

hadoop fs -ls hdfs://chaoren:9000/ ----對HDFS的根目錄進行檢視(Linux下:ls /)
    path:這個可以使用more core-site.xml進行檢視,發現裡面配置有這個path的值為hdfs://chaoren:9000。

1.2 -lsr 表示對hdfs目錄的遞迴檢視

hadoop fs -lsr hdfs://chaoren:9000/
    hadoop fs -lsr /
    這兩個命令的作用是一樣的,都是查詢HDFS根目錄下的

1.3 -mkdir 建立目錄

hadoop fs -mkdir /d1 —建立資料夾d1
    hadoop fs -ls / —驗證資料夾是否建立成功

  1.4 -put <src> <des> 從linux上傳檔案到hdfs

hadoop fs -put ./core-site.xml hdfs://chaoren:9000/d1

1.5 -get 從hdfs下載檔案到linux

hadoop fs -get /d1/core-site.xml .

1.6 -text 檢視檔案內容

hadoop fs -text /d1/core-site.xml

1.7 -rm 表示刪除檔案

hadoop fs -rm /d1/core-site.xml

1.8 -rmr 表示遞迴刪除檔案

hadoop fs -rmr /d1

2.hdfs在對資料儲存進行block劃分時,如果檔案大小超過block,那麼按照block大小進行劃分;不如block size的,劃分為一個塊,是實際資料大小。

Namenode:
1、是整個檔案系統的管理節點。它維護著整個檔案系統的檔案目錄樹,檔案/目錄的元資訊和每個檔案對應的資料塊列表。接收使用者的操作請求。

2、檔案包括:(原始碼中hdfs-site.xml的dfs.name.dir屬性)
(1)fsimage:元資料映象檔案。儲存某一時段namenode記憶體元資料資訊。
(2)edits:操作日誌檔案。
(3)fstime:儲存最近一次checkpoint的時間。
以上這些檔案都是儲存在Linux的檔案系統中。

Datanode:
提供真實檔案資料的儲存服務。

檔案塊(block):最基本的儲存單位。HDFS預設block大小是64MB。

不同於普通檔案系統的是,HDFS中,如果一個檔案小於一個數據塊的大小,並不佔用整個資料塊儲存空間,只佔用實際大小!
Replication:原始碼中hdfs-site.xml的dfs.replication屬性。多副本,預設是三個。

SecondaryNameNode:
1、HA的一個解決方案。但不支援熱配。配置即可。
2、執行過程:從namenode上下載元資料資訊(fsimage,edits),然後把二者合併,生成新的fsimage,在本地儲存,並將其推送到namenode,同時重置namenode的edits。
3、預設安裝在namenode節點上,但這樣不安全。

PermissionDenyException 許可權不足*****
錯誤:dfs.permissions的預設值是true。但是自己在用時,將其改為了false。改為了false,就不會報許可權不足的錯誤了。