首页 > 编程语言 >[HiBench] 安装HiBench,测试在Spark上跑PageRank与修改源码测试

[HiBench] 安装HiBench,测试在Spark上跑PageRank与修改源码测试

时间:2023-05-06 15:45:20浏览次数:56  
标签:测试 hadoop 源码 conf spark home HiBench hibench

[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

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

  • 然后,在服务器上重新运行测试即可。

标签:测试,hadoop,源码,conf,spark,home,HiBench,hibench
From: https://www.cnblogs.com/CQzhangyu/p/17377575.html

相关文章

  • 性能测试
    性能测试的目的:测算系统的性能指标,查看系统的性能瓶颈,给出适合的软硬件配置方案,检验硬件配置能否满足客户的要求。性能测试的策略:基准测试:狭义上讲:也是单用户测试,测试环境确定以后,对业务模型中的重要业务做单独的测试,获取单用户运行时的各项性能指标。(进行基础的数据采集)......
  • 番外篇:分享一道用Python基础+蒙特卡洛算法实现排列组合的题目(附源码)
    今日鸡汤夕阳无限好,只是近黄昏。    大家好,我是Python进阶者。    是不是觉得很诧异?明明上周刚发布了这篇:分享一道用Python基础+蒙特卡洛算法实现排列组合的题目(附源码),今天又来一篇,名曰番外篇!其实今天是想给大家分享【......
  • 分享一道用Python基础+蒙特卡洛算法实现排列组合的题目(附源码)
    今日鸡汤沙场烽火连胡月,海畔云山拥蓟城。    大家好,我是Python进阶者。这篇文章的题目真的是很难取,索性先取这个了,装个13好了。前言    前几天在才哥交流群里,有个叫【RickXiang】的粉丝在Python交流群里问了一道关于排列组合的问题,初步一看觉得很简单,实际上确实是有难度的......
  • 谈谈测试核心竞争力
    博主分享的思考:https://mp.weixin.qq.com/s/QnBxP5iZGh8r86QhiH8wRQ刚参加完职级晋升,看到这个话题觉得博主分析的很有道理;思路更加清晰知道自己在哪些方面要发力,哪些环节更薄弱;拥抱学习才是未来。才不会被行业淘汰   ......
  • django视图层与cbv源码分析
    目录一、视图层之必会三板斧二、JsonResponse对象两种序列化数据的方式方式一:使用json模块方式二:使用JsonResponse对象使用JsonResponse对象序列化除字典外的数据类型如果给JsonResponse对象内部的json代码传参三、视图层之request对象获取文件四、视图层之FBV与CBV概念介绍五、CB......
  • spring-transaction源码分析(2)EnableTransactionManagement注解
    概述(Javadoc)该注解开启spring的注解驱动事务管理功能,通常标注在@Configuration类上面用于开启命令式事务管理或响应式事务管理。@Configuration@EnableTransactionManagementpublicclassAppConfig{@BeanpublicFooRepositoryfooRepository(){//c......
  • 华为OD机试 微服务的集成测试
    最近更新的博客华为od2023|什么是华为od,od薪资待遇,od机试题清单 https://dream.blog.csdn.net/article/details/128980730华为OD机试真题大全,用Python解华为机试题|机试宝典 https://dream.blog.csdn.net/article/details/129221789【华为OD机试】全流程解析......
  • mock框架与测试(用mock工具模拟后端与前端对接调试)
    mock简介应用在前后端分离的开发模式中敏捷管理中需要测试左移模拟后端与前端对接调试。实现满足接口逻辑通路,保证基本接口功能。mock开源框架只需配置request和response就可以满足要求支持http/https/socket协议支持在request中配置header、cookie、StatusCode对GET/POST/PUT/......
  • (原创第一篇,踩坑无数得来的,对Ai自动化测试框架很有帮助)appium自动化测试时遇到不能使用
     现在开发的前端界面使用vue或者更牛逼技术,导致使用appium或者uiautomator2做自动化测试时不能识别到元素,无法使用传统的id,name或者xpath,这时我们需要使用坐标点击文本框。有获取坐标方法,下期写一篇文章,可以在评论区提醒瑞克。fromappiumimportwebdriverimporttimeimport......
  • python测试
    当你在写Python代码的时候,你希望确保它能够正常运行并返回正确的结果。这就是测试的重要性。在Python中,常用的测试框架是unittest。使用unittest,你可以写测试用例,这些测试用例可以测试你的代码是否按照预期方式工作。以下是一个简单的Python测试教程:1.导入unittest模块import......