2019獨角獸企業重金招聘Python工程師標準>>>
一、前述
分享一篇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]命令的幫助文檔