在AWS Elastic MapReduce上运行PageRank Hadoop作业
在上一篇文章中,我描述了執(zhí)行PageRank計算的示例,該示例是使用Apache Hadoop進(jìn)行Mining Massive Dataset課程的一部分。 在那篇文章中,我接受了Java中現(xiàn)有的Hadoop作業(yè),并做了一些修改(添加了單元測試,并通過參數(shù)設(shè)置了文件路徑)。 這篇文章展示了如何在現(xiàn)實(shí)的Hadoop集群上使用此作業(yè)。 該集群是一個由1個主節(jié)點(diǎn)和5個核心節(jié)點(diǎn)組成的AWS EMR集群 ,每個集群均由m3.xlarge實(shí)例支持。
第一步是為集群準(zhǔn)備輸入。 我使用AWS S3是因為這是使用EMR時的便捷方式。 我創(chuàng)建了一個新存儲桶'emr-pagerank-demo',并制作了以下子文件夾:
- in:包含作業(yè)輸入文件的文件夾
- job:包含我的可執(zhí)行Hadoop jar文件的文件夾
- 日志:EMR將放置其日志文件的文件夾
然后,在“ in”文件夾中,我復(fù)制了要排名的數(shù)據(jù)。 我用這個文件作為輸入。 解壓縮后,它變成了一個具有XML內(nèi)容的5 GB文件,盡管不是很大,但對于此演示來說已經(jīng)足夠。 當(dāng)您使用前一篇文章的源代碼并運(yùn)行“ mvn clean install”時,您將獲得jar文件:“ hadoop-wiki-pageranking-0.2-SNAPSHOT.jar”。 我將此jar文件上傳到“作業(yè)”文件夾。
就是為了準(zhǔn)備。 現(xiàn)在我們可以啟動集群了。 在此演示中,我使用了AWS管理控制臺 :
- 命名集群
- 輸入日志文件夾作為日志位置
- 輸入核心實(shí)例數(shù)
- 為我們的自定義罐添加一個步驟
- 像這樣配置步驟:
- 這將導(dǎo)致以下概述:
如果正確,則可以按“創(chuàng)建集群”按鈕,并使EMR進(jìn)行工作。 您可以在控制臺的“監(jiān)視”部分監(jiān)視集群:
并在“步驟”部分中監(jiān)視步驟的狀態(tài):
幾分鐘后,作業(yè)將完成(當(dāng)然取決于輸入文件的大小和使用的群集)。 在我們的S3存儲桶中,我們可以看到在'log'文件夾中創(chuàng)建了日志文件:
在這里,我們總共看到7個作業(yè):1 x Xml準(zhǔn)備步驟,5 x rankCalculator步驟和1 x rankOrdering步驟。
更重要的是,我們可以在“結(jié)果”文件夾中查看結(jié)果:
每個reducer都會創(chuàng)建自己的結(jié)果文件,因此我們在這里有多個文件。 我們對排名最高的網(wǎng)頁感興趣,因為其中的網(wǎng)頁排名最高。 如果我們查看此文件,將看到以下結(jié)果排在前10位:
271.6686 Spaans 274.22974 Romeinse_Rijk 276.7207 1973 285.39502 Rondwormen 291.83002 Decapoda 319.89224 Brussel_(stad) 390.02606 2012 392.08563 Springspinnen 652.5087 2007 2241.2773 Boktorren請注意,當(dāng)前的實(shí)現(xiàn)只運(yùn)行5次計算(硬編碼),因此實(shí)際上并沒有如MMDS理論中所描述的那樣進(jìn)行冪次迭代(對軟件的下一版進(jìn)行了很好的修改:-)。
另請注意,使用默認(rèn)設(shè)置時,作業(yè)完成后群集不會終止,因此在手動終止群集之前,群集的成本會增加。
翻譯自: https://www.javacodegeeks.com/2015/03/running-pagerank-hadoop-job-on-aws-elastic-mapreduce.html
總結(jié)
以上是生活随笔為你收集整理的在AWS Elastic MapReduce上运行PageRank Hadoop作业的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 银行代销理财兑付不了怎么办?
- 下一篇: 无卡取款是怎样操作的?