Hadoop 集群中配置 Spark
Spark 是当今大数据领域最活跃、最热门、最高效的大数据通用计算平台之一。Spark 主要用于替代Hadoop中的 MapReduce 计算模型。实际上,Spark 已经很好地融入了 Hadoop 生态圈,并成为其中的重要一员,它可以借助于 YARN 实现资源调度管理,借助于 HDFS 实现分布式存储。
下面我们便直接来进行spark的配置
1.前提条件(参考我之前的文章Hadoop集群的搭建:https://www.cnblogs.com/OM-dyc/articles/19091346)
已搭建好的 Hadoop 集群(HDFS 和 YARN 正常运行)
所有节点已安装 Java(推荐 JDK 8)
集群节点间已配置 SSH 免密登录
2.下载并解压 Spark(推荐使用华为云镜像下载,直接下载实在是太慢了)
华为云链接:https://mirrors.huaweicloud.com/apache/spark/spark-3.3.4/spark-3.3.4-bin-hadoop3.tgz
下载完之后通过scp命令上传到服务器(D:>scp ./spark-3.3.4-bin-hadoop3.tgz root@192.168.43.3:/root/)

随后在主服务器上进行解压
# 解压到指定目录
tar -zxvf spark-3.3.4-bin-hadoop3.tgz -C /opt/
# 创建软链接便于管理
ln -s /opt/spark-3.3.4-bin-hadoop3 /opt/spark
3.配置环境变量
vim /etc/profile
在文本末尾添加:
export SPARK_HOME=/opt/spark
export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
使配置生效:
source /etc/profile
4.配置 Spark
cd $SPARK_HOME/conf
复制模板文件
cp spark-env.sh.template spark-env.sh
cp workers.template workers
配置 spark-env.sh
vim spark-env.sh
# Java路径
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
# Hadoop配置文件路径
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
# Spark主节点地址
export SPARK_MASTER_HOST=192.168.43.3 //master节点IP
# 每个worker可用的内存
export SPARK_WORKER_MEMORY=4g
# 每个worker可用的CPU核心数
export SPARK_WORKER_CORES=2
# Spark历史服务器配置
export SPARK_HISTORY_OPTS="-Dspark.history.fs.logDirectory=hdfs:///user/spark/applicationHistory -Dspark.history.retainedApplications=30"
5.配置 workers 文件
vim workers
在文本末尾添加:
master
node01
node02
- 配置 Spark 与 YARN 集成
创建spark-defaults.conf文件:
cp spark-defaults.conf.template spark-defaults.conf
编辑spark-defaults.conf
vim spark-defaults.conf
添加以下内容:
spark.master yarn
spark.eventLog.enabled true
spark.eventLog.dir hdfs:///user/spark/applicationHistory
spark.yarn.historyServer.address 192.168.43.3:18080
spark.yarn.jars hdfs:///user/spark/jars/*.jar
7.分发 Spark 到所有节点
# 复制到worker1
scp -r /opt/spark-3.3.4-bin-hadoop3 node01:/opt/
# 复制到worker2
scp -r /opt/spark-3.3.4-bin-hadoop3 node02:/opt/
# 并在每个节点创建软链接和配置环境变量
8.准备 HDFS 目录
# 创建Spark需要的HDFS目录
hdfs dfs -mkdir -p /user/spark/applicationHistory
hdfs dfs -mkdir -p /user/spark/jars
# 复制Spark的jar包到HDFS
hdfs dfs -put $SPARK_HOME/jars/* /user/spark/jars/
9.启动 Spark 集群
# 同步spark配置
scp -r /opt/spark node01:/opt/
scp -r /opt/spark node02:/opt/
# 启动Spark主节点和工作节点
主节点:start-all.sh
$SPARK_HOME/sbin/start-master.sh
工作节点:
echo 'export SPARK_HOME=/opt/spark' >> /etc/profile
echo 'export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin' >> /etc/profile
source /etc/profile
$SPARK_HOME/sbin/start-slave.sh spark://192.168.43.3:7077
# 启动历史服务器
start-history-server.sh
10.查看Spark进程
jps
# 应该能看到以下进程:
# Master
# Worker
# SparkHistoryServer
11.访问web端测试
http://192.168.43.3:8080/

12.验证集群可用性(提交测试任务)
spark-submit \
--class org.apache.spark.examples.SparkPi \
--master spark://192.168.43.3:7077 \
--executor-memory 1g \
--total-executor-cores 2 \
$SPARK_HOME/examples/jars/spark-examples_2.12-3.3.4.jar \
100

输出pi值即部署成功!
浙公网安备 33010602011771号