以下是我上hadoop課程時由老師提供的習題集(利用Hadoop提供的shell命令完成任務):
一、將HDFS中指定文件的內容輸出到終端中;
二、顯示HDFS中指定的文件的讀寫權限、大小、創建時間、路徑等信息;
三、給定HDFS中某一個目錄,輸出該目錄下的所有文件的讀寫權限、大小、創建時間、路徑等信息,如果該文件是目錄,則遞歸輸出該目錄下所有文件相關信息;
“ hadoop fs -ls -R ” :對子目錄也進行ls操作,就是遞歸輸出信息*
四、刪除HDFS中指定的文件;
五、刪除HDFS中指定的目錄,由用戶指定目錄中如果存在文件時是否刪除目錄;
六、向HDFS中上傳任意文本文件,如果指定的文件在HDFS中已經存在,由用戶指定是追加到原有文件末尾還是覆蓋原有的文件;
1. 在本地/root/tmp裏創建了文件a.txt,內容如下圖:
2. 編寫shell腳本並上傳文件a.txt到hdfs上/tmp/a.txt,因爲最開始上面並沒有a.txt,所以就進行了上傳並覆蓋(添加),如下圖:
七、從HDFS中下載指定文件,如果本地文件與要下載的文件名稱相同,則自動對下載的文件重命名;
1. 寫個腳本myfile(path:/root/tmp/myfile.sh),echo “yes”or“no”可以看作一個標籤,執行到哪裏就就輸出相應的標籤;本人更認可創建腳本文件編寫腳本程序,在這裏最大的好處是對腳本代碼的維護修改起到了很大的作用,如上第一題在命令行輸入腳本指令一按回車後需要修改代碼就特別不方便了,特別是指令多而繁瑣的時候,如下圖:
2. 執行腳本myfile文件並查看,結果如下:
八、提供一個HDFS內的文件的路徑,對該文件進行創建和刪除操作。如果文件所在目錄不存在,則自動創建目錄;
1. 編寫腳本hacker.sh,內容如下:
2. 執行結果如下:
九、提供一個HDFS的目錄的路徑,對該目錄進行創建和刪除操作。創建目錄時,如果目錄文件所在目錄不存在則自動創建相應目錄;刪除目錄時,由用戶指定當該目錄不爲空時是否還刪除該目錄;
1.編寫一個dream.sh的腳本文件,內容如下:
2.執行腳本文件後結果如下:
十、向HDFS中指定的文件追加內容,由用戶指定內容追加到原有文件的開頭或結尾;
1.追加到結尾:
2.追加到開頭:
十一、運行官方提供的wordcount(統計詞頻)的例子,要求通過HDFS創建/abc作爲輸入目錄,從本地上傳a.txt文件到/abc目錄下,其中a.txt內容自己定義。然後執行mapreduce程序;
1.Jar包的路徑(下面hadoop-mapreduce-examples-2.7.7.jar是我們這裏所需要的):
2.創建/abc目錄並上傳a.txt文件:
3.執行jar-wordcount的過程:
4.字段統計結果:
hdfs指令官方文檔
涉及到英文單詞可能出現不準確現象,英語水平有限,見諒!
【望大神指正,勿噴】