[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

因此,比较简单的方法是写一个脚本,自动将这些被修改的文件夹同步到服务器上。

  • 然后,在服务器上重新运行测试即可。
posted @ 2023-05-06 15:39  CQzhangyu  阅读(115)  评论(0编辑  收藏  举报