Spark-Bench 教程

本文原始地址:https://sitoi.cn/posts/19752.html

系统环境配置

操作系统:centos7

环境要求:安装 JDK, Hadoop, Sparkmvn 运行环境

步骤

  1. 安装测试工具

    1. 安装 wikixmlj
    2. 安装 SparkBench 基准测试组件
    3. 单机环境安装方式
  2. 根据实际环境配置测试环境

    1. 修改基本环境
    2. 配置 Spark 运行参数部分
  3. 运行 Spark-Bench 测试

    1. 机器学习测试案例
    2. 图计算测试案例
    3. SQL 查询测试案例
    4. 流处理测试案例
    5. 其他测试案例
  4. 查看测试结果

安装测试工具

所有步骤在 hdfs 账号下进行:

安装 wikixmlj

克隆项目:项目地址

git clone https://github.com/synhershko/wikixmlj.git

进入项目目录进行 mvn 编译:

cd wikixmlj

mvn package -Dmaven.test.skip=true

mvn install -Dmaven.test.skip=true
安装 SparkBench 基准测试组件

注: ubuntu 系统需要安装以下包:

sudo apt-get install libgfortran3

克隆项目:项目地址

git clone -b legacy https://github.com/CODAIT/spark-bench.git

进入项目目录进行构建:

cd spark-bench/
./bin/build-all.sh
单机环境安装方式

在其他机器上执行上述两步,将两个文件拷贝到需要测试的机器上的 hdfs 账号下

注: ubuntu 系统需要安装额外包

根据实际环境配置测试环境

进入到 spark-bench 目录下修改 conf 目录下的 env.sh

cd spark-bench/
vim conf/env.sh
修改基本环境

根据实际情况修改对应配置

master="<master_ip_address>"                   根据实际情况修改master
MC_LIST=""
HADOOP_HOME=<HADOOP_HOME> 根据实际情况修改HADOOP_HOME
SPARK_HOME=<SPARK_HOME> 根据实际情况修改SPARK_HOME
HDFS_URL="hdfs://${master}:9000" 根据实际情况修改端口号
DATA_HDFS="hdfs://${master}:9000/SparkBench" 根据实际情况修改端口号
配置 Spark 运行参数部分

修改conf目录下的env.sh

SPARK_EXECUTOR_MEMORY=4G                       根据实际情况修改
export SPARK_DRIVER_MEMORY=4g 根据实际情况修改
export SPARK_EXECUTOR_INSTANCES=1 根据实际情况修改
export SPARK_EXECUTOR_CORES=1 根据实际情况修改

运行 Spark-Bench 测试

测试案例 功能
机器学习测试案例 逻辑回归,支持向量机,矩阵分解
图计算测试案例 PageRank,SVD++,三角计数(Triangle Count)
SQL查询测试案例 Hive,RDDRelation
流处理测试案例 Twitter Tag , Page View
其他测试案例 Kmeans,线性回归,决策树,最短路径,标签传播,连通图,强连通图
机器学习测试案例

进入到 spark-bench 目录下,在该目录下执行操作:

测试案例 Workload
逻辑回归 LogisticRegression
支持向量机 SVM
矩阵分解 MatrixFactorization

步骤:

  1. 修改配置参数
  2. 运行生成测试数据脚本
  3. 运行相应案例测试脚本
修改配置参数

<Workload> 根据测试案例表填写实际内容,下同:

vim <Workload>/conf/env.sh
运行生成测试数据脚本
./<Workload>/bin/gen_data.sh
运行相应案例测试脚本
./<Workload>/bin/run.sh
图计算测试案例

进入到 spark-bench 目录下,在该目录下执行操作:

测试案例 Workload
网页排名 PageRank
SVD++ SVDPlusPlus
三角计数 TriangleCount

步骤:

  1. 修改配置参数
  2. 运行生成测试数据脚本
  3. 运行相应案例测试脚本
修改配置参数
vim <Workload>/conf/env.sh
运行生成测试数据脚本
./<Workload>/bin/gen_data.sh
运行相应案例测试脚本
./<Workload>/bin/run.sh

SQL 查询测试案例

进入到 spark-bench 目录下,在该目录下执行操作:

测试案例 Workload
SQL查询 SQL

步骤:

  1. 修改配置参数
  2. 运行生成测试数据脚本
  3. 运行相应案例测试脚本
修改配置参数
vim /<Workload>/conf/env.sh
运行生成测试数据脚本
./<Workload>/bin/gen_data.sh
运行相应案例测试脚本
./<Workload>/bin/run.sh

在运行 SQL 查询案例时,默认是运行其中的 RDDRelation 案例,如果要想运行其中的 Hive 案例可以执行下面代码:

./<Workload>/bin/run.sh hive

流处理测试案例

进入到 spark-bench 目录下,在该目录下执行操作:

测试案例 Workload
流处理 Streaming

步骤:

  1. 修改配置参数
  2. 首先在一个终端中执行生成随机数据
  3. 然后再另一个终端中执行
修改配置参数
vim <Workload>/conf/env.sh

在运行流数据处理案例时,例如 TwitterTag,Streaming 逻辑回归

首先在一个终端中执行生成随机数据

在执行脚本时必须要指定你要运行案例名字的参数,如下:

./<Workload>/bin/gen_data.sh TwitterPopularTags
然后再另一个终端中执行

在执行脚本时必须要指定你要运行案例名字的参数,如下:

./<Workload>/bin/run.sh TwitterPopularTags

当然你也可以在 <Workload>/conf/env.sh 配置文件中指定你要运行的子案例的名称,通过修改 subApp=TwitterPopularTags

其他测试案例

进入到 spark-bench 目录下,在该目录下执行操作:

测试案例 Workload
Kmeans Kmeans
线性回归 LinearRegression
决策树 DecisionTree
最短路径 ShortestPaths
标签传播 LabelPropagation
连通图 ConnectedComponent
强连通图 StronglyConnectedComponent
主成分分析 PCA

步骤:

  1. 修改配置参数
  2. 运行生成测试数据脚本
  3. 运行相应案例测试脚本
修改配置参数
vim <Workload>/conf/env.sh
运行生成测试数据脚本
./<Workload>/bin/gen_data.sh
运行相应案例测试脚本
./<Workload>/bin/run.sh

查看测试结果

spark-bench 目录下的 num 目录下可以查看到运行结果。

相关链接

开源项目官网 : https://github.com/CODAIT/spark-bench/tree/legacy

安装文档 : https://blog.csdn.net/xfg0218/article/details/79250019

Spark-Bench 测试教程的更多相关文章

  1. MyCat安装与测试教程 超详细!

    MyCat安装与测试教程 超详细! MyCat基础知识 一.什么是MYCAT? 1. 一个彻底开源的,面向企业应用开发的大数据库集群 2. 支持事务.ACID.可以替代MySQL的加强版数据库 3. ...

  2. Kail Linux渗透测试教程之免杀Payload生成工具Veil

    Kail Linux渗透测试教程之免杀Payload生成工具Veil 免杀Payload生成工具——Veil Kail Linux渗透测试教程之免杀Payload生成工具Veil,Veil是一款利用M ...

  3. Kail Linux渗透测试教程之网络扫描和嗅探工具Nmap

    Kail Linux渗透测试教程之网络扫描和嗅探工具Nmap 网络扫描和嗅探工具——Nmap Nmap也就网络映射器(Network Mapper),是一个免费开放的网络扫描和嗅探工具.该工具可以扫描 ...

  4. Mac环境下RabbitMq安装与测试教程

    RabbitMq安装与测试教程 Installing on Mac I. 安装 123456789 brew install rabbitmq ## 进入安装目录cd /usr/local/Cella ...

  5. monkey测试===monkeyrunner测试教程(1)

    1.安装测试环境 jdk 安装与配置 android sdk安装与配置 Python编辑器安装与配置 以上安装请自行百度教程 Monkeyrunner使用方法 http://www.android-d ...

  6. 深度相机Astra Pro测试教程

    最近在微信群内,很多群友在群友的推荐下,购买了Astra pro的深度相机,价格地道,物超所值!群友反馈积极,所以这里出一波简单的教程.   以下内容知识抛砖引玉,主要讲解windows下和Ubunt ...

  7. Unity导出iOS真机测试教程

    原地址:http://unity3d.9tech.cn/news/2014/0410/40177.html 学 习了两天的Android开发,我感觉Android开发跟IOS开发和.NET平台下的开发 ...

  8. iOS—最全的真机测试教程

    准备 开发者账号 自从Xcode7 出来之后,一般的真机测试不需要开发者账号,也就不需要看这篇教程,只有app具有“推送”等功能的时候,要真机测试就必须要开发者账号和设置证书.苹果只是让你体验一下它的 ...

  9. 测试教程网.unittest教程.3. 实例: 测试弱密码

    From: http://www.testclass.net/pyunit/test_example_1/ 背景 考虑这样一个测试弱密码的实例,这个我们在pytest相关教程中也有过描述. 我们需要判 ...

随机推荐

  1. Spring Security教程(五)

    在之前的几篇security教程中,资源和所对应的权限都是在xml中进行配置的,也就在http标签中配置intercept-url,试想要是配置的对象不多,那还好,但是平常实际开发中都往往是非常多的资 ...

  2. [HeadFrist-HTMLCSS学习笔记]第五章认识媒体:给网页添加图像

    [HeadFrist-HTMLCSS学习笔记]第五章认识媒体:给网页添加图像 干货 JPEG.PNG.GIF有何不同 JPEG适合连续色调图像,如照片:不支持透明度:不支持动画:有损格式 PNG适合单 ...

  3. 【IntelliJ IDEA学习之七】maven专题

    版本:IntelliJIDEA2018.1.4 一.maven全局设置 设置Runner 运行VM参数:-Xms128m -Xmx512m -Duser.language=zh -Dfile.enco ...

  4. 【C/C++开发】c++ 工具库 (zz)

    下面是收集的一些开发工具包,主要是C/C++方面的,涉及图形.图像.游戏.人工智能等各个方面,感觉是一个比较全的资源.供参考!  原文的出处:http://www.codemonsters.de/ho ...

  5. Python【每日一问】32

    问: [基础题]:手机品牌存放在一个列表中 brandlist = ['华为','苹果','一加','OPPO','小米'],请实现以下功能:随机选择一个手机品牌屏幕输出 [提高题]:编写一个函数,输 ...

  6. ArcSOC进程数不断增长导致oracle processes溢出原因分析

    现场出现了一个问题,oracle运行一段时间之后,process个数会溢出,然后新的连接会失败.通过分析,发现Arcgis Server 的ArcSOC进程在不段增长.ArcSOC是arcgis se ...

  7. StringToKenizer和Scanner的区别

    相同点: StringToKenizer类和Scanner类都可用于分解字符序列中的单词! 不同点: StringToKenizer类把分解出的全部字符串都存放到StringToKenizer对象的实 ...

  8. 第十五节:Asp.Net Core中的各种过滤器(授权、资源、操作、结果、异常)

    一. 简介 1. 说明 提到过滤器,通常是指请求处理管道中特定阶段之前或之后的代码,可以处理:授权.响应缓存(对请求管道进行短路,以便返回缓存的响应). 防盗链.本地化国际化等,过滤器用于横向处理业务 ...

  9. Delphi BusinessSkinForm使用说明

    1.先放bsBusinessSkinForm.bsSkinData.bsStoredSkin各一个到窗体上 2.修改bsBusinessSkinForm的SkinData属性为bsSkinData1 ...

  10. C语言交换两个指针所指位置的数值

    交换指针变量x和y所指向的存储位置处存放的值,不需要第三个位置来存储临时变量.这种方式并没有性能上的优势. void replace(int *x, int *y) { *y = *x ^ *y; * ...