hadoop簡單命令

Hadoop 文件命令

 

 * 文件操做
 * 查看目錄文件
 * $ hadoop dfs -ls /user/cl
 *
 * 建立文件目錄
 * $ hadoop dfs -mkdir /user/cl/temp
 *
 * 刪除文件
 * $ hadoop dfs -rm /user/cl/temp/a.txt
 *
 * 刪除目錄與目錄下全部文件
 * $ hadoop dfs -rmr /user/cl/temp
 *
 * 上傳文件
 * 上傳一個本機/home/cl/local.txt到hdfs中/user/cl/temp目錄下
 * $ hadoop dfs -put /home/cl/local.txt /user/cl/temp        java

 *  hadoop fs -copyFromLocal a.txt /k/
 *
 * 下載文件
 * 下載hdfs中/user/cl/temp目錄下的hdfs.txt文件到本機/home/cl/中
 * $ hadoop dfs -get /user/cl/temp/hdfs.txt /home/cl
 *
 * 查看文件
 * $ hadoop dfs –cat /home/cl/hdfs.txt
 *
 * Job操做ubuntu

 

 * 提交MapReduce Job, Hadoop全部的MapReduce Job都是一個jar包安全

 * $ hadoop jar <local-jar-file> <java-class> <hdfs-input-file> <hdfs-output-dir>app

 * $ hadoop jar sandbox-mapred-0.0.20.jar sandbox.mapred.WordCountJob /user/cl/input.dat /user/cl/outputdir
 *
 * 殺死某個正在運行的Job
 * 假設Job_Id爲:job_201207121738_0001
 * $ hadoop job -kill job_201207121738_0001tcp

顯示文件夾大小以gb爲單位oop

hadoop fs -du -h /logs/app/splittedspa

hadoop查看job執行狀況.net

hadoop job -listdebug

 

 

執行export HADOOP_ROOT_LOGGER=DEBUG,console以後,打印全部的DEBUG消息後發現,消息中沒有exception更改運行時額日誌級別日誌

修改$HADOOP_CONF_DIR/log4j.properties文件 hadoop.root.logger=ALL,console

or:

開啓:export HADOOP_ROOT_LOGGER=DEBUG,console

關閉:export HADOOP_ROOT_LOGGER=INFO,console

 

 

實時查看和修改Hadoop日誌級別

Hadoop的日誌界面能夠經過Hadoop命令和Web界面來修改。

Hadoop命令格式:
hadoop daemonlog -getlevel <host:port> <name>
hadoop daemonlog --setlevel <host:port> <name> <level>
<name>
爲類名,如:TaskTracker
<level>爲日誌級別,如:debug和info等


Web界面方式以下圖所示:

Log欄填寫類名,如:TaskTracker
Level欄填寫日誌級別,如:debug和info等

查看運行的job的名字

yarn application --list

 

 

命令基本格式:

hadoop fs -cmd < args >

1.ls

hadoop fs -ls  /

列出hdfs文件系統根目錄下的目錄和文件

hadoop fs -ls -R /

列出hdfs文件系統全部的目錄和文件

2.put

hadoop fs -put < local file > < hdfs file >

hdfs file的父目錄必定要存在,不然命令不會執行

hadoop fs -put  < local file or dir >...< hdfs dir >

hdfs dir 必定要存在,不然命令不會執行

hadoop fs -put - < hdsf  file>

從鍵盤讀取輸入到hdfs file中,按Ctrl+D結束輸入,hdfs file不能存在,不然命令不會執行

2.1.moveFromLocal

hadoop fs -moveFromLocal  < local src > ... < hdfs dst >

與put相相似,命令執行後源文件 local src 被刪除,也能夠從從鍵盤讀取輸入到hdfs file中

2.2.copyFromLocal

hadoop fs -copyFromLocal  < local src > ... < hdfs dst >

與put相相似,也能夠從從鍵盤讀取輸入到hdfs file中

3.get

hadoop fs -get < hdfs file > < local file or dir>

local file不能和 hdfs file名字不能相同,不然會提示文件已存在,沒有重名的文件會複製到本地

hadoop fs -get < hdfs file or dir > ... < local  dir >

拷貝多個文件或目錄到本地時,本地要爲文件夾路徑
注意:若是用戶不是root, local 路徑要爲用戶文件夾下的路徑,不然會出現權限問題,

3.1.moveToLocal

當前版本中還未實現此命令

3.2.copyToLocal

hadoop fs -copyToLocal < local src > ... < hdfs dst >

與get相相似

4.rm

hadoop fs -rm < hdfs file > ...

hadoop fs -rm -r < hdfs dir>...

每次能夠刪除多個文件或目錄

5.mkdir

hadoop fs -mkdir < hdfs path>

只能一級一級的建目錄,父目錄不存在的話使用這個命令會報錯

hadoop fs -mkdir -p < hdfs path>

所建立的目錄若是父目錄不存在就建立該父目錄

6.getmerge

hadoop fs -getmerge < hdfs dir >  < local file >

將hdfs指定目錄下全部文件排序後合併到local指定的文件中,文件不存在時會自動建立,文件存在時會覆蓋裏面的內容

hadoop fs -getmerge -nl  < hdfs dir >  < local file >

加上nl後,合併到local file中的hdfs文件之間會空出一行

7.cp

hadoop fs -cp  < hdfs file >  < hdfs file >

目標文件不能存在,不然命令不能執行,至關於給文件重命名並保存,源文件還存在 hadoop fs -cp < hdfs file or dir >... < hdfs dir >

目標文件夾要存在,不然命令不能執行

8.mv

hadoop fs -mv < hdfs file >  < hdfs file >

目標文件不能存在,不然命令不能執行,至關於給文件重命名並保存,源文件不存在

hadoop fs -mv  < hdfs file or dir >...  < hdfs dir >

源路徑有多個時,目標路徑必須爲目錄,且必須存在。
注意:跨文件系統的移動(local到hdfs或者反過來)都是不容許的

9.count

hadoop fs -count < hdfs path >

統計hdfs對應路徑下的目錄個數,文件個數,文件總計大小 顯示爲目錄個數,文件個數,文件總計大小,輸入路徑

10.du

hadoop fs -du < hdsf path>

顯示hdfs對應路徑下每一個文件夾和文件的大小

hadoop fs -du -s < hdsf path>

顯示hdfs對應路徑下全部文件和的大小

hadoop fs -du - h < hdsf path>

顯示hdfs對應路徑下每一個文件夾和文件的大小,文件的大小用方便閱讀的形式表示,例如用64M代替67108864

11.text

hadoop fs -text < hdsf file>

將文本文件或某些格式的非文本文件經過文本格式輸出

12.setrep

hadoop fs -setrep -R 3 < hdfs path >

改變一個文件在hdfs中的副本個數,上述命令中數字3爲所設置的副本個數,-R選項能夠對一我的目錄下的全部目錄+文件遞歸執行改變副本個數的操做

13.stat

hdoop fs -stat [format] < hdfs path >

返回對應路徑的狀態信息
[format]可選參數有:%b(文件大小),%o(Block大小),%n(文件名),%r(副本個數),%y(最後一次修改日期和時間)
能夠這樣書寫hadoop fs -stat %b%o%n < hdfs path >,不過不建議,這樣每一個字符輸出的結果不是太容易分清楚

14.tail

hadoop fs -tail < hdfs file >

在標準輸出中顯示文件末尾的1KB數據

15.archive

hadoop archive -archiveName name.har -p < hdfs parent dir > < src >* < hdfs dst >

命令中參數name:壓縮文件名,本身任意取;< hdfs parent dir > :壓縮文件所在的父目錄;< src >:要壓縮的文件名;< hdfs dst >:壓縮文件存放路徑
*示例:hadoop archive -archiveName hadoop.har -p /user 1.txt 2.txt /des

示例中將hdfs中/user目錄下的文件1.txt,2.txt壓縮成一個名叫hadoop.har的文件存放在hdfs中/des目錄下,若是1.txt,2.txt不寫就是將/user目錄下全部的目錄和文件壓縮成一個名叫hadoop.har的文件存放在hdfs中/des目錄下
顯示har的內容能夠用以下命令:

hadoop fs -ls /des/hadoop.jar

顯示har壓縮的是那些文件能夠用以下命令

hadoop fs -ls -R har:///des/hadoop.har

注意:har文件不能進行二次壓縮。若是想給.har加文件,只能找到原來的文件,從新建立一個。har文件中原來文件的數據並無變化,har文件真正的做用是減小NameNode和DataNode過多的空間浪費。

16.balancer

hdfs balancer

若是管理員發現某些DataNode保存數據過多,某些DataNode保存數據相對較少,可使用上述命令手動啓動內部的均衡過程

17.dfsadmin

hdfs dfsadmin -help

管理員能夠經過dfsadmin管理HDFS,用法能夠經過上述命令查看 hdfs dfsadmin -report

顯示文件系統的基本數據

hdfs dfsadmin -safemode < enter | leave | get | wait >

enter:進入安全模式;leave:離開安全模式;get:獲知是否開啓安全模式; wait:等待離開安全模式

18.distcp

用來在兩個HDFS之間拷貝數據

 

 

離開安全模式 hdfs dfsadmin -safemode leave    to turn safe mode off

相關文章
相關標籤/搜索