進程命令
對hadoop集群的操作
start-dfs.sh stop-dfs.sh 打開和關(guān)閉dfs
start-yarn.sh stop-yarn.sh 打開和關(guān)閉yarn
hadoop單進程操作
舊版本命令
hadoop-daemon.sh start/stop namenode/datanode/secondarynamenode
yarn-daemon.sh start/stop resourcemanager/nodemanager
mr-jobhistory-daemon.sh start/stop historyserver
注:修改hadoop-daemon.sh和yarn-daemon.sh的啟動文件蜓谋,可以修改pid和log的存儲位置。
新版本命令
hdfs --daemon start/stop namenode/datanode/secondarynamenode
yarn --daemon start/stop nodemanger/resourcemanager
mapred --daemon start/stop historyserver
基礎(chǔ)命令
hadoop fs -help rm 輸出rm指令的詳細信息
hadoop fs -usage rm 輸出rm的標(biāo)準格式
hadoop fs -find / -name tmp 查找tmp文件
hadoop fs -setrep 10 /input.txt 設(shè)置HDFS中文件的replication(副本)數(shù)量(setrep指令記錄在NameNode中炭分,實際副本數(shù)還是看最大節(jié)點數(shù)桃焕。)
hadoop fs -checksum /a/b/c/xsync 每次寫入讀出都會自動進行一次校驗判斷文件的完整性;checksum是手動判斷文件的完整型命令捧毛,如果和crc文件比對不同观堂,則拋出錯誤。
選項名稱 | 使用格式 | 含義 |
---|---|---|
-ls | -ls <路徑> | 查看指定路徑的當(dāng)前目錄結(jié)構(gòu) |
-lsr | -lsr <路徑> | 遞歸查看指定路徑的目錄結(jié)構(gòu) |
-du | -du <路徑> | 統(tǒng)計目錄下個文件大小 |
-dus | -dus <路徑> | 匯總統(tǒng)計目錄下文件(夾)大小 |
-count | -count [-q] <路徑> | 統(tǒng)計文件(夾)數(shù)量 |
-mv | -mv <源路徑> <目的路徑> | 移動 |
-cp | -cp <源路徑> <目的路徑> | 復(fù)制 |
-rm | -rm [-skipTrash] <路徑> | 刪除文件/空白文件夾 |
-rmr | -rmr [-skipTrash] <路徑> | 遞歸刪除 |
-put | -put <多個linux上的文件> <hdfs路徑> | 上傳文件 |
-copyFromLocal | -copyFromLocal <多個linux上的文件> <hdfs路徑> | 從本地復(fù)制 |
-moveFromLocal | -moveFromLocal <多個linux上的文件> <hdfs路徑> | 從本地移動 |
-getmerge | -getmerge <源路徑> <linux路徑> | 合并到本地 |
-cat | -cat <hdfs路徑> | 查看文件內(nèi)容 |
-text | -text <hdfs路徑> | 查看文件內(nèi)容 |
-copyToLocal | -copyToLocal [-ignoreCrc] [-crc] [hdfs源路徑] [linux目的路徑] | 復(fù)制到本地 |
-moveToLocal | -moveToLocal [-crc] <hdfs源路徑> <linux目的路徑> | 移動到本地 |
-mkdir | -mkdir <hdfs路徑> | 創(chuàng)建空白文件夾 |
-setrep | -setrep [-R] [-w] <副本數(shù)> <路徑> | 修改副本數(shù)量 |
-touchz | -touchz <文件路徑> | 創(chuàng)建空白文件 |
-stat | -stat [format] <路徑> | 顯示文件統(tǒng)計信息 |
-tail | -tail [-f] <文件> | 查看文件尾部信息 |
-chmod | -chmod [-R] <權(quán)限模式> [路徑] | 修改權(quán)限 |
-chown | -chown [-R] 屬主] 路徑 | 修改屬主 |
-chgrp | -chgrp [-R] 屬組名稱 路徑 | 修改屬組 |
-help | -help [命令選項] | 幫助 |
管理命令
hadoop dfsadmin -report 查看各個datenode節(jié)點的狀態(tài)
hadoop dfsadmin -safemode get 命令是用來查看當(dāng)前hadoop安全模式的開關(guān)狀態(tài)
hadoop dfsadmin -safemode enter 命令是打開安全模式
hadoop dfsadmin -safemode leave 命令是離開安全模式
hdfs dfsadmin -fetchImage /data 獲取fsimage信息并存儲到目標(biāo)地址
hadoop checknative -a 查看hadoop支持的壓縮格式
節(jié)點間數(shù)據(jù)均衡
開啟數(shù)據(jù)均衡命令:
start-balancer.sh -threshold 10
對于參數(shù)10呀忧,代表的是集群中各個節(jié)點的磁盤空間利用率相差不超過10%师痕,可根據(jù)實際情況進行調(diào)整。
停止數(shù)據(jù)均衡命令:
stop-balancer.sh
注意:于HDFS需要啟動單獨的Rebalance Server來執(zhí)行Rebalance操作而账,[所以盡量不要在NameNode上執(zhí)行start-balancer.sh胰坟,而是找一臺比較空閑的機器。
磁盤間數(shù)據(jù)均衡
(1)生成均衡計劃(我們只有一塊磁盤泞辐,不會生成計劃)
hdfs diskbalancer -plan hadoop103
(2)執(zhí)行均衡計劃
hdfs diskbalancer -execute hadoop103.plan.json
(3)查看當(dāng)前均衡任務(wù)的執(zhí)行情況
hdfs diskbalancer -query hadoop103
(4)取消均衡任務(wù)
hdfs diskbalancer -cancel hadoop103.plan.json
Hadoop中的umask
計算規(guī)則
Hadoop中umask的值使用的是十進制笔横,與Linux中的umask值使用的是八進制是不同的。
但是計算規(guī)則是相同的咐吼,且默認文件夾權(quán)限為777吹缔,文件權(quán)限為666,umask為022锯茄,因此用戶創(chuàng)建文件夾后權(quán)限為755厢塘,創(chuàng)建文件權(quán)限為644。
可以先通過八進制將需要的umask的值計算出來后肌幽,再轉(zhuǎn)為十進制進行設(shè)置晚碾。
如希望讓文件的屬性為644,那么在linux中應(yīng)該設(shè)置umask為022牍颈,而設(shè)置dfs.mask的值時迄薄,將其轉(zhuǎn)為十進制就是0018。
修改umask
在配置文件中修改
<property>
<name>fs.permissions.umask-mode</name>
<value>002</value>
</property>
Hadoop中占用空間過大
通過命令hadoop fs -du -h /
查看根目錄下磁盤占用過大的文件煮岁。
第一列標(biāo)示該目錄下總文件大小
第二列標(biāo)示該目錄下所有文件在集群上的總存儲大小和你的副本數(shù)相關(guān)讥蔽,我的副本數(shù)是3 ,所以第二列的是第一列的三倍 (第二列內(nèi)容=文件大小*副本數(shù))画机。
[root@cos-bigdata-hadoop-01 hadoop]# hadoop fs -du -h /
668.5 G 2.0 T /HBase
7.4 G 26.3 G /origin_data
36.5 G 109.4 G /spark
27.9 K 83.6 K /system
68.0 M 203.9 M /tez
657.4 G 1.9 T /tmp
115.5 G 346.4 G /user
209.5 G 630.7 G /warehouse
最后發(fā)現(xiàn) /tmp文件和/HBase/oldWALs文件占用過大冶伞,刪除即可。刪除時需要注意使用命令hdfs dfs -rm -r -skipTrash
步氏,因為hdfs有回收站機制响禽,如果不添加-skipTrash,不會釋放磁盤空間荚醒,而是在fs.trash.interval
配置的時候后才會完全刪除并釋放磁盤空間芋类。也可以使用hadoop fs -expunge
命令,在后臺啟動程序慢慢刪除過期的文件界阁。
NOTE:
- /tmp目錄: 主要用作mapreduce操作期間的臨時存儲.Mapreduce工件,中間數(shù)據(jù)等將保存在此目錄下.mapreduce作業(yè)執(zhí)行完成后,這些文件將自動清除.如果刪除此臨時文件,則會影響當(dāng)前運行的mapreduce作業(yè)侯繁。臨時文件由pig創(chuàng)建.臨時文件刪除最后發(fā)生.如果腳本執(zhí)行失敗或被殺死,Pig不會處理臨時文件刪除.然后你必須處理這種情況.您最好在腳本本身處理此臨時文件清理活動。
- /HBase/oldWALs目錄: 當(dāng)/hbase/WALs中的HLog文件被持久化到存儲文件中泡躯,且這些Hlog日志文件不再被需要時贮竟,就會被轉(zhuǎn)移到{hbase.rootdir}/oldWALs目錄下,該目錄由HMaster上的定時任務(wù)負責(zé)定期清理较剃。
數(shù)據(jù)遷移
集群間遷移
hadoop distcp hdfs://bigdata1:8020/data hdfs://bigdata2:8020/
集群遷移到本地
hadoop distcp file:///logs hdfs://172.16.218.29:8020/data/hadoop
本地遷移集群
hadoop distcp hdfs://172.16.218.29:8020/data/hadoop file:///logs