更新時間:2021年08月06日15時19分 來源:傳智教育 瀏覽次數(shù):
完成了Hadoop集群安裝和測試之后,顯示構(gòu)建的Hadoop集群能夠正常運行。接下來,就通過Hadoop經(jīng)典案例——單詞統(tǒng)計,來演示Hadoop集群的簡單使用。
(1)打開HDFS的UI界面,選擇【Utilities】→【Browse the file system】查看分布式文件系統(tǒng)里的數(shù)據(jù)文件,可以看到新建的HDFS系統(tǒng)上沒有任何數(shù)據(jù)文件,如圖1所示。
圖1 HDFS文件系統(tǒng)
(2)先在集群主節(jié)點hadoop01上的/export/data/目錄下,使用“vi word.txt”指令新建一個word.txt文本文件,并編寫一些單詞內(nèi)容,如文件所示。
文件 word.txt
hello itcast
hello itheima
hello hadoop
接著,在HDFS文件系統(tǒng)上創(chuàng)建/wordcount/input目錄,并將word.txt文件上傳至該目錄下,具體指令如下所示。
$ hadoop fs -mkdir -p /wordcount/input $ hadoop fs -put /export/data/word.txt /wordcount/input
上述指令是Hadoop提供的進(jìn)行文件系統(tǒng)操作的HDFS Shell相關(guān)指令,此處不必深究具體使用,在下一章節(jié)會進(jìn)行詳細(xì)說明。執(zhí)行完上述指令后,再次查看HDFS的UI界面,會發(fā)現(xiàn)/wordcount/input目錄創(chuàng)建成功并上傳了指定的word.txt文件,如圖2所示。
圖2 HDFS文件系統(tǒng)
(3)進(jìn)入Hadoop解壓包中的share/hadoop/mapreduce/目錄下,使用ll指令查看文件夾內(nèi)容,如圖3所示。
圖3 官方MapReduce示例程序
從圖3可以看出,在該文件夾下自帶了很多Hadoop的MapReduce示例程序。其中,hadoop-mapreduce-examples-2.7.4.jar包中包含了計算單詞個數(shù)、計算Pi值等功能。
因此,這里可以直接使用hadoop-mapreduce-examples-2.7.4.jar示例包,對HDFS文件系統(tǒng)上的word.txt文件進(jìn)行單詞統(tǒng)計,來進(jìn)行此次案例的演示,在當(dāng)jar包位置執(zhí)行如下指令。
$ hadoop jar hadoop-mapreduce-examples-2.7.4.jar wordcount /wordcount/input /wordcount/output
上述指令中,hadoop jar hadoop-mapreduce-examples-2.7.4.jar表示執(zhí)行一個Hadoop的jar包程序;wordcount表示執(zhí)行jar包程序中的單詞統(tǒng)計功能;/wordcount/input表示進(jìn)行單詞統(tǒng)計的HDFS文件路徑;/wordcount/output表示進(jìn)行單詞統(tǒng)計后的輸出HDFS結(jié)果路徑。
執(zhí)行完上述指令后,示例包中的MapReduce程序開始運行,此時可以通過YARN集群的UI界面查看運行狀態(tài),如圖4所示。
圖4 YARN集群UI界面
經(jīng)過一定時間執(zhí)行后,再次刷新查看YARN集群的UI界面,就會發(fā)現(xiàn)程序已經(jīng)運行成功的狀態(tài)信息以及其他相關(guān)參數(shù)。
(4)在單詞統(tǒng)計的示例程序執(zhí)行成功后,再次刷新并查看HDFS的UI界面,如圖5所示。
圖5 MapReduce程序執(zhí)行結(jié)果
從圖5可以看出,MapReduce程序執(zhí)行成功后,在HDFS上自動創(chuàng)建了指定的結(jié)果目錄/wordcount/output,并且輸出了_SUCCESS和part-r-00000結(jié)果文件。其中_SUCCESS文件用于表示此次任務(wù)成功執(zhí)行的標(biāo)識,而part-r-00000表示單詞統(tǒng)計的結(jié)果。
接著,就可以單擊下載圖2-48中的part-r-00000結(jié)果文件到本地操作系統(tǒng),并使用文本工具(EditPlus、Nodepad++、記事本等)打開該文件,如圖6所示。
圖6 MapReduce單詞統(tǒng)計結(jié)果文件
從圖6可以看出,MapReduce示例程序成功統(tǒng)計出了/wordcount/input/word.txt文本中的單詞數(shù)量,并進(jìn)行了結(jié)果輸出。
在本節(jié)使用Hadoop提供的示例程序演示了單詞統(tǒng)計案例的實現(xiàn),在實際工作應(yīng)用開發(fā)中,開發(fā)者需要根據(jù)需求自行編寫各種MapReduce程序,打包上傳至服務(wù)器上,然后執(zhí)行此程序。關(guān)于Hadoop系統(tǒng)的工作原理,以及MapReduce程序編寫方式,將在后面的章節(jié)進(jìn)行詳細(xì)講解。
注意:
在執(zhí)行MapReduce程序時,可能會出現(xiàn)類似 “WARN hdfs.DFSClient:Caught exception”的警告提示信息,這是由于Hadoop版本以及系統(tǒng)資源配置的原因,讀者可以不必在意,它并不會影響程序的正常執(zhí)行。