HDFS 常用操作分類匯總整理
1、HDFS文件的權(quán)限以及讀寫操作
HDFS文件的權(quán)限:
- 與Linux文件權(quán)限類似
- r: read; w:write; x:execute,權(quán)限x對于文件忽略,對于文件夾表示是否允許訪問其內(nèi)容
- 如果Linux系統(tǒng)用戶zhangsan使用hadoop命令創(chuàng)建一個(gè)文件,那么這個(gè)文件在HDFS中owner就是zhangsan
- HDFS的權(quán)限目的:阻止好人錯(cuò)錯(cuò)事,而不是阻止壞人做壞事。HDFS相信,你告訴我你是誰,我就認(rèn)為你是誰
HDFS文件的讀取:
HDFS文件的寫入:
HDFS文件存儲(chǔ):
兩個(gè)文件,一個(gè)文件156M,一個(gè)文件128在HDFS里面怎么存儲(chǔ)?
–Block為64MB
–rapliction默認(rèn)拷貝3份
HDFS文件存儲(chǔ)結(jié)構(gòu):
#p#
2、HDFS下的文件操作
(1)列出HDFS文件
通過“-ls”命令列出HDFS下的文件
- wu@ubuntu:~/opt/hadoop-0.20.2$ bin/hadoop dfs -ls
(2)列出HDFS目錄下某個(gè)文檔中的文件
此處展示的是“-ls 文件名”命令瀏覽HDFS下名為in的文檔中的文件
- wu@ubuntu:~/opt/hadoop-0.20.2$ bin/hadoop dfs -ls in
(3)上傳文件到HDFS
此處展示的是“-put 文件1 文件2”命令將hadoop-0.20.2目錄下的test1文件上傳到HDFS上并重命名為test
- wu@ubuntu:~/opt/hadoop-0.20.2$ bin/hadoop dfs -put test1 test
注意:在執(zhí)行“-put”時(shí)只有兩種可能,即是執(zhí)行成功和執(zhí)行失敗。在上傳文件時(shí),文件首先復(fù)制到DataNode上,只有所有的DataNode都成功接收完數(shù)據(jù),文件上傳才是成功的。
(4)將HDFS中的文件復(fù)制到本地系統(tǒng)中
此處展示的是“-get 文件1 文件2”命令將HDFS中的in文件復(fù)制到本地系統(tǒng)并命名為getin:
- wu@ubuntu:~/opt/hadoop-0.20.2$ bin/hadoop dfs -get in getin
(5)刪除HDFS下的文檔
此處展示的是“-rmr 文件”命令刪除HDFS下名為out的文檔:
- wu@ubuntu:~/opt/hadoop-0.20.2$ bin/hadoop dfs -rmr out
執(zhí)行命令后,查看只剩下一個(gè)in文件,刪除成功:
(6)查看HDFS下的某個(gè)文件
此處展示的是“-cat 文件”命令查看HDFS下in文件中的內(nèi)容:
- wu@ubuntu:~/opt/hadoop-0.20.2$ bin/hadoop dfs -cat in/*
輸出:
- hello world
- hello hadoop
PS:bin/hadoop dfs 的命令遠(yuǎn)不止這些,但是本文的這些命令很實(shí)用,對于其他的操作,可以通過“-help commandName”命令所列出的清單來進(jìn)一步的學(xué)習(xí)
#p#
3、管理與更新
(1)報(bào)告HDFS的基本統(tǒng)計(jì)信息
通過“-report”命令查看HDFS的基本統(tǒng)計(jì)信息
- wu@ubuntu:~/opt/hadoop-0.20.2$ bin/hadoop dfsadmin -report
執(zhí)行結(jié)果如下所示:
- 14/12/02 05:19:05 WARN conf.Configuration: DEPRECATED: hadoop-site.xml found in the classpath. Usage of hadoop-site.xml is deprecated. Instead use core-site.xml, mapred-site.xml and hdfs-site.xml to override properties of core-default.xml, mapred-default.xml and hdfs-default.xml respectively
- Configured Capacity: 19945680896 (18.58 GB)
- Present Capacity: 13558165504 (12.63 GB)
- DFS Remaining: 13558099968 (12.63 GB)
- DFS Used: 65536 (64 KB)
- DFS Used%: 0%
- Under replicated blocks: 1
- Blocks with corrupt replicas: 0
- Missing blocks: 0
- ————————————————-
- Datanodes available: 1 (1 total, 0 dead)
- Name: 127.0.0.1:50010
- Decommission Status : Normal
- Configured Capacity: 19945680896 (18.58 GB)
- DFS Used: 65536 (64 KB)
- Non DFS Used: 6387515392 (5.95 GB)
- DFS Remaining: 13558099968(12.63 GB)
- DFS Used%: 0%
- DFS Remaining%: 67.98%
- Last contact: Tue Dec 02 05:19:04 PST 2014
(2)退出安全模式
NameNode在啟動(dòng)時(shí)會(huì)自動(dòng)進(jìn)入安全模式。安全模式是NameNode的一種狀態(tài),在這個(gè)階段,文件系統(tǒng)不允許有任何的修改。安全模式的目的是在系統(tǒng)啟動(dòng)時(shí)檢查各個(gè)DataNode
上數(shù)據(jù)塊的有效性,同時(shí)根據(jù)策略對數(shù)據(jù)塊進(jìn)行必要的復(fù)制和刪除,當(dāng)數(shù)據(jù)塊的最小百分比數(shù)滿足配置的最小副本數(shù)條件時(shí),會(huì)自動(dòng)退出安全模式。
- wu@ubuntu:~/opt/hadoop-0.20.2$ bin/hadoop dfsadmin -safemode leave
(3)進(jìn)入安全模式
- wu@ubuntu:~/opt/hadoop-0.20.2$ bin/hadoop dfsadmin -safemode enter
(4)添加節(jié)點(diǎn)
可擴(kuò)展性是HDFS的一個(gè)重要的特性,向HDFS集群中添加節(jié)點(diǎn)是很容易實(shí)現(xiàn)的。添加一個(gè)新的DataNode節(jié)點(diǎn),首先在新加的節(jié)點(diǎn)上安裝好hadoop,要和NameNode使用相同的配置,修改HADOOP_HOME/conf/master文件,加入NameNode主機(jī)名。然后在NameNode節(jié)點(diǎn)上修改HADOOP_HOME/conf/slaves文件,加入新節(jié)點(diǎn)主機(jī)名。再建立到新節(jié)點(diǎn)無密碼SSH連接,運(yùn)行啟動(dòng)命令:
$ bin/start-all.sh
通過http://(主機(jī)名):50070可查看到新的DataNode節(jié)點(diǎn)添加成功
(5)負(fù)載均衡
用戶可以使用下面的命令來重新平衡DataNode上的數(shù)據(jù)塊的分布:
$ bin/start-balancer.sh
參考資料
《實(shí)戰(zhàn)Hadop:開啟通向云計(jì)算的捷徑.劉鵬》