[HiBench] 安装HiBench,测试在Spark上跑PageRank与修改源码测试
[HiBench] 安装HiBench,测试在Spark上跑PageRank与修改源码测试
背景:我想在HiBench上测试在Spark上跑PageRank性能,并想要修改PageRank的源码进行测试。本来,HiBench在README里写的已经挺清楚的了,直接照着做就行。奈何我用的服务器没有珂学上网,所以还是遇到了一点小麻烦。
下载HiBench
- 直接去官网clone HiBench的项目:Intel-bigdata/HiBench: HiBench is a big data benchmark suite. (github.com)
编译spark模块
- 按照官网的教程去编译spark模块。
mvn -Psparkbench -Dspark=2.4 -Dscala=2.11 clean package
这一步是需要珂学上网的。由于我的服务器上不能珂学上网,而我的本地可以。所以需要在本地编译,然后将整个项目上传到服务器上。
注意:不要在服务器上运行上面的代码!否则mvn clean
会将所有文件都删除,我就得重新将这个项目上传一遍了(编译后的整个文件夹大约1.5G)。
配置hadoop.conf
和spark.conf
- 配置
hadoop.conf
和spark.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
因此,比较简单的方法是写一个脚本,自动将这些被修改的文件夹同步到服务器上。
- 然后,在服务器上重新运行测试即可。
| 欢迎来原网站坐坐! >原文链接<