hadoop運行第一個實例wordcount

引語:

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

運行步驟:

1.先準備一個包含單詞的文件,而後將這個文件上傳到linux服務器上。 文件內容: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存放運行結果bash

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。 oop

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等,執行不動了,日誌裏面會有相應的日誌和提示能夠幫助發現問題。post

相關文章
相關標籤/搜索