一、前述
分享一篇hadoop的常用命令的總結,將常用的Hadoop命令總結如下。
二、具體
1、啟動hadoop所有程式
start-all.sh等價於start-dfs.sh + start-yarn.sh
但是一般不推薦使用start-all.sh(因為開源框架中內部命令啟動有很多問題)。
2、單程式啟動。
sbin/start-dfs.sh
---------------
sbin/hadoop-daemons.sh --config .. --hostname .. start namenode ...
sbin/hadoop-daemons.sh --config .. --hostname .. start datanode ...
sbin/hadoop-daemons.sh --config .. --hostname .. start sescondarynamenode ...
sbin/hadoop-daemons.sh --config .. --hostname .. start zkfc ... //
sbin/start-yarn.sh
--------------
libexec/yarn-config.sh
sbin/yarn-daemon.sh --config $YARN_CONF_DIR start resourcemanager
sbin/yarn-daemons.sh --config $YARN_CONF_DIR start nodemanager
3、常用命令
1、檢視指定目錄下內容
hdfs dfs –ls [檔案目錄]
hdfs dfs -ls -R / //顯式目錄結構
eg: hdfs dfs –ls /user/wangkai.pt
2、開啟某個已存在檔案
hdfs dfs –cat [file_path]
eg:hdfs dfs -cat /user/wangkai.pt/data.txt
3、將本地檔案儲存至hadoop
hdfs dfs –put [本地地址] [hadoop目錄]
hdfs dfs –put /home/t/file.txt /user/t
4、將本地資料夾儲存至hadoop
hdfs dfs –put [本地目錄] [hadoop目錄]
hdfs dfs –put /home/t/dir_name /user/t
(dir_name是資料夾名)
5、將hadoop上某個檔案down至本地已有目錄下
hadoop dfs -get [檔案目錄] [本地目錄]
hadoop dfs –get /user/t/ok.txt /home/t
6、刪除hadoop上指定檔案
hdfs dfs –rm [檔案地址]
hdfs dfs –rm /user/t/ok.txt
7、刪除hadoop上指定資料夾(包含子目錄等)
hdfs dfs –rm [目錄地址]
hdfs dfs –rmr /user/t
8、在hadoop指定目錄內建立新目錄
hdfs dfs –mkdir /user/t
hdfs dfs -mkdir - p /user/centos/hadoop
9、在hadoop指定目錄下新建一個空檔案
使用touchz命令:
hdfs dfs -touchz /user/new.txt
10、將hadoop上某個檔案重新命名
使用mv命令:
hdfs dfs –mv /user/test.txt /user/ok.txt (將test.txt重新命名為ok.txt)
11、將hadoop指定目錄下所有內容儲存為一個檔案,同時down至本地
hdfs dfs –getmerge /user /home/t
12、將正在執行的hadoop作業kill掉
hadoop job –kill [job-id]
13.檢視幫助
hdfs dfs -help
4、安全模式
(1)退出安全模式
NameNode在啟動時會自動進入安全模式。安全模式是NameNode的一種狀態,在這個階段,檔案系統不允許有任何修改。
系統顯示Name node in safe mode,說明系統正處於安全模式,這時只需要等待十幾秒即可,也可通過下面的命令退出安全模式:/usr/local/hadoop$bin/hadoop dfsadmin -safemode leave
(2) 進入安全模式
在必要情況下,可以通過以下命令把HDFS置於安全模式:/usr/local/hadoop$bin/hadoop dfsadmin -safemode enter
5、節點新增
新增一個新的DataNode節點,先在新加節點上安裝好Hadoop,要和NameNode使用相同的配置(可以直接從NameNode複製),修改$HADOOP_HOME/conf/master檔案,加入NameNode主機名。然後在NameNode節點上修改$HADOOP_HOME/conf/slaves檔案,加入新節點名,再建立新加節點無密碼的SSH連線,執行啟動命令為:/usr/local/hadoop$bin/start-all.sh
6、負載均衡
HDFS的資料在各個DataNode中的分佈可能很不均勻,尤其是在DataNode節點出現故障或新增DataNode節點時。新增資料塊時NameNode對DataNode節點的選擇策略也有可能導致資料塊分佈不均勻。使用者可以使用命令重新平衡DataNode上的資料塊的分佈:/usr/local/hadoop$bin/start-balancer.sh
7、補充
1.對hdfs操作的命令格式是hdfs dfs
1.1 -ls 表示對hdfs下一級目錄的檢視
1.2 -lsr 表示對hdfs目錄的遞迴檢視
1.3 -mkdir 建立目錄
1.4 -put 從Linux上傳檔案到hdfs
1.5 -get 從hdfs下載檔案到linux
1.6 -text 檢視檔案內容
1.7 -rm 表示刪除檔案
1.7 -rmr 表示遞迴刪除檔案
2.hdfs在對資料儲存進行block劃分時,如果檔案大小超過block,那麼按照block大小進行劃分;不如block size的,劃分為一個塊,是實際資料大小。
*****PermissionDenyException 許可權不足**********
hadoop常用命令:
hdfs dfs 檢視Hadoop HDFS支援的所有命令
hdfs dfs –ls 列出目錄及檔案資訊
hdfs dfs –lsr 迴圈列出目錄、子目錄及檔案資訊
hdfs dfs –put test.txt /user/sunlightcs 將本地檔案系統的test.txt複製到HDFS檔案系統的/user/sunlightcs目錄下
hdfs dfs –get /user/sunlightcs/test.txt . 將HDFS中的test.txt複製到本地檔案系統中,與-put命令相反
hdfs dfs –cat /user/sunlightcs/test.txt 檢視HDFS檔案系統裡test.txt的內容
hdfs dfs –tail /user/sunlightcs/test.txt 檢視最後1KB的內容
hdfs dfs –rm /user/sunlightcs/test.txt 從HDFS檔案系統刪除test.txt檔案,rm命令也可以刪除空目錄
hdfs dfs –rmr /user/sunlightcs 刪除/user/sunlightcs目錄以及所有子目錄
hdfs dfs –copyFromLocal test.txt /user/sunlightcs/test.txt 從本地檔案系統複製檔案到HDFS檔案系統,等同於put命令
hdfs dfs –copyToLocal /user/sunlightcs/test.txt test.txt 從HDFS檔案系統複製檔案到本地檔案系統,等同於get命令
hdfs dfs –chgrp [-R] /user/sunlightcs 修改HDFS系統中/user/sunlightcs目錄所屬群組,選項-R遞迴執行,跟linux命令一樣
hdfs dfs –chown [-R] /user/sunlightcs 修改HDFS系統中/user/sunlightcs目錄擁有者,選項-R遞迴執行
hdfs dfs –chmod [-R] MODE /user/sunlightcs 修改HDFS系統中/user/sunlightcs目錄許可權,MODE可以為相應許可權的3位數或+/-{rwx},選項-R遞迴執行
hdfs dfs –count [-q] PATH 檢視PATH目錄下,子目錄數、檔案數、檔案大小、檔名/目錄名
hdfs dfs –cp SRC [SRC …] DST 將檔案從SRC複製到DST,如果指定了多個SRC,則DST必須為一個目錄
hdfs dfs –du PATH 顯示該目錄中每個檔案或目錄的大小
hdfs dfs –dus PATH 類似於du,PATH為目錄時,會顯示該目錄的總大小
hdfs dfs –expunge 清空回收站,檔案被刪除時,它首先會移到臨時目錄.Trash/中,當超過延遲時間之後,檔案才會被永久刪除
hdfs dfs –getmerge SRC [SRC …] LOCALDST [addnl] 獲取由SRC指定的所有檔案,將它們合併為單個檔案,並寫入本地檔案系統中的LOCALDST,選項addnl將在每個檔案的末尾處加上一個換行符
hdfs dfs –touchz PATH 建立長度為0的空檔案
hdfs dfs –test –[ezd] PATH 對PATH進行如下型別的檢查: -e PATH是否存在,如果PATH存在,返回0,否則返回1 -z 檔案是否為空,如果長度為0,返回0,否則返回1 -d 是否為目錄,如果PATH為目錄,返回0,否則返回1
hdfs dfs –text PATH 顯示檔案的內容,當檔案為文字檔案時,等同於cat,檔案為壓縮格式(gzip以及hadoop的二進位制序列檔案格式)時,會先解壓縮 hdfs dfs –help ls 檢視某個[ls]命令的幫助文件