Hadoop常用指令總結
一、前述
分享一篇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複制),修改HADOOPHOME/conf/master檔案,加入NameNode主機名。然後在NameNode節點上修改HADOOPHOME/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]指令的幫助文檔