Hadoop| HDFS

HDFS 

 

 

1. HDFS--寫(上傳)

NameNode:Master主管管理者,管理HDFS的名稱空間、配置副本策略、管理數據塊Block的映射信息、處理客戶端讀寫請求;node

DataNode:Slave,執行NN下達的命令,存儲實際的數據塊、執行數據塊的讀寫操做;瀏覽器

Client:①文件切分,將文件切分紅一個個Block再上傳;②與NameNode交互,獲取文件的位置信息;③與DataNode交互讀取或寫入數據;④Client提供一些命令來管理HDFS,如格式化NameNode;⑤經過一些命令來訪問HDFS,如對HDFS的增刪改查操做;緩存

SecondaryNameNode:輔助NameNode,如按期合併FSimage和Edits並推送給NameNode;②緊急狀況下輔助恢復NameNode;安全

塊:HDFS中的文件在物理上分塊存儲Block,塊的大小可經過配置參數 dfs.blocksize來規定,在Hadoop2.x中默認128M,若是尋址時間約爲10ms(查找目標Block的時間10ms),尋址時間爲傳輸時間的1%最佳,所以傳輸時間=10ms/0.01=1s;目前磁盤的傳輸廣泛在100MB/S;則Block的大小爲1s*100M/S=100M,湊個整數就是128M了。服務器

 

 ①客戶端經過Distributed FileSystem向NameNode請求上傳文件,NameNode檢查目標文件是否已存在,父目錄是否存在。網絡

 ②NameNode返回是否能夠上傳;app

 ③Client請求第一個Block上傳到哪幾個DataNode服務器上;ide

 ④NameNode返回3個DataNode節點DN一、DN二、DN3;oop

 ⑤Client經過FSDataOutputStream模塊請求向DN1發起上傳請求創建通訊通道,DN1-->DN2-->DN3依次串行,DN3-->DN2-->DN1依次應答成功告知Client性能

 ⑥Client客戶端開始往DN1上傳第一個Block(先從磁盤讀取數據放到一個本地內存緩存),以Packet爲單位,DN1收到一個Packet就會傳給DN2,DN2傳給DN3;DN1每傳一個packet會放入一個應答隊列等待應答。

 ⑦當一個Block傳輸完成以後,客戶端再次請求NameNode上傳第二個Block的服務器。重複步驟⑤--⑦;

 

在HDFS寫數據的過程當中,NameNode會選擇距離待上傳數據最近距離的DataNode接收數據。那麼這個最近距離怎麼計算呢?

節點距離:兩個節點到達最近的共同祖先的距離總和。

DN1是最近的,DN2和DN3是根據第一個節點DN1選出來的;

第二次的DN四、DN五、DN6可能跟第一次傳輸的DN同樣,也可能不同取決於內部集羣的情況;兩次返回的DN都是獨立的。

網絡拓撲圖(只描述關係,不描述實體)

N1與N2之間的距離爲2;(找線條數)

假設N一、N二、N3三臺機器,從N1上傳數據,則最短的節點就是它自己0;

後兩個的選擇是根據機架感知來選:

For the common case, when the replication factor is three, HDFS’s placement policy is to put one replica on one node in the local rack, 
another on a different node in the local rack, and the last on a different node in a different rack.

第二個副本和第一個副本位於相同機架,隨機節點;

第三個副本位於不一樣機架的隨機節點;前提都是在相同數據中心的。

 串行而不是並行;在於集羣的性能限制,第一是NameNode的內存;第二個限制是IO(網絡IO| 磁盤IO ),串行每一個都是一進一出,而並行所有集中在client上致使傳輸的性能降低;

 2. HDFS讀數據流程(下載)

 

 

1)客戶端經過Distributed FileSystem向NameNode請求下載文件,NameNode經過查詢元數據,找到文件塊所在的DataNode地址。給Client響應;

2)Client發起請求下載第一塊Block數據;NameNode返回DN一、DN二、DN3表示用這3個節點存儲的數據;

3)Client挑選一臺DataNode(就近原則,而後隨機)服務器,發起創建通訊通道請求,DN1迴應應答成功;

4 )Client打開一個流FSDataInoutStream 請求讀取數據,DataNode開始傳輸數據給客戶端(從磁盤裏面讀取數據輸入流,以Packet爲單位來作校驗)。

4)客戶端以Packet爲單位接收,先在本地緩存,而後寫入目標文件。

5 )依次重複 2)--4)直到所有下載完成;NameNode響應數據傳輸完畢,流FSDataInputStream關閉;

 

 

3. NN和2NN的工做機制

  NameNode的元數據須要存放在內存中,由於常常須要進行隨機訪問還有響應客戶請求,爲了提升效率;

  同時在磁盤中備份元數據的FsImage,爲了數據的安全性防止斷電等致使元數據的丟失;

  引入Edits文件(只進行追加操做,效率很高),(是爲了解決內存中元數據更新時,若同時更新FsImage致使效率下降;若不更新產生一致性問題一旦NameNode節點斷電致使數據丟失)每當元數據有更新或者添加元數據時,修改內存中的元數據並追加到Edits中。這樣,一旦NameNode節點斷電,能夠經過FsImage和Edits的合併,合成元數據。

  引入一個新的節點SecondaryNamenode,專門用於FsImage和Edits的合併。(若是長時間添加數據到Edits中,會致使該文件數據過大,效率下降,並且一旦斷電,恢復元數據須要的時間過長。所以,須要按期進行FsImage和Edits的合併,若是這個操做由NameNode節點完成,又會效率太低。

這種保存機制相似在Redis的RDB和AOF:

RDB保存的快,讀取的慢;AOF保存的快安全性高,讀取慢;

相似AOF的保存是edits.log(每個對元數據的變更,增刪改查,都會當即持久化到edits.log)

相似RDB的是FSimage,隨着NN的操做,每隔一段時間存一個檔; 啓動的時候先加載這個存檔,而後再加載很短的一段edits.log;

 NN是隻寫edits.log這個文件而且負責edits.log和FSimage的合併;

 

 

 

先加載fsimage(存檔),再加載edits.log(過程);

先寫edits,再讀寫到內存(爲了數據的安全性);

 edits-inprogress_002這種的都不會刪除,而fsimage是隻保留最新的2份;

 

Fsimage:NameNode內存中元數據序列化後造成的文件。包含HDFS文件系統的全部目錄和文件inode的序列化信息;是HDFS文件系統元數據的永久性檢查點;

Edits:記錄客戶端更新--增刪改元數據信息的每一步操做。

NameNode啓動時,先滾動Edits並生成一個空的edits.inprogress,而後加載Edits和Fsimage到內存中,此時NameNode內存就持有最新的元數據信息。

 第一階段:NameNode啓動

  1 )第一次啓動NameNode格式化後,建立Fsimage和Edits文件。若是不是第一次啓動,直接加載編輯日誌eidts_inprogress_001和鏡像文件Fsimage到內存(先加載Fsimage--存檔,再加載edits_inprogress_001;)。

  2 )客戶端對元數據進行增刪改的請求。(先記錄在edits_inprogress_001再加載到內存爲了數據的安全性;

  3 )記錄操做日誌edits_inprogress_001和更新滾動日誌;這些請求的操做首先會被記錄到edits.inprogress中(查詢元數據的操做不會被記錄在Edits中,由於查詢操做不會更改元數據信息);  若是此時NameNode掛掉,重啓後會從Edits中讀取元數據的信息。

  4 )而後,NameNode會在內存中執行元數據的增刪改的操做。

第二階段:Secondary NameNode工做

  1 )Secondary NameNode詢問NameNode是否須要CheckPoint。直接帶回NameNode是否檢查結果。

  2 )Secondary NameNode請求執行CheckPoint。

  3 )NameNode滾動正在寫的Edits日誌,並生成一個空的edits_inprogress_002,滾動Edits的目的是給Edits打個標記,之後全部新的操做都寫入edits_inprogress_002

  4)將滾動前的編輯日誌Edits_001和鏡像文件fsimage 拷貝到Secondary NameNode。

  5)加載到內存,併合並。(所謂合併,就是將Edits和Fsimage加載到內存中,照着Edits中的操做一步步執行,最終造成新的Fsimage。)

       6)生成新的鏡像文件fsimage.chkpoint

       7)拷貝fsimage.chkpoint到NameNode。

       8)NameNode將fsimage.chkpoint從新命名成fsimage替換掉原來的Fsimage。

 

oiv查看Fsimage文件

[kris@hadoop101 current]$ ll
總用量 7256
-rw-rw-r--. 1 kris kris 1048576 1月  17 17:10 edits_0000000000000000001-0000000000000000001
-rw-rw-r--. 1 kris kris      42 1月  18 11:08 edits_0000000000000000002-0000000000000000003
-rw-rw-r--. 1 kris kris 1048576 1月  18 17:12 edits_0000000000000000004-0000000000000000020
-rw-rw-r--. 1 kris kris 1048576 1月  18 18:27 edits_0000000000000000021-0000000000000000021
-rw-rw-r--. 1 kris kris      42 1月  18 18:29 edits_0000000000000000022-0000000000000000023
-rw-rw-r--. 1 kris kris    3869 1月  18 19:29 edits_0000000000000000024-0000000000000000074
-rw-rw-r--. 1 kris kris     922 1月  18 20:29 edits_0000000000000000075-0000000000000000090
-rw-rw-r--. 1 kris kris 1048576 1月  18 20:37 edits_0000000000000000091-0000000000000000107
-rw-rw-r--. 1 kris kris      42 1月  19 11:28 edits_0000000000000000108-0000000000000000109
-rw-rw-r--. 1 kris kris      42 1月  19 12:28 edits_0000000000000000110-0000000000000000111
-rw-rw-r--. 1 kris kris      42 1月  19 13:28 edits_0000000000000000112-0000000000000000113
-rw-rw-r--. 1 kris kris    1276 1月  19 14:28 edits_0000000000000000114-0000000000000000127
-rw-rw-r--. 1 kris kris      42 1月  19 15:28 edits_0000000000000000128-0000000000000000129
-rw-rw-r--. 1 kris kris      42 1月  19 16:28 edits_0000000000000000130-0000000000000000131
-rw-rw-r--. 1 kris kris 1048576 1月  19 16:28 edits_0000000000000000132-0000000000000000132
-rw-rw-r--. 1 kris kris 1048576 1月  19 20:45 edits_0000000000000000133-0000000000000000133
-rw-rw-r--. 1 kris kris   14290 1月  20 12:24 edits_0000000000000000134-0000000000000000254
-rw-rw-r--. 1 kris kris      42 1月  20 13:24 edits_0000000000000000255-0000000000000000256
-rw-rw-r--. 1 kris kris      42 1月  20 14:24 edits_0000000000000000257-0000000000000000258
-rw-rw-r--. 1 kris kris 1048576 1月  20 14:24 edits_inprogress_0000000000000000259
-rw-rw-r--. 1 kris kris    2465 1月  20 13:24 fsimage_0000000000000000256
-rw-rw-r--. 1 kris kris      62 1月  20 13:24 fsimage_0000000000000000256.md5
-rw-rw-r--. 1 kris kris    2465 1月  20 14:24 fsimage_0000000000000000258
-rw-rw-r--. 1 kris kris      62 1月  20 14:24 fsimage_0000000000000000258.md5
-rw-rw-r--. 1 kris kris       4 1月  20 14:24 seen_txid
-rw-rw-r--. 1 kris kris     206 1月  20 11:36 VERSION
[kris@hadoop101 current]$ 
[kris@hadoop101 current]$ cat seen_txid  //文件保存的是一個數字,就是最後一個edit_數字
259

[kris@hadoop101 current]$ hdfs oiv -p XML -i fsimage_0000000000000000258 -o /opt/module/hadoop-2.7.2/fsimage.xml
[kris@hadoop101 current]$ sz /opt/module/hadoop-2.7.2/fsimage.xml 
View Code

能夠看出,Fsimage中沒有記錄塊所對應DataNode

在集羣啓動後,要求DataNode上報數據塊信息,並間隔一段時間後再次上報。

 

[kris@hadoop101 current]$ hdfs oev -p XML -i edits_0000000000000000257-0000000000000000258 -o /opt/module/hadoop-2.7.2/edits.xml
[kris@hadoop101 current]$ sz /opt/module/hadoop-2.7.2/edits.xml 

NameNode如何肯定下次開機啓動的時候合併哪些Edits

 CheckPoint時間設置

1)一般狀況下,SecondaryNameNode每隔一小時執行一次。

2)一分鐘檢查一次操做次數;

3 )當操做次數達到1百萬時,SecondaryNameNode執行一次。

NameNode故障處理

方法一

將SecondaryNameNode中數據拷貝到NameNode存儲數據的目錄;
這樣作有隱患,會使得數據有丟失,2NN有一部分數據還沒合併(沒到合併觸發機制)
[kris@hadoop103 dfs]$ ll
總用量 8
drwx------. 3 kris kris 4096 1月  20 11:37 data
drwxrwxr-x. 3 kris kris 4096 1月  20 11:37 namesecondary
[kris@hadoop103 dfs]$ scp -r namesecondary hadoop101:/opt/module/hadoop-2.7.2/data/tmp/dfs

[kris@hadoop101 dfs]$ ll
總用量 8
drwx------. 2 kris kris 4096 1月  20 15:51 data
drwxrwxr-x. 3 kris kris 4096 1月  20 15:52 namesecondary
[kris@hadoop101 dfs]$ mv namesecondary/ name
[kris@hadoop101 dfs]$ ll
總用量 8
drwx------. 2 kris kris 4096 1月  20 15:51 data
drwxrwxr-x. 3 kris kris 4096 1月  20 15:52 name


kris@hadoop101 dfs]$ start-dfs.sh 
Starting namenodes on [hadoop101]
hadoop101: starting namenode, logging to /opt/module/hadoop-2.7.2/logs/hadoop-kris-namenode-hadoop101.out

 

 

 

bin/hadoop fs 具體命令   OR  bin/hdfs dfs 具體命令
dfs是fs的實現類。

bin/hadoop fs    可獲得全部的命令

可直接建立並寫入文件;ctrl+c結束;>>是追加
[kris@hadoop101 ~]$ cat >> 1
a
f
d
>是把以前的覆蓋掉了
[kris@hadoop101 ~]$ cat > 1
2 3 4

 方法二

1.修改hdfs-site.xml中的
<property>
  <name>dfs.namenode.checkpoint.period</name>
  <value>120</value>
</property>

<property>
  <name>dfs.namenode.name.dir</name>
  <value>/opt/module/hadoop-2.7.2/data/tmp/dfs/name</value>
</property>

2.kill -9 NameNode進程
[kris@hadoop101 hadoop]$ kill -9 5553
3. 刪除NameNode存儲的數據(/opt/module/hadoop-2.7.2/data/tmp/dfs/name)
  rm -rf /opt/module/hadoop-2.7.2/data/tmp/dfs/name/*
4. 若是SecondaryNameNode不和NameNode在一個主機節點上,須要將SecondaryNameNode存儲數據的目錄拷貝到NameNode存儲數據的平級目錄,並刪除in_use.lock文件
  [kris@hadoop103 dfs]$ scp -r namesecondary hadoop101:/opt/module/hadoop-2.7.2/data/tmp/dfs

  [kris@hadoop101 namesecondary]$ rm -rf in_use.lock
  [atguigu@hadoop101 dfs]$ pwd
    /opt/module/hadoop-2.7.2/data/tmp/dfs
  [atguigu@hadoop101 dfs]$ ls
    data  name  namesecondary
 

  [kris@hadoop101 hadoop-2.7.2]$ hdfs namenode -importCheckpoint
  [kris@hadoop101 hadoop-2.7.2]$ hadoop-daemon.sh start namenode
    starting namenode, logging to /opt/module/hadoop-2.7.2/logs/hadoop-kris-namenode-hadoop101.out

集羣安全模式

 

 

集羣處於安全模式,不能執行重要操做(寫操做)。集羣啓動完成後,自動退出安全模式。
(1)bin/hdfs dfsadmin -safemode get        (功能描述:查看安全模式狀態)
(2)bin/hdfs dfsadmin -safemode enter      (功能描述:進入安全模式狀態)
(3)bin/hdfs dfsadmin -safemode leave    (功能描述:離開安全模式狀態)
(4)bin/hdfs dfsadmin -safemode wait    (功能描述:等待安全模式狀態)

4. DataNode

工做機制

 

1)一個數據塊在DataNode上以文件形式存儲在磁盤上,包括兩個文件,一個是數據自己,一個是數據塊的元數據包括數據塊的長度,塊數據的校驗和,以及時間戳。

2)DataNode啓動後向NameNode註冊(拜山頭)來獲取集羣的ID,經過後,週期性(1小時)的向NameNode上報全部的塊信息。首次上報是集羣剛剛啓動時安全模式下;塊所在位置的信息並不禁NameNode來維護,由於要求塊的信息是動態(週期性的彙報)的而不能是靜態的,這也是觸發自動備份機制的條件。

3)心跳是每3秒一次,心跳返回結果帶有NameNode給該DataNode的命令如複製塊數據到另外一臺機器,或刪除某個數據塊。若是超過10分鐘沒有收到某個DataNode的心跳,則認爲該節點不可用。

4)集羣運行中能夠安全加入和退出一些機器。

 校驗和(crc 、md五、sha1)用小的數據段來表示長的數據段的特徵

DataNode節點保證數據完整性的方法。

1)當DataNode讀取Block的時候,它會計算CheckSum。

2)若是計算後的CheckSum,與Block建立時值不同,說明Block已經損壞。

3)Client讀取其餘DataNode上的Block。

4)DataNode在其文件建立後周期驗證CheckSum

 

掉線時限參數設置

須要注意的是hdfs-site.xml 配置文件中的heartbeat.recheck.interval的單位爲毫秒,dfs.heartbeat.interval的單位爲秒。

服役新數據節點

環境準備

       (1)在hadoop103主機上再克隆一臺hadoop104主機

       (2)修改IP地址和主機名稱

       (3)刪除原來HDFS文件系統留存的文件(/opt/module/hadoop-2.7.2/data和log

       (4)source一下配置文件

[kris@hadoop104 hadoop-2.7.2]$ source /etc/profile

服役新節點具體步驟 (1)直接啓動DataNode,便可關聯到集羣
[kris@hadoop104 hadoop-2.7.2]$ sbin/hadoop-daemon.sh start datanode [atguigu@hadoop104 hadoop-2.7.2]$ sbin/yarn-daemon.sh start nodemanager

退役舊數據節點

添加白名單

添加到白名單的主機節點,都容許訪問NameNode,不在白名單的主機節點,都會被退出。

配置白名單的具體步驟以下:

1)在NameNode的/opt/module/hadoop-2.7.2/etc/hadoop目錄下建立dfs.hosts文件

[kris@hadoop101 hadoop]$ pwd
/opt/module/hadoop-2.7.2/etc/hadoop
[kris@hadoop101 hadoop]$ touch dfs.hosts
[kris@hadoop101 hadoop]$ vi dfs.hosts
#添加以下主機名稱(不添加hadoop104)
hadoop101
hadoop102
hadoop103

2)在NameNode的hdfs-site.xml配置文件中增長dfs.hosts屬性

<property>
<name>dfs.hosts</name>
<value>/opt/module/hadoop-2.7.2/etc/hadoop/dfs.hosts</value>
</property>

3)配置文件分發

[kris@hadoop101 hadoop]$ xsync hdfs-site.xml 

4)刷新NameNode

[kris@hadoop101 hadoop]$ hdfs dfsadmin -refreshNodes Refresh nodes successful 5)更新ResourceManager節點 [kris@hadoop101 hadoop]$ yarn rmadmin -refreshNodes 19/01/20 20:29:10 INFO client.RMProxy: Connecting to ResourceManager at hadoop102/192.168.1.102:8033 若是數據不均衡,能夠用命令實現集羣的再平衡 [kris@hadoop101 sbin]$ ./start-balancer.sh starting balancer, logging to /opt/module/hadoop-2.7.2/logs/hadoop-atguigu-balancer-hadoop102.out Time Stamp Iteration# Bytes Already Moved Bytes Left To Move Bytes Being Moved

 黑名單退役

在黑名單上面的主機都會被強制退出。

1.在NameNode的/opt/module/hadoop-2.7.2/etc/hadoop目錄下建立dfs.hosts.exclude文件

[kris@hadoop101 hadoop]$ touch dfs.hosts.exclude

[kris@hadoop101 hadoop]$ vi dfs.hosts.exclude

添加以下主機名稱(要退役的節點)

hadoop105

2.在NameNode的hdfs-site.xml配置文件中增長dfs.hosts.exclude屬性

<property>
<name>dfs.hosts.exclude</name>
      <value>/opt/module/hadoop-2.7.2/etc/hadoop/dfs.hosts.exclude</value>
</property>

 

3.刷新NameNode、刷新ResourceManager

[kris@hadoop101 hadoop-2.7.2]$ hdfs dfsadmin -refreshNodes
Refresh nodes successful

[kris@hadoop101 hadoop-2.7.2]$ yarn rmadmin -refreshNodes
17/06/24 14:55:56 INFO client.RMProxy: Connecting to ResourceManager at hadoop102/192.168.1.103:8033

 

4. 檢查Web瀏覽器,退役節點的狀態爲decommission in progress(退役中),說明數據節點正在複製塊到其餘節點,如圖

 

5. 等待退役節點狀態爲decommissioned(全部塊已經複製完成),中止該節點及節點資源管理器。注意:若是副本數是3,服役的節點小於等於3,是不能退役成功的,須要修改副本數後才能退役。

[kris@hadoop105 hadoop-2.7.2]$ sbin/hadoop-daemon.sh stop datanode
stopping datanode
[kris@hadoop105 hadoop-2.7.2]$ sbin/yarn-daemon.sh stop nodemanager
stopping nodemanager

6. 若是數據不均衡,能夠用命令實現集羣的再平衡

[kris@hadoop102 hadoop-2.7.2]$ sbin/start-balancer.sh 
starting balancer, logging to /opt/module/hadoop-2.7.2/logs/hadoop-atguigu-balancer-hadoop102.out
Time Stamp     Iteration#  Bytes Already Moved  Bytes Left To Move  Bytes Being Moved

注意:不容許白名單和黑名單中同時出現同一個主機名稱。

 

HDFS的客戶端操做

[kris@hadoop101 hadoop-2.7.2]$ hadoop fs -ls / Found 3 items -rw-r--r-- 3 kris supergroup 6 2019-01-18 17:09 /t1.txt -rw-r--r-- 3 kris supergroup 6 2019-01-18 17:12 /t2.txt drwxr-xr-x - kris supergroup 0 2019-01-18 17:05 /test hadoop fs -mkdir -p /sanguo/shuguo -p能夠建立多級目錄,不加-p只能建立單級
本地到遠程
剪切 [kris@hadoop101 hadoop-2.7.2]$ hadoop fs -moveFromLocal localTest/1.txt /test 複製 [kris@hadoop101 hadoop-2.7.2]$ hadoop fs -copyFromLocal localTest/2.txt /test hadoop fs -put jpsall /test 追加 [kris@hadoop101 hadoop-2.7.2]$ hadoop fs -appendToFile localTest/2.txt /test/1.txt 查看 [kris@hadoop101 hadoop-2.7.2]$ hadoop fs -cat /test/1.txt

 

從遠程到本地 複製 從HDFS拷貝到本地
[kris@hadoop101 hadoop-2.7.2]$ hadoop fs -copyToLocal /test/1.txt ./ <==等效==> hadoop fs -get /t1.txt ./localTest [kris@hadoop101 hadoop-2.7.2]$ ll 總用量 72 -rw-r--r--. 1 kris kris 61 1月 18 19:00 1.txt 複製 從HDFS的一個路徑拷貝到HDFS的另外一個路徑 [kris@hadoop101 hadoop-2.7.2]$ hadoop fs -cp /test/1.txt / 移動 在HDFS目錄中移動文件 [kris@hadoop101 hadoop-2.7.2]$ hadoop fs -mv /test/2.txt / 獲取併合並 [kris@hadoop101 hadoop-2.7.2]$ ll -rw-r--r--. 1 kris kris 61 1月 18 19:00 1.txt [kris@hadoop101 hadoop-2.7.2]$ hadoop fs -getmerge /test/* ./1.txt ###不能合併到一個目錄文件夾 [kris@hadoop101 hadoop-2.7.2]$ ll -rw-r--r--. 1 kris kris 96 1月 18 19:14 1.txt

 

查看尾部 [kris@hadoop101 hadoop-2.7.2]$ hadoop fs -tail /test/jpsall rmdir:刪除空目錄 hadoop fs -rmdir /test 刪除文件夾 [kris@hadoop101 hadoop-2.7.2]$ hadoop fs -rm /test/1.txt 19/01/18 19:22:53 INFO fs.TrashPolicyDefault: Namenode trash configuration: Deletion interval = 0 minutes, Emptier interval = 0 minutes. Deleted /test/1.txt 遞歸刪除 [kris@hadoop101 hadoop-2.7.2]$ hadoop fs -rm -r /bigdata 19/01/18 19:27:26 INFO fs.TrashPolicyDefault: Namenode trash configuration: Deletion interval = 0 minutes, Emptier interval = 0 minutes. Deleted /bigdata du統計文件夾的大小信息 [kris@hadoop101 hadoop-2.7.2]$ hadoop fs -du -s -h /test 35 /test [kris@hadoop101 hadoop-2.7.2]$ hadoop fs -du -h /test 29 /test/2.txt 6 /test/t1.txt 設置HDFS中文件的副本數量 [kris@hadoop101 hadoop-2.7.2]$ hadoop fs -setrep 10 /1.txt Replication 10 set: /1.txt

-chgrp 、-chmod、-chown:Linux文件系統中的用法同樣,修改文件所屬權限

 

 

 

 [kris@hadoop101 hadoop-2.7.2]$ sudo yum install -y lrzsz

sz 是下載到本地; rz -E是從本地上傳文件

相關文章
相關標籤/搜索