Spark3与CDH6.1.1的集成

一、编译Spark3.0.3源码

1、源码下载

https://github.com/apache/spark/archive/refs/tags/v3.0.3.zip

2、上传至/opt/soft目录并解压至/opt/module

unzip spark-3.0.3.zip
mv /opt/soft/spark-3.0.3 /opt/module/

3、修改pom文件

vim /opt/module/spark-3.0.3/pom.xml

  添加Cloudera maven镜像及hadoop3.0 相关

<repository>
<id>cloudera</id>
<url>https://repository.cloudera.com/artifactory/cloudera-repos/</url>
<name>Cloudera Repositories</name>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>

<pluginRepository>
<id>cloudera</id>
<name>Cloudera Repositories</name>
<url>https://repository.cloudera.com/artifactory/cloudera-repos/</url>
</pluginRepository>

<profile>
<id>hadoop-3.0</id>
<properties>
<hadoop.version>3.0.0-cdh6.1.1</hadoop.version>
</properties>
</profile>

  修改maven版本号,我的maven版本号为3.6.3,可以使用mvn -version命令进行查看

<maven.version>3.6.3</maven.version>

4、修改make-distribution.sh

vim /opt/module/spark-3.0.3/dev/make-distribution.sh

  将如下内容注释掉:

#VERSION=$("$MVN" help:evaluate -Dexpression=project.version $@ 2>/dev/null\
# | grep -v "INFO"\
# | grep -v "WARNING"\
# | tail -n 1)
#SCALA_VERSION=$("$MVN" help:evaluate -Dexpression=scala.binary.version $@ 2>/dev/null\
# | grep -v "INFO"\
# | grep -v "WARNING"\
# | tail -n 1)
#SPARK_HADOOP_VERSION=$("$MVN" help:evaluate -Dexpression=hadoop.version $@ 2>/dev/null\
# | grep -v "INFO"\
# | grep -v "WARNING"\
# | tail -n 1)
#SPARK_HIVE=$("$MVN" help:evaluate -Dexpression=project.activeProfiles -pl sql/hive $@ 2>/dev/null\
# | grep -v "INFO"\
# | grep -v "WARNING"\
# | fgrep --count "<id>hive</id>";\
# # Reset exit status to 0, otherwise the script stops here if the last grep finds nothing\
# # because we use "set -o pipefail"
# echo -n)

  添加如下内容:

#spark的版本
VERSION=3.0.3
#使用的scala版本
SCALA_VERSION=2.11
#使用什么版本hadoop进行打包编译
SPARK_HADOOP_VERSION=3.0.0-cdh6.1.1
#是否使用hive
SPARK_HIVE=1

5、编译准备

  为防止编译过程中出现内存不足而出现“被杀死“错误,我们设置一下内存大小,必要时打开swap分区:

export MAVEN_OPTS="-Xms10g -Xmx10g"
#启用swap分区
swapon -a

6、执行编译命令

cd /opt/module/spark-3.0.3/
./dev/make-distribution.sh --name 3.0.0-cdh6.1.1 --tgz  -Pyarn -Phadoop-3.0 -Phive -Phive-thriftserver -Dhadoop.version=3.0.0-cdh6.1.1

7、查看编译结果

8、参考地址

https://blog.csdn.net/weixin_44641024/article/details/102624086

https://cdn.modb.pro/db/414191

二、集成CDH

1、上传spark-3.0.3-bin-3.0.0-cdh6.1.1.tgz至/opt/soft目录

2、解压至/opt/module

tar -zxvf /opt/soft/spark-3.0.3-bin-3.0.0-cdh6.1.1.tgz -C /opt/module

3、修改文件名称

cd /opt/module/spark-3.0.3-bin-3.0.0-cdh6.1.1/conf
mv spark-defaults.conf.template spark-defaults.conf
mv spark-env.sh.template spark-env.sh

4、修改spark-defaults.conf

vim spark-defaults.conf

  添加如下内容

#hive metastore的版本设置为 2.1.1
spark.sql.hive.metastore.version=2.1.1
#引用 hive2.1.1 相关的jar包
spark.sql.hive.metastore.jars=/opt/cloudera/parcels/CDH/lib/hive/lib/*
#设置spark提交任务默认的yarn队列,这条可以不加
#spark.yarn.queue=root.user
#为了从Yarn上关联到Spark历史服务器,需要配置关联路径
spark.yarn.historyServer.address=xxx.xxx.xxx.100:18080
spark.history.ui.port=18080

spark.master yarn
spark.eventLog.enabled true
spark.eventLog.dir hdfs://服务名/spark3.0.3/sparklogs
spark.executor.memory 4g
spark.driver.memory 4g

5、修改spark-env.sh

vim spark-env.sh

  添加如下内容

#添加 hadoop 配置文件的路径
export HADOOP_CONF_DIR=/etc/hadoop/conf
export YARN_CONF_DIR=/opt/cloudera/parcels/CDH/lib/hadoop/etc/hadoop
export HIVE_CONF_DIR=/etc/hive/conf

#WEBUI访问的端口号为18080,
#指定历史服务器日志存储路径为/spark/sparklogs,
#retainedApplications指定保存Application历史记录的个数,如果超过这个值,旧的应用程序信息将被删除,这个是内存中的应用数,而不是页面上显示的应用数
export SPARK_HISTORY_OPTS="
-Dspark.history.ui.port=18080
-Dspark.history.fs.logDirectory=hdfs://服务名/spark/sparklogs
-Dspark.history.retainedApplications=1000"

6、获取CDH相关配置文件至conf目录

cp /etc/hadoop/conf/hdfs-site.xml /opt/module/spark-3.0.3-bin-3.0.0-cdh6.1.1/conf/
cp /etc/hadoop/conf/core-site.xml /opt/module/spark-3.0.3-bin-3.0.0-cdh6.1.1/conf/
cp /etc/hive/conf/hive-site.xml /opt/module/spark-3.0.3-bin-3.0.0-cdh6.1.1/conf/

7、在HDFS创建对应的目录

hadoop fs -mkdir -p /spark3.0.3/sparklogs
hadoop fs -mkdir -p /spark/sparklogs

8、在xxx.xxx.xxx.100节点启动/停止历史服务器

/opt/module/spark-3.0.3-bin-3.0.0-cdh6.1.1/sbin/stop-history-server.sh
/opt/module/spark-3.0.3-bin-3.0.0-cdh6.1.1/sbin/start-history-server.sh

9、启动spark-shell、pyspark

/opt/module/spark-3.0.3-bin-3.0.0-cdh6.1.1/bin/spark-shell
/opt/module/spark-3.0.3-bin-3.0.0-cdh6.1.1/bin/pyspark

10、说明

  这里没有配置Spark3.0.3版本的环境变量,而是使用全路径的方式使用,主要是避免影响到CDH版本的Spark。

posted @ 2022-10-10 09:33  落魄的大数据转AI小哥  阅读(306)  评论(0编辑  收藏  举报