【Hadoop篇】--Hadoop常用命令總結

LHBlog發表於2018-03-07

一、前述

分享一篇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]命令的幫助文件

           




 

相關文章