7.3.3 使用BigDataBench
BigDataBench[1]针对不同的负载,用户可以使用下面的方式生成数据和使用工作负载。
在Spark的Shell中已经默认设置了数据生成的命令和配置,感兴趣的读者或者有特定数据规模需求的读者可以修改对应的Shell调整负载。
1.离线分析(offline analytics)
Spark版本的工作负载包含3个:sort、grep、wordcount。
(1)sort
用户在运行之前需要将Spark复制到各个节点。
1)准备工作。
在官网下载指定的包后,解压压缩包。
- BigDataBench_Sprak_V3.0.tar.gz
- tar -xzf BigDataBench_Sprak_V3.0.tar.gz
2)打开目录。
- cd BigDataBench_Sprak_V3.0.tar.gz /MicroBenchmarks/
3)生成数据。
- sh genData_MicroBenchmarks.sh
- sh sort-transfer.sh
4)运行。
注意:如果运行的负载是排序,则需要提前运行sh文件sort-transfer进行转换。
第一步:sh genData_MicroBenchmarks.sh。
第二步:sh sort-transfer.sh。
第三步:运行。
- ./run-bigdatabench cn.ac.ict.bigdatabench.Sort <master> <data_file> <save_file> [<slices>]
参数介绍:
·<master>:Spark服务器的URL,例如:spark://172.16.1.39:7077。
·<data_file>:输入数据的HDFS路径,例如:/test/data.txt。
·<save_file>:保存结果的HDFS路径。
·[<slices>]:可选参数(worker数量)。
(2)执行grep负载
- ./run-bigdatabench cn.ac.ict.bigdatabench.Grep <master> <data_file> <keyword> <save_file>
- [<slices>]
参数介绍:
·<master>:Spark服务器的URL,例如:spark://172.16.1.39:7077。
·<data_file>:输入数据的HDFS路径,例如:/test/data.txt。
·<keyword>:过滤文本用的关键词。
·<save_file>:保存结果用的HDFS路径。
·[<slices>]:可选参数,Worker数量。
(3)执行wordcount负载
- ./run-bigdatabench cn.ac.ict.bigdatabench.WordCount <master> <data_file> <save_file>
- [<slices>]
参数介绍:
·<master>:Spark服务器的URL,例如:spark://172.16.1.39:7077。
·<data_file>:输入数据的HDFS路径,例如:/test/data.txt。
·<save_file>:保存结果的HDFS路径。
·[<slices>]:可选参数,worker数量。
2.分析型的工作负载
(1)PageRank
PageRank的程序和数据源自Hibench。
- Spark-version
1)前期准备。
下载并解压文件:BigDataBench_Sprak_V3.0.tar.gz。
- tar xzf BigDataBench_Sprak_V3.0tar.gz
2)打开目录。
- cd BigDataBench_Sprak_V3.0.tar.gz /SearchEngine/ Pagerank
3)生成数据。
- sh genData_PageRank.sh
4)运行。
- ./run-bigdatabenchorg.apache.spark.examples.PageRank
- <master> <file> <number_of_iterations> <save_path> [<slices>]
参数介绍:
·<master>:Spark服务器的URL,例如:spark://172.16.1.39:7077。
·<file>:输入数据的HDFS路径,例如:/test/data.txt。
·<number_of_iterations>:运行算法的迭代次数。
·<save_path>:保存结果的路径。
·[<slices>]:可选参数,worker数量。
(2)Kmeans
Kmeans的工作负载来源于Mahout。
1)准备工作。
下载并解压包:BigDataBench_Sprak_V3.0.tar.gz。
- tar -xzf BigDataBench_Sprak_V3.0.tar.gz
2)打开根目录。
- cd BigDataBench_Sprak_V3.0.tar.gz /SNS
3)生成数据。
- sh genData_ Kmeans.sh
4)运行。
- ./run-bigdatabench org.apache.spark.mllib.clustering.KMeans <master> <input_file> <k>
- <max_iterations> [<runs>]
参数介绍:
·<master>:Spark服务器的URL,例如:spark://172.16.1.39:7077。
·<input_file>:输入数据的HDFS路径,例如:/test/data.txt。
·[<k>]:数据中心的数量。
·<max_iterations>:运行算法的迭代次数。
·[<runs>]:通过上述命令即可进行kMears基准测试。
(3)Connected Components
Connected Components程序源自PEGASUS。
1)准备工作。
①下载并解压包:BigDataBench_Sprak_V3.0.tar.gz。
- tar xzf BigDataBench_Sprak_V3.0.tar.gz
②打开根目录。
- cd BigDataBench_Sprak_V3.0.tar.gz/ SNS/connect/
③生成数据。
- sh genData_ connectedComponents.sh
2)运行。
- ./run-bigdatabench cn.ac.ict.bigdatabench.ConnectedComponent <master> <data_file> [<slices>]
参数介绍:
·<master>:Spark服务器的URL,例如:spark://172.16.1.39:7077。
·<data_file>:输入数据的HDFS路径,例如:/test/data.txt。
·[<slices>]:可选参数,worker数量。
通过上述命令即可运行Connected Components负载。
(4)Naive Bayes
Naive Bayes(朴素贝叶斯)算法也是源自Mahout。通过下面命令进行数据生成与测试。
1)下载并解压包:BigDataBench_Sprak_V2.2.tar.gz。
- tar -xzf BigDataBench_Sprak_V2.2.tar.gz。
2)打开根目录。
- cd BigDataBench_Sprak_V2.2.tar.gz / E-commerce
3)生成数据。
- sh genData_ naivebayes.sh
4)运行。
- sh run_naivebayes.sh
[1] 参见:http://prof.ict.ac.cn/BigDataBench/,A Big Data Benchmark Suite,ICT,Chinese Academy of Sciences。