1.向HDFS中上傳任意文本文件技掏,如果指定的文件在HDFS中已經(jīng)存在,由用戶指定是追加到原有文件末尾還是覆蓋原有的文件兴溜;
- 命令如下
#創(chuàng)建存放該次作業(yè)目錄
hadoop fs -mkdir /zhouqi
#創(chuàng)建一個(gè)文本
touch zhouqi1.txt zhouqi2.txt
#隨便寫(xiě)入內(nèi)容
echo "hello world1" > zhouqi1.txt
echo "hello world2" > zhouqi2.txt
##判斷指定文件是否在hdfs存在
hadoop fs -test -e /zhouqi/zhouqi1.txt #-e 判斷路徑是否存在侦厚,如果路徑存在,則返回0拙徽。
echo $? #shell中的特殊變量,用來(lái)查看上一個(gè)命令執(zhí)行后的退出狀態(tài)刨沦,0表示成功
#上傳到HDFS
hadoop fs -put zhouqi1.txt /zhouqi
#查看上傳后的文件內(nèi)容
hadoop fs -text /zhouqi/zhouqi1.txt #cat也可以
#追加到原有文件末尾
hadoop fs -appendToFile zhouqi2.txt /zhouqi/zhouqi1.txt
#查看追加后的文件內(nèi)容
hadoop fs -text /zhouqi/zhouqi1.txt
#覆蓋原有的文件
hadoop fs -put -f zhouqi2.txt /zhouqi/zhouqi1.txt
#查看覆蓋后的文件內(nèi)容
hadoop fs -text /zhouqi/zhouqi1.txt
-
結(jié)果如下
2.從HDFS中下載指定文件,如果本地文件與要下載的文件名稱(chēng)相同膘怕,則自動(dòng)對(duì)下載的文件重命名想诅;
- 命令如下
vim 2.sh
#寫(xiě)入以下內(nèi)容
#!/bin/bash
if [ -f ~/zhouqi1.txt ]
then
hadoop fs -get /zhouqi/zhouqi1.txt ./zhouqi3.txt
else
hadoop fs -get /zhouqi/zhouqi1.txt ./zhouqi1.txt
#給腳本加執(zhí)行權(quán)限
chmod +x 2.sh
#執(zhí)行腳本
sh 2.h
-
結(jié)果如下
3.將HDFS中指定文件的內(nèi)容輸出到終端中岛心;
- 命令如下
hadoop fs -text /zhouqi/zhouqi1.txt
#或者
hadoop fs -cat /zhouqi/zhouqi1.txt
-
結(jié)果如下
4.顯示HDFS中指定的文件的讀寫(xiě)權(quán)限来破、大小、創(chuàng)建時(shí)間忘古、路徑等信息徘禁;
- 命令如下
hadoop fs -ls /zhouqi/zhouqi1.txt
hadoop fs -ls -h /zhouqi/zhouqi1.txt # -h 以人類(lèi)可讀的格式設(shè)置文件大小 (kb,Mb等)
hadoop fs -ls -t /zhouqi/zhouqi1.txt # -t 按修改時(shí)間對(duì)輸出進(jìn)行排序(最新的優(yōu)先)
hadoop fs -ls -S/zhouqi/zhouqi1.txt #按文件大小排序輸出。
-
結(jié)果如下
5.給定HDFS中某一個(gè)目錄存皂,輸出該目錄下的所有文件的讀寫(xiě)權(quán)限、大小、創(chuàng)建時(shí)間旦袋、路徑等信息骤菠,如果該文件是目錄,則遞歸輸出該目錄下所有文件相關(guān)信息疤孕;
- 命令如下
hadoop fs -mkdir -p /zhouqi/1/2/3/4 #-p 遞歸創(chuàng)建
hadoop fs -ls -R /zhouqi
-
結(jié)果如下
6.提供一個(gè)HDFS內(nèi)的文件的路徑商乎,對(duì)該文件進(jìn)行創(chuàng)建和刪除操作。如果文件所在目錄不存在祭阀,則自動(dòng)創(chuàng)建目錄鹉戚;
- 命令如下
vim 6.sh
#寫(xiě)入以下內(nèi)容
#!/bin/bash
hadoop fs -test -d /zhouqi/6
if [ "$?" == "0" ]
then
hadoop fs -touchz /zhouqi/6/6.txt
else
hadoop fs -mkdir -p /zhouqi/6/6.txt
fi
#給腳本加執(zhí)行權(quán)限
chmod +x 6.sh
#執(zhí)行腳本
sh 6.sh
#查看運(yùn)行結(jié)果
hadoop fs -ls -R /zhouqi
#刪除文件
hadoop fs -rm /zhouqi/6/6.txt
#查看運(yùn)行結(jié)果
hadoop fs -ls -R /zhouqi
-
結(jié)果如下
7.提供一個(gè)HDFS的目錄的路徑,對(duì)該目錄進(jìn)行創(chuàng)建和刪除操作专控。創(chuàng)建目錄時(shí)抹凳,如果目錄文件所在目錄不存在則自動(dòng)創(chuàng)建相應(yīng)目錄;刪除目錄時(shí)伦腐,由用戶指定當(dāng)該目錄不為空時(shí)是否還刪除該目錄赢底;
- 命令如下
vim 7.sh
#寫(xiě)入以下內(nèi)容
#!/bin/bash
hadoop fs -test -d /zhouqi/7
if [ "$?" != "0" ]
then
hadoop fs -mkdir /zhouqi/7
fi
#給腳本加執(zhí)行權(quán)限
chmod +x 7.sh
#執(zhí)行腳本
sh 7.sh
#查看運(yùn)行結(jié)果
hadoop fs -ls -R /zhouqi
#刪除目錄
hadoop fs -rmdir /zhouqi/7
#如果上一個(gè)指令執(zhí)行不成功,顯示目錄下有文件
hadoop fs rm -r /zhouqi/7
#查看運(yùn)行結(jié)果
hadoop fs -ls -R /zhouqi
-
結(jié)果如下
8.向HDFS中指定的文件追加內(nèi)容柏蘑,由用戶指定內(nèi)容追加到原有文件的開(kāi)頭或結(jié)尾幸冻;
- 命令如下
#指定內(nèi)容追加到原有文件的開(kāi)頭
hadoop fs -get -f /zhouqi/zhouqi1.txt ./
cat zhouqi1.txt >> zhouqi2.txt
hadoop fs -put -f zhouqi2.txt /zhouqi/zhouqi1.txt
hadoop fs -cat /zhouqi/zhouqi1.txt
#指定內(nèi)容追加到原有文件的尾頭
hadoop fs -appendToFile zhouqi2.txt /zhouqi/zhouqi1.txt
hadoop fs -cat /zhouqi/zhouqi1.txt
9.刪除HDFS中指定的文件;
- 命令如下
hadoop fs -ls -R /zhouqi
hadoop fs -rm /zhouqi/zhouqi1.txt
hadoop fs -ls -R /zhouqi
-
結(jié)果如下
10.刪除HDFS中指定的目錄咳焚,由用戶指定目錄中如果存在文件時(shí)是否刪除目錄洽损;
- 命令如下
hadoop fs -ls -R /zhouqi
hadoop fs -rmdir /zhouqi/7
hadoop fs -ls -R /zhouqi
#如果刪除不成功,表示目錄下有文件
hadoop fs -rm -r /zhouqi/7
-
結(jié)果如下