1. 啟動hadoop所有進程
start-all.sh等價于**start-dfs.sh + start-yarn.sh**
> 但是一般不推薦使用start-all.sh(因為開源框架中內部命令啟動有很多問題)。
2. 單進程啟動。
```
sbin/start-dfs.sh
```
```
sbin/start-yarn.sh
```
3. 查看指定目錄下內容
```
?? hdfs dfs –ls \[文件目錄\]
```
```
??? hdfs dfs -ls -R?? /?????????????????? //顯式目錄結構
```
?3. 打開某個已存在文件
```
??? hdfs dfs –cat \[file\_path\]
```
```
??hdfs dfs -cat /user/wangkai.pt/data.txt
```
4. 將本地文件存儲至hadoop
```
???? hdfs dfs –put \[本地地址\] \[hadoop目錄\]
```
```
?????hdfs dfs –put /home/t/file.txt? /user/t??
```
5. 將本地文件夾存儲至hadoop
```
??? hdfs dfs –put \[本地目錄\] \[hadoop目錄\]
```
```
??hdfs dfs?–put /home/t/dir\_name /user/t
```
?? (dir\_name是文件夾名)
6. 將hadoop上某個文件down至本地已有目錄下
```
???? hadoop dfs -get \[文件目錄\] \[本地目錄\]
```
```
hadoop dfs –get /user/t/ok.txt /home/t
```
7. 刪除hadoop上指定文件
```
???? hdfs? dfs –rm \[文件地址\]
```
```
hdfs dfs –rm /user/t/ok.txt
```
8. 刪除hadoop上指定文件夾(包含子目錄等)
```
???? hdfs?dfs –rm \[目錄地址\]
```
```
hdfs?dfs –rmr /user/t
```
9. 在hadoop指定目錄內創建新目錄
```
????? hdfs?dfs?–mkdir /user/t
????? hdfs? dfs -mkdir - p /user/centos/hadoop
```
10. 在hadoop指定目錄下新建一個空文件
? ? 使用touchz命令:
```
? ? hdfs?dfs? -touchz? /user/new.txt
```
11. 將hadoop上某個文件重命名
?? 使用mv命令:
```
? hdfs?dfs?–mv? /user/test.txt? /user/ok.txt? (將test.txt重命名為ok.txt)
```
12. 將hadoop指定目錄下所有內容保存為一個文件,同時down至本地
```
?? hdfs?dfs?–getmerge /user /home/t
```
13. 將正在運行的hadoop作業kill掉
```
?? hadoop job –kill? \[job-id\]
```
14. 查看幫助
```
hdfs dfs -help??
```
15. 退出安全模式
????? NameNode在啟動時會自動進入安全模式。安全模式是NameNode的一種狀態,在這個階段,文件系統不允許有任何修改。
????? 系統顯示Name node in safe mode,說明系統正處于安全模式,這時只需要等待十幾秒即可,也可通過下面的命令退出安全模式:**/usr/local/hadoop$bin/hadoop dfsadmin -safemode leave**
16. 進入安全模式
??? 在必要情況下,可以通過以下命令把HDFS置于安全模式:**/usr/local/hadoop$bin/hadoop dfsadmin -safemode enter**
17. 節點添加
添加一個新的DataNode節點,先在新加節點上安裝好Hadoop,要和NameNode使用相同的配置(可以直接從NameNode復制),修改????????????????????/????????/????????????文件,加入????????????????主機名。然后在????????????????節點上修改
HADOOP\_HOME/conf/slaves文件,加入新節點名,再建立新加節點無密碼的SSH連接,運行啟動命令為:**/usr/local/hadoop$bin/start-all.sh**
18. 負載均衡
HDFS的數據在各個DataNode中的分布可能很不均勻,尤其是在DataNode節點出現故障或新增DataNode節點時。新增數據塊時NameNode對DataNode節點的選擇策略也有可能導致數據塊分布不均勻。用戶可以使用命令重新平衡DataNode上的數據塊的分布:**/usr/local/hadoop$bin/start-balancer.sh**
## 常用命令
```
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\]命令的幫助文檔
```