hadoop運行第一個實例wordcount

引語:

這幾周事情比較多,兩週沒寫博客了,這周總算把hadoop的實例給運行起來,然後跑了一下官方的wordcount例子(用於統計文件中單詞出現的次數)。
接下來是我成功運行實例的記錄。運行的前提是安裝配置好hadoop(可以參考我上一篇博客:hadoop僞分佈式安裝記錄

運行步驟:

1.先準備一個包含單詞的文件,然後將這個文件上傳到linux服務器上。
文件內容:

hello world hello hadoop
abc hadoop aabb hello word
count test hdfs mapreduce

2.使用hdfs的命令創建好輸入文件的目錄(hfds的命令基本上和linux一樣,可以去官網上查看下) hadoop fs -mkdir /input/wordcount
然後在創建一個輸出目錄/output爲後續hadoop存放運行結果

3.然後將文件放入到hadoop的文件系統中hadoop fs -put /home/file1 /input/wordcount
創建完可以使用ls檢查一下是否文件存在 hadoop fs -ls -R /

4.再進入到hadoop的share/hadoop/mapreduce中,有一個hadoop-mapreduce-examples-3.1.2.jar
通過hadoop jar hadoop-mapreduce-examples-3.1.2.jar 可以查看到這個官方給的例子裏面有哪些程序可以執行
如下:

可以看到很多自帶的使用程序,我們這裏就使用wordcount。
執行命令

hadop jar hadoop-mapreduce-examples-3.1.2.jar /input/wordcount /output/wordcount

最後的兩個參數一個是文件的輸入路徑,就是我們之前創建再hdfs的路徑,第二個參數是文件的輸出路徑,
如果沒有的話hadoop會自己創建。
5.然後首先會進行map的過程,在使reduce的過程,這裏可以理解爲分而治之的步驟,map是多臺機器上分別處理文件的中間結果,然後通過reduce(減少,聚合)把結果給彙總。
而且是先map執行完再回執行reduce。

6.去輸出文件中查看結果,output/wordcount裏面會有三個文件,有一個帶part的就是輸出結果,可以使用hadoop fs -cat 輸出文件的路徑查看結果

總結:

雖然看起來步驟不是很多,內容也比較簡單,但是坑還是挺多的。要注意的點:
1.僞分佈式搭建的hadoop,hostname這個要設置好,要和配置文件中一致,實在不行就直接指定127.0.0.1(反正我是這樣解決了)
2.yarn的內存配置要合理,太小了發現會一直卡在runing job這個環節或者一直卡在map 0%這裏,此時要去yarn-site中設置好內存的大小(根據實際服務器的內存設置,我設置的是2048M後就可以了)
3.如果發現卡在某個環節,記得去查看hadoop安裝目錄下的logs,裏面有很多日誌類型,包括nodeManageer,resourceManager等,執行不動了,日誌裏面會有相應的日誌和提示可以幫助發現問題。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章