7.3.3 使用BigDataBench

BigDataBench[1]针对不同的负载,用户可以使用下面的方式生成数据和使用工作负载。

在Spark的Shell中已经默认设置了数据生成的命令和配置,感兴趣的读者或者有特定数据规模需求的读者可以修改对应的Shell调整负载。

1.离线分析(offline analytics)

Spark版本的工作负载包含3个:sort、grep、wordcount。

(1)sort

用户在运行之前需要将Spark复制到各个节点。

1)准备工作。

在官网下载指定的包后,解压压缩包。


  1. BigDataBench_Sprak_V3.0.tar.gz
  2. tar -xzf BigDataBench_Sprak_V3.0.tar.gz

2)打开目录。


  1. cd BigDataBench_Sprak_V3.0.tar.gz /MicroBenchmarks/

3)生成数据。


  1. sh genData_MicroBenchmarks.sh
  2. sh sort-transfer.sh

4)运行。

注意:如果运行的负载是排序,则需要提前运行sh文件sort-transfer进行转换。

第一步:sh genData_MicroBenchmarks.sh。

第二步:sh sort-transfer.sh。

第三步:运行。


  1. ./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负载


  1. ./run-bigdatabench cn.ac.ict.bigdatabench.Grep <master> <data_file> <keyword> <save_file>
  2. [<slices>]

参数介绍:

·<master>:Spark服务器的URL,例如:spark://172.16.1.39:7077。

·<data_file>:输入数据的HDFS路径,例如:/test/data.txt。

·<keyword>:过滤文本用的关键词。

·<save_file>:保存结果用的HDFS路径。

·[<slices>]:可选参数,Worker数量。

(3)执行wordcount负载


  1. ./run-bigdatabench cn.ac.ict.bigdatabench.WordCount <master> <data_file> <save_file>
  2. [<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。


  1. Spark-version

1)前期准备。

下载并解压文件:BigDataBench_Sprak_V3.0.tar.gz。


  1. tar xzf BigDataBench_Sprak_V3.0tar.gz

2)打开目录。


  1. cd BigDataBench_Sprak_V3.0.tar.gz /SearchEngine/ Pagerank

3)生成数据。


  1. sh genData_PageRank.sh

4)运行。


  1. ./run-bigdatabenchorg.apache.spark.examples.PageRank
  2. <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。


  1. tar -xzf BigDataBench_Sprak_V3.0.tar.gz

2)打开根目录。


  1. cd BigDataBench_Sprak_V3.0.tar.gz /SNS

3)生成数据。


  1. sh genData_ Kmeans.sh

4)运行。


  1. ./run-bigdatabench org.apache.spark.mllib.clustering.KMeans <master> <input_file> <k>
  2. <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。


  1. tar xzf BigDataBench_Sprak_V3.0.tar.gz

②打开根目录。


  1. cd BigDataBench_Sprak_V3.0.tar.gz/ SNS/connect/

③生成数据。


  1. sh genData_ connectedComponents.sh

2)运行。


  1. ./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。


  1. tar -xzf BigDataBench_Sprak_V2.2.tar.gz

2)打开根目录。


  1. cd BigDataBench_Sprak_V2.2.tar.gz / E-commerce

3)生成数据。


  1. sh genData_ naivebayes.sh

4)运行。


  1. sh run_naivebayes.sh

[1] 参见:http://prof.ict.ac.cn/BigDataBench/,A Big Data Benchmark Suite,ICT,Chinese Academy of Sciences。