一、准备安装包

1、下载地址

Downloads | Apache Spark

我们这次用的Spark 3.3.0 (Jun 16 2022)  版本

Apache Download Mirrors

2、将下载好的压缩包上传到服务器主节点的/opt/soft目录下,如果网络ok,可以直接wget下来

    wget Apache Download Mirrors -P /opt/soft

       

3、解压并设置软连接

tar -xzvf spark-3.3.0-bin-hadoop3.tgz

ln -s spark-3.3.0-bin-hadoop3 spark-3.3.0

4、测试local模式

cd /opt/soft/spark-3.3.0/bin/

./spark-shell

二、环境准备

1、安装python3

可使用anaconda包(我这边用的是自己的,或者去官网下载下也是可以的)

wget  http://10.x.x.2/data-images/anaconda3.tar.gz -P /opt/soft

ln -s /opt/soft/anaconda3/bin/python3 /usr/bin/python3

python3 -V

2、测试pyspark

cd /opt/soft/spark-3.3.0/bin/

./pyspark

三、Spark On Yarn 模式 的环境搭建

1、添加CDH环境配置

软链接hadoop/hive相关的配置文件到 conf目录下

cd /opt/soft/spark-3.3.0/conf

ln -s /etc/hive/conf/hdfs-site.xml hdfs-site.xml

ln -s /etc/hive/conf/mapred-site.xml mapred-site.xml

ln -s /etc/hive/conf/yarn-site.xml yarn-site.xml

ln -s /etc/hive/conf/core-site.xml core-site.xml

ln -s /etc/hive/conf/hive-env.sh hive-env.sh

ln -s /etc/hive/conf/hive-site.xml hive-site.xml

2、添加spark配置

cd /opt/soft/spark-3.3.0/conf

2.1 spark-defaults.conf

cp spark-defaults.conf.template 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.users -----这里我先设置到公共区

2.2 spark-env.sh

cp spark-env.sh.template spark-env.sh

vi spark-env.sh

在配置文件底部添加下面的配置

export HADOOP_CONF_DIR=/etc/hadoop/conf # 添加 hadoop 配置文件的路径

export SPARK_HISTORY_OPTS="-Dspark.history.ui.port=39888 -Dspark.history.retainedApplications=3 -Dspark.history.fs.logDirectory=hdfs://nameservice1/user/spark3/spark3log"

# 添加 spark job history 相关参数 包括 web ui的端口[端口记得先做下冲突测试] / 缓存的spark作业日志数目 / 日志的hdfs路径

2.3 log4j.properties

cp log4j.properties.template log4j.properties  # 复制log4j模板, 添加 默认的log4j配置

rootLogger.level = WARN

rootLogger.appenderRef.stdout.ref = console

log4j.appender.console=org.apache.log4j.ConsoleAppender

log4j.appender.console.target=System.err

log4j.appender.console.layout=org.apache.log4j.PatternLayout

log4j.appender.console.layout.ConversionPattern=%d{yy/MM/dd HH:mm:ss} %p %c{1}:%m%n

2.4 spark-sql命令

vi /opt/soft/spark-3.3.0/bin/spark-sql

在头部添加SPARK_HOME配置,以避免使用 CDH 集群的 spark jar包

SPARK3_HOME=SPARK3_HOME=/opt/soft/spark-3.3.0

三、分发spark软件包

将/opt/soft/spark-3.3.0整包发送到各个客户端,并添加快捷命令

先压缩包,然后放到oss上

使用spug或者ansible批量执行

wget http://10.x.x.2/data-images/spark-3.3.0-dw.tar.gz -P /opt/soft

tar -xzvf /opt/soft/spark-3.3.0-dw.tar.gz -C /opt/soft

ln -s /opt/soft/spark-3.3.0/bin/pyspark /usr/bin/pyspark3

ln -s /opt/soft/spark-3.3.0/bin/spark-sql  /usr/bin/spark3-sql

ln -s /opt/soft/spark-3.3.0/bin/spark-submit /usr/bin/spark3-submit

echo  "export SPARK3_HOME=/opt/soft/spark-3.3.0" >>  /etc/profile

echo  "export PATH=$SPARK3_HOME/bin:$HBASE_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HIVE_HOME/bin:$PATH" >>  /etc/profile

四、spark on yarn 测试

# 进入到 spark3.0.1 的 bin目录

cd /opt/soft/spark-3.3.0/bin/

1、spark-sql测试  

spark3-sql --master yarn --name spark-sql-test

--master 集群模式,on yarn

--name application的name,自定义

2、pyspark测试

3、Spark-submit测试(on yarn)

spark3-submit --master yarn --conf "spark.pyspark.driver.python=/opt/soft/anaconda3/bin/python3" --conf "spark.pyspark.python=/opt/soft/anaconda3/bin/python3" ${SPARK3_HOME}/examples/src/main/python/pi.py 10

五、spark thriftserver 使用

启动spark thriftserver

注意需要添加启动端口号的配置

cd $SPARK_3_0_1_HOME/sbin

启动thriftserver

./start-thriftserver.sh \

--master yarn \

--executor-memory 512m \

--hiveconf hive.server2.thrift.port=10005

使用spark3.0.1 自带的beeline进行连接

好文链接

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: