spark-bench性能测试工具
Posted python真好用
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spark-bench性能测试工具相关的知识,希望对你有一定的参考价值。
关于spark-bench是一款spark的性能测试工具,可以用来生成数据以及训练数据,个人理解应该是用生成的数据跑一套机器学习的算法,记录它每个环节消耗的时间。
言归正传,讲解一下关于spark-bench的安装一整套流程,这是spark-bench的安装包以及环境(链接:https://pan.baidu.com/s/1_cg6vBwTAcXvT0YGra6zUg 提取码:748l)
1.安装mvn
2.安装wikixmlj
3.安装spark-bench
1.安装mvn
- 解压
- 添加环境变量
vi /etc/profile
MAVEN_HOME=/解压的路径/apache-maven-3.5.4
export MAVEN_HOME
export PATH=$PATH:$MAVEN_HOME/bin
source /etc/profile
- mvn -v 看一下能不能出现版本号
- 换阿里源(不然待会儿下jar包的时候速度感人)
文件夹,在conf目录中找到settings.xml 文件,配置mirrors的子节点,添加如下mirror
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>central</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
- 不联网的情况下mvn安装
在maven的setting.xml文件中添加(这是本地仓库jar包的位置,本地jar包需要解压到本地仓库)
<localRepository>/env/repository</localRepository>
需要删除/root/.m2这个文件夹,这是系统默认目录,不删会从网上下载。
实操的时候发现在无外网的环境下还是会从中央仓库下载,但是换了阿里源之后就从本地下载了
2.安装wikixmlj
解压
cd wikixmlj
mvn package -Dmaven.test.skip=true
mvn install -Dmaven.test.skip=true
3.安装spark-bench
解压
./SPARK_BENCH_HOME/bin/build-all.sh
vi spark-bench-legacy/conf/env.sh
# global settings
master="namenode01"
#A list of machines where the spark cluster is running
MC_LIST="namenode01"
[ -z "$HADOOP_HOME" ] && export HADOOP_HOME=/opt/cloudera/parcels/CDH-5.8.2-1.cdh5.8.2.p0.3/
# base dir for DataSet
HDFS_URL="hdfs://namenode01:8020"
SPARK_HADOOP_FS_LOCAL_BLOCK_SIZE=536870912
# DATA_HDFS="hdfs://$master:9000/SparkBench", "file:///home/`whoami`/SparkBench"
DATA_HDFS="hdfs://namenode01:8020/SparkBench"
#Local dataset optional
DATASET_DIR=/home/`whoami`/SparkBench/dataset
SPARK_VERSION=2.0.1 #1.5.1
[ -z "$SPARK_HOME" ] && export SPARK_HOME=/opt/cloudera/parcels/CDH-5.8.2-1.cdh5.8.2.p0.3/lib/spark
#SPARK_MASTER=local
#SPARK_MASTER=local[K]
#SPARK_MASTER=local[*]
#SPARK_MASTER=spark://HOST:PORT
##SPARK_MASTER=mesos://HOST:PORT
##SPARK_MASTER=yarn-client
SPARK_MASTER=yarn
MASTER=yarn
YARN_DEPLOY_MODE=client # or cluster, this will go to spark submit as --deploy-mode
SPARK_RPC_ASKTIMEOUT=500
#SPARK_MASTER=spark://$master:7077
# Spark config in environment variable or aruments of spark-submit
# - SPARK_SERIALIZER, --conf spark.serializer
# - SPARK_RDD_COMPRESS, --conf spark.rdd.compress
# - SPARK_IO_COMPRESSION_CODEC, --conf spark.io.compression.codec
# - SPARK_DEFAULT_PARALLELISM, --conf spark.default.parallelism
SPARK_SERIALIZER=org.apache.spark.serializer.KryoSerializer
SPARK_RDD_COMPRESS=false
SPARK_IO_COMPRESSION_CODEC=lzf
# Spark options in system.property or arguments of spark-submit
# - SPARK_EXECUTOR_MEMORY, --conf spark.executor.memory
# - SPARK_STORAGE_MEMORYFRACTION, --conf spark.storage.memoryfraction
#SPARK_STORAGE_MEMORYFRACTION=0.5
SPARK_EXECUTOR_MEMORY=1g
#export MEM_FRACTION_GLOBAL=0.005
# Spark options in YARN client mode
# - SPARK_DRIVER_MEMORY, --driver-memory
# - SPARK_EXECUTOR_INSTANCES, --num-executors
# - SPARK_EXECUTOR_CORES, --executor-cores
# - SPARK_DRIVER_MEMORY, --driver-memory
#export EXECUTOR_GLOBAL_MEM=2g
#export executor_cores=2
export SPARK_DRIVER_MEMORY=2g
export SPARK_EXECUTOR_INSTANCES=4
export SPARK_EXECUTOR_CORES=1
# Storage levels, see http://spark.apache.org/docs/latest/api/java/org/apache/spark/api/java/StorageLevels.html
# - STORAGE_LEVEL, set MEMORY_AND_DISK, MEMORY_AND_DISK_SER, MEMORY_ONLY, MEMORY_ONLY_SER, or DISK_ONLY
STORAGE_LEVEL=MEMORY_AND_DISK
# for data generation
NUM_OF_PARTITIONS=2
# for running
NUM_TRIALS=1
根据你集群的情况调整参数,接下来可以调整算法的参数,以Kmeans为例
cd KMeans/conf
vi env.sh
KMeans:(这是20台节点,4亿点数据,NUM_OF_PARTITIONS设为7500,10台节点,NUM_OF_PARTITIONS设为15000,30台设为5000)
# The parameters for data generation. 100 million points roughly produces 36GB data size
NUM_OF_POINTS=400000000
NUM_OF_CLUSTERS=500
DIMENSIONS=60
SCALING=0.6
NUM_OF_PARTITIONS=7500
MAX_ITERATION=10
NUM_RUN=1
根据节点数,以及生成的数据量调整你的NUM_OF_PARTITIONS,节点数少,数据量大就调大点。
接下来就是生成数据
cd KMeans/bin
./gen_data.sh
生成完数据就可以训练数据了
./run.sh
以上就是spark-bench性能测试工具的用法了,关于性能测试的参数调整需要根据多种因素进行调整,可以多测试几次来将集群的性能发挥到最大。
以上是关于spark-bench性能测试工具的主要内容,如果未能解决你的问题,请参考以下文章