[HiBench] 安裝HiBench,測試在Spark上跑PageRank與修改源碼測試

[HiBench] 安裝HiBench,測試在Spark上跑PageRank與修改源碼測試

背景:我想在HiBench上測試在Spark上跑PageRank性能,並想要修改PageRank的源碼進行測試。本來,HiBench在README裏寫的已經挺清楚的了,直接照着做就行。奈何我用的服務器沒有珂學上網,所以還是遇到了一點小麻煩。

下載HiBench

編譯spark模塊

  • 按照官網的教程去編譯spark模塊。
mvn -Psparkbench -Dspark=2.4 -Dscala=2.11 clean package

這一步是需要珂學上網的。由於我的服務器上不能珂學上網,而我的本地可以。所以需要在本地編譯,然後將整個項目上傳到服務器上。

注意:不要在服務器上運行上面的代碼!否則mvn clean會將所有文件都刪除,我就得重新將這個項目上傳一遍了(編譯後的整個文件夾大約1.5G)。

配置hadoop.confspark.conf

  • 配置hadoop.confspark.conf。這個跟着官網的教程走就行。

hadoop.conf

cp conf/hadoop.conf.template conf/hadoop.conf

修改內容如下:

# Hadoop home
hibench.hadoop.home     /usr/local/hadoop

# The path of hadoop executable
hibench.hadoop.executable     ${hibench.hadoop.home}/bin/hadoop

# Hadoop configraution directory
hibench.hadoop.configure.dir  ${hibench.hadoop.home}/etc/hadoop

# The root HDFS path to store HiBench data
hibench.hdfs.master       hdfs://10.0.0.1:8020


# Hadoop release provider. Supported value: apache
hibench.hadoop.release    apache

其中,hibench.hadoop.home是你的hadoop的安裝路徑。hibench.hdfs.master是你的hadoop的namenode的地址。

spark.conf

cp conf/spark.conf.template conf/spark.conf

需要修改的內容如下:

# Spark home
hibench.spark.home      /usr/local/spark

# Spark master
#   standalone mode: spark://xxx:7077
#   YARN mode: yarn-client
hibench.spark.master    spark://10.0.0.1:7077

其中,hibench.spark.home是你的spark的安裝目錄。hibench.spark.master是你的spark的master的地址。

運行PageRank

PageRank的代碼在子目錄sparkbench/websearch下。

  • 運行PageRank的命令如下(也是按照教程):
bin/workloads/websearch/pagerank/prepare/prepare.sh
bin/workloads/websearch/pagerank/spark/run.sh

這一步如果報錯沒有python2,則運行下面的命令安裝即可:

sudo apt install python2.7
sudo ln -s /usr/bin/python2.7 /usr/bin/python2
  • conf/hibench.conf中,hibench.scale.profile規定了測試的規模。一開始,規模是
hibench.scale.profile                tiny

pagerank的tiny規模的詳細信息可以在conf/workloads/websearch/pagerank.conf中見到:

hibench.pagerank.tiny.pages			50
hibench.pagerank.tiny.num_iterations		1
hibench.pagerank.tiny.block			0
hibench.pagerank.tiny.block_width		16

如果需要修改測試的規模(例如改成small),只需要修改hibench.scale.profile即可。

修改PageRank代碼並重新編譯、運行

  • sparkbench/websearch中修改PageRank代碼。

  • 在本地重新編譯websearch模塊。

mvn -Psparkbench -Dmodules -Pwebsearch -Dspark=2.4 -Dscala=2.11 clean package

然後我們要將重新編譯的項目再次拷貝到服務器上。由於整個項目有1.5G,所以如果每修改一次代碼就要重新上傳整個項目未免太過耗時。由於我們只是重新編譯了websearch模塊,其他模塊並沒有被修改。於是我們考慮只上傳我們修改的這部分。

觀察mvn的輸出,我們可以知道所需上傳的部分有:

/home/zcq/hibench/common/target
/home/zcq/hibench/autogen/target
/home/zcq/hibench/sparkbench/common/target
/home/zcq/hibench/sparkbench/websearch/target
/home/zcq/hibench/sparkbench/assembly/target
/home/zcq/hibench/hadoopbench/pegasus/target
/home/zcq/hibench/hadoopbench/nutchindexing/target

因此,比較簡單的方法是寫一個腳本,自動將這些被修改的文件夾同步到服務器上。

  • 然後,在服務器上重新運行測試即可。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章