天天看點

Hadoop常用指令總結

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]指令的幫助文檔