離線數(shù)據(jù)分析平臺(tái)實(shí)戰(zhàn)——030Hadoop Shell命令02
hdfs命令
hdfs命令是hadoop提供的操作HDFS分布式文件系統(tǒng)的shell命令客戶端,
我們可以通過(guò)該命令對(duì)分布式文件系統(tǒng)進(jìn)行文件的增刪查操作,
也可以通過(guò)該命令獲取到一些hadoop的相關(guān)配置信息,
而且我們啟動(dòng)hdfs相關(guān)服務(wù)進(jìn)程都是通過(guò)該命令進(jìn)行的。
hdfs命令主要分為兩類,
一類是用戶命令:dfs, fsck等,
一類是管理員命令:dfsadmin,namenode,datanode等。
http://archive.cloudera.com/cdh5/cdh/5/hadoop-2.5.0-cdh5.3.6/
hdfs命令-dfs顯示文件夾內(nèi)容
命令: -ls -lsr
執(zhí)行:hdfs dfs -ls /
區(qū)別:lsr是遞歸顯示
hdfs命令-dfs創(chuàng)建文件夾
命令: -mkdir
執(zhí)行:hdfs dfs -mkdir -p /bjsxt/hdfs/mkdir
-p指定當(dāng)需要?jiǎng)?chuàng)建的文件夾存儲(chǔ),那么不報(bào)錯(cuò),默認(rèn)情況會(huì)報(bào)錯(cuò),遞歸的創(chuàng)建文件夾。 如果我們給定的路徑不是以'/'開(kāi)始的,那么表示在當(dāng)前用戶目錄下創(chuàng)建文件夾。(默認(rèn)情況下是沒(méi)有當(dāng)前用戶目錄的,那么就會(huì)報(bào)錯(cuò))。
hdfs命令-dfs上傳文件到HDFS
命令: -put
-copyFromLocal
-moveFromLocal
執(zhí)行:hdfs dfs -put /home/hadoop/bigdater/ /bjsxt/put
本地路徑可以指定文件夾或者多個(gè)文件,hdfs上的路徑必須是根據(jù)上傳東西的不同,有不同的要求。
1.本地指定的是文件夾,那么hdfs如果目錄不存在,就新建目錄然后將本地文件夾內(nèi)容copy過(guò)去;hdfs目錄存在,則將文件夾copy過(guò)去。
2.本地指定的是單個(gè)文件,那要求hdfs上指定的文件不存在
3.本地指定的是多個(gè)文件,那么要求hdfs上指定的文件夾存在。
hdfs命令-dfs下載文件
命令: -get
-copyToLocal
-moveToLocal
執(zhí)行:hdfs dfs -get /bjsxt/put ./
get命令和put命令是一對(duì)相反命令。put是從本地到集群,get是從集群到本地。基本語(yǔ)法相似。
hdfs命令-dfs查看文件內(nèi)容
命令: -cat
-text
執(zhí)行:hdfs dfs -cat /beifeng/test.txt
cat命令和text命令都可以查看文件內(nèi)容,但是它們的內(nèi)置機(jī)制不一樣,cat是copy文件內(nèi)容,然后顯示;text是通過(guò)hadoop解析將文件內(nèi)容轉(zhuǎn)化為文本內(nèi)容,然后在顯示。cat命令只適合看一半的文本文件,而text命令可以看出所有文件。
hdfs命令-dfs刪除文件
命令: -rm
-rmdir
執(zhí)行:hdfs dfs -rm -R /bjsxt/put
rm和rmdir的區(qū)別主要是:rm可以刪除任何文件/文件夾,rmdir只能夠刪除空的文件夾。
hdfs命令-fsck
fsck命令是檢測(cè)hdfs磁盤(pán)文件是否有丟失備份異常等信息,可以查看到具體的文件是否處于健康狀況,執(zhí)行命令為: hdfs -fsck <path>
hdfs命令-dfsadmin匯報(bào)集群信息
命令:-report
執(zhí)行:hdfs dfsadmin -report
可以通過(guò)該命令查看集群的基本信息,包括總磁盤(pán)大小,剩余磁盤(pán)大小,丟失塊個(gè)數(shù)等總的集群信息。
hdfs命令-安全模式
命令:-safemode <enter | leave | get | wait>
執(zhí)行:hdfs dfsadmin -safemode get
當(dāng)集群中的文件備份出現(xiàn)丟失的時(shí)候,可能會(huì)進(jìn)行安全模式。安全模式是指當(dāng)集群處于該狀態(tài)下,hdfs解決文件IO操作。我們可以通過(guò)該命令強(qiáng)制離開(kāi)安全模式。
hdfs命令-namenode
namenode命令是hadoop提供的操作NN節(jié)點(diǎn)的shell命令入口,包括NN節(jié)點(diǎn)的格式化、NN節(jié)點(diǎn)升級(jí)、NN節(jié)點(diǎn)回滾、NN節(jié)點(diǎn)啟動(dòng)等操作。 查看幫助信息:hdfs namenode -h
hdfs命令-datanode
datanode命令是hadoop提供的操作ND節(jié)點(diǎn)的shell命令入口,包括ND節(jié)點(diǎn)啟動(dòng)、DN節(jié)點(diǎn)升級(jí)、DN節(jié)點(diǎn)回滾等操作。 查看幫助信息:hdfs datanode -h
hadoop命令
hadoop命令主要是將hdfs、yarn和mapred全部命令進(jìn)行一個(gè)整合,實(shí)際生活中一般情況下主要使用hadoop命令來(lái)進(jìn)行Job的管理到多個(gè)集群之間的數(shù)據(jù)復(fù)制問(wèn)題。常用命令主要有:
job: job生命周期管理,包括提交、查看狀態(tài)、kill等。
distcp: 多集群間數(shù)據(jù)復(fù)制。
version: 查看hadoop版本信息。
其他命令
mapred命令主要作用對(duì)mapred相關(guān)服務(wù)進(jìn)行控制。
yarn命令主要作用是對(duì)yarn的相關(guān)服務(wù)進(jìn)行控制,包括resourcemanager
和nodemanager
的啟動(dòng)以及Job的提交等。
hadoop start-yarn.sh yarn-daemon.sh mr-jobhistory-daemon.sh