寫在前面的話
Hdfs採用分佈式架構,爲上層的應用和用戶提供可擴展、高吞吐、高可靠的數據存儲服務。在整個Hadoop生態系統中,hdfs處於最底層,也是最無可替代的一個基礎設施。從2008年hadoop-0.10.1版本開始到現在的hadoop-3.0.0-beta1,hdfs已經走過了近10個年頭,其架構和功能特性也發生了巨大的變化。特別是hdfs3.0.0系列,和hdfs2.x相比,增加了基於糾刪碼(erasure encoding)的容錯方式,與傳統的副本方式相比,在同等可用性的情況下, 能大幅節省一半以上的空間,這也是自hdfs誕生近這十年來,數據可靠性機制上的一個重大變化(之前一直都是副本容錯方式)。此外hdfs3.0.0還增加了其它的一些特性,例如在Namenode HA中支持3個Namenode,可以容忍2個Namenode失效,而hdfs2.x只能容忍1個Namenode失效。
本文以連載的方式,在“大數據學習網”上記錄自己使用hadoop-3.0.0-beta1的hdfs的點點滴滴,包括從零開始搭建分佈式hdfs3.0,如何動態擴展hdfs節點、如何使用hdfs3.0的糾刪碼容錯等等。不當之處,請大家發郵件aishuc@126com給艾叔,謝謝!
4.1 查看目錄內容
例子,查看hdfs的根目錄內容,綠色部分表示要查看的路徑
[user@nn1 ~]$ hdfs dfs -ls /
4.2 上傳文件
例子,將/etc/profile上傳到hdfs的根目錄下,並驗證。
注意:
1. file:///etc/profile中file://表示本地文件系統,/etc/profile是本地文件的路徑。
2. 後面的/,表示的是hdfs的根目錄,因爲core-site.xml中配置了默認的文件系統是hdfs://nn1:9001
[user@nn1 ~]$ hdfs dfs -cp file:///etc/profile /
[user@nn1 ~]$ hdfs dfs -ls /
Found 1 items
-rw-r--r-- 3 user supergroup 1872 2017-11-27 14:45 /profile
4.3 上傳目錄
例子,將hadoop配置文件目錄上傳到hdfs的根目錄下,並驗證。
[user@nn1 ~]$ hdfs dfs -cp file:///home/user/hadoop-3.0.0-beta1/etc/hadoop/ /
[user@nn1 ~]$ hdfs dfs -ls /
Found 2 items
drwxr-xr-x - user supergroup 0 2017-11-27 14:49 /hadoop
-rw-r--r-- 3 user supergroup 1872 2017-11-27 14:45 /profile
[user@nn1 ~]$ hdfs dfs -ls /hadoop
Found 31 items
-rw-r--r-- 3 user supergroup 7861 2017-11-27 14:49 /hadoop/capacity-scheduler.xml
-rw-r--r-- 3 user supergroup 1335 2017-11-27 14:49 /hadoop/configuration.xsl
注意:
1. file:///home/user/hadoop-3.0.0-beta1/etc/hadoop/ 是源路徑,它和後面的/之間有一個空格
2. 後面的/,表示hdfs的根目錄
3. 上傳文件和上傳目錄的用法一樣,並不需要增加-r選項
4.4 下載文件
例子,將剛上傳的profile下載到本地/tmp目錄下
[user@nn1 ~]$ hdfs dfs -cp /profile file:///tmp/
[user@nn1 ~]$ ls -l /tmp/profile
-rw-r--r--. 1 user user 1872 Nov 27 15:02 /tmp/profile
注意:
1. 上傳和下載其實就是對調一下hdfs和本地路徑,我們只需要清楚:本地路徑前面要加file://,而hdfs直接用就可以了;
2. 如果在core-site.xml中配置默認文件系統爲file://,那麼/表示的就是本地文件系統的根目錄,如果要訪問hdfs,則要使用hdfs://nn1:9001/後面再跟路徑。
4.5 下載目錄
例子,下載hdfs中的/hadoop到/tmp目錄下
[user@nn1 ~]$ hdfs dfs -cp /hadoop file:///tmp/
[user@nn1 ~]$ ls -l /tmp/
total 28
drwxr-xr-x. 3 user user 4096 Nov 27 15:05 hadoop
注意:複製目錄和複製文件用法完全一樣。
4.6 刪除文件
刪除剛上傳的profile
[user@nn1 ~]$ hdfs dfs -rm /profile
Deleted /profile
[user@nn1 ~]$ hdfs dfs -ls /
Found 1 items
drwxr-xr-x - user supergroup 0 2017-11-27 14:49 /hadoop
4.7 刪除目錄
刪除剛上傳的hadoop目錄
[user@nn1 ~]$ hdfs dfs -rm -r /hadoop
Deleted /hadoop
[user@nn1 ~]$ hdfs dfs -ls /
注意:刪除目錄多了一個選項-r
上一篇:《hadoop-3.0.0-beta1運維手冊(006):hdfs3.0.0分佈式構建-啓動hdfs》
原創文章,轉載請註明: 轉載自大�����據學習網,作者:艾叔