NightPxy 个人技术博客

Spark-编译(2.3.1)&部署(YARN-Cluster)

Posted on By NightPxy

Spark编译(2.3.1)&部署(YARN-Cluster)

前置准备

Maven 3.3.9

Maven需要将内存使用调高(防止编译过程内存超标报错)

export MAVEN_OPTS=”-Xmx2g -XX:ReservedCodeCacheSize=512m”

Java 8+

必须Java 8+,Spark2.2.0开始就已经不支持 Java7 了

Git

最好装上,编译不需要.但做部署包是需要Git的


Scala 准备

Spark本身使用Scala写的,也需要Scala语言的支持. Spark 2.3.1需要的Scala版本是 2.11+.这里我选择的是2.11.8

官网下载:

https://downloads.lightbend.com/scala/2.11.8/scala-2.11.8.tgz

解压

tar -xzvf ~/software/scala-2.11.8.tgz -C ~/app 

写入环境变量:

export SCALA_HOME=/home/hadoop/app/scala-2.11.8
export PATH=$SCALA_HOME/bin:$PATH 

编译

下载 Spark 源码

这里选择的当前最新版 spark-2.3.1.tgz 解压

tar -xzvf ~/source/spark-2.3.1.tgz -C ~/source/

Spark pom.xml

Hadoop我使用的CDH版 所以在pom.xml中加入cloudera仓库地址以便正确下载Hadoop.CDH Jar包

<repositories>
  <repository>
    <id>cloudera</id>
    <url>https://repository.cloudera.com/artifactory/cloudera-repos/</url>
  </repository>
</repositories>

调制 Spark 版本参数

Spark2.3.1 本身的 Hadoop版本是2.6.5 这里需要调整下,因为我的Hadoop是 2.6.0

hadoop.version=hadoop-2.6.0-cdh5.7.0 (我的YARN与Hadoop版本相同)
hive.version=hive-1.1.0-cdh5.7.0

编译

Maven编译命令

./build/mvn -Pyarn -Phadoop-2.6 -Dhadoop.version=2.6.0-cdh5.7.0 -Phive -Phive-thriftserver -DskipTests clean package

部署包

./dev/make-distribution.sh --name 2.6.0-cdh5.7.0  --tgz -Pyarn -Phadoop-2.6 -Dhadoop.version=2.6.0-cdh5.7.0 -Phive -Phive-thriftserver

第一次编译耗时比较久,建议科学上网,最后的结果如下 编译结果


部署

Spark有三种部署模式,选择部署为YARN-cluster模式 部署包拷贝到software(我统一放安装的包的地方)

cp ./spark-2.3.1-bin-2.6.0-cdh5.7.0.tgz ~/software/

解压

tar -xzvf ~/software/spark-2.3.1-bin-2.6.0-cdh5.7.0.tgz -C ~/app

配置环境变量

export HADOOP_CONF_DIR=/home/hadoop/app/hadoop-2.6.0-cdh5.7.0/etc/hadoop
export SPARK_HOME=/home/hadoop/app/spark-2.3.1-bin-2.6.0-cdh5.7.0
export PATH=$SPARK_HOME/bin:$PATH

启动

启动Spark-Shell Spark-Shell启动界面 Spark--Web启动界面

启动服务 Spark-Service启动界面

测试任务

./bin/spark-submit --class org.apache.spark.examples.SparkPi \
--master yarn \
--driver-memory 1g \
--executor-memory 1g \
--executor-cores 1 \
examples/jars/spark-examples*.jar \
10

Spark-YARN