Spark集群模式搭建之Yarn模式

配置第一台服务器bigdata01

我的spark压缩包在/opt/modules 将spark解压到/opt/installs

python 复制代码
cd /opt/modules/
tar -zxf spark-3.1.2-bin-hadoop3.2.tgz -C /opt/installs

将解压后的文件重命名,并对设置一个软连接。

python 复制代码
cd /opt/installs
mv spark-3.1.2-bin-hadoop3.2 spark-yarn
rm -rf /opt/installs/spark
ln -s /opt/installs/spark-yarn /opt/installs/spark

修改spark-env.sh配置文件

python 复制代码
cd /opt/installs/spark/conf
mv spark-env.sh.template spark-env.sh
vim /opt/installs/spark/conf/spark-env.sh
## 22行左右设置JAVA安装目录、HADOOP和YARN配置文件
目录
export JAVA_HOME=/opt/installs/jdk
export HADOOP_CONF_DIR=/opt/installs/hadoop/etc/hadoop
export YARN_CONF_DIR=/opt/installs/hadoop/etc/hadoop
## 历史日志服务器
export SPARK_DAEMON_MEMORY=1g
export SPARK_HISTORY_OPTS="-Dspark.history.fs.logDirectory=hdfs://bigdata01:9820/spark/eventLogs/ -Dspark.history.fs.cleaner.enabled=true"

修改spark-defaults.conf 文件:

python 复制代码
cd /opt/installs/spark/conf
mv spark-defaults.conf.template spark-defaults.conf

vim spark-defaults.conf
## 添加内容:
spark.eventLog.enabled           true
spark.eventLog.dir           hdfs://bigdata01:9820/spark/eventLogs
spark.eventLog.compress           true
spark.yarn.historyServer.address bigdata01:18080
spark.yarn.jars           hdfs://bigdata01:9820/spark/jars/*

修改log4j.properties

python 复制代码
mv log4j.properties.template log4j.properties

修改级别为WARN,打印日志少一点。

上传spark jar包:

要启动hdfs

#因为YARN中运行Spark,需要用到Spark的一些类和方法

#如果不上传到HDFS,每次运行YARN都要上传一次,比较慢

#所以自己手动上传一次,以后每次YARN直接读取即可

python 复制代码
hdfs dfs -mkdir -p /spark/jars/
hdfs dfs -put /opt/installs/spark/jars/* /spark/jars/

修改yarn-site.xml

python 复制代码
cd /opt/installs/hadoop/etc/hadoop
python 复制代码
检查以下内置少什么,就配什么。
<property>
  <name>yarn.log-aggregation-enable</name>
  <value>true</value>
</property>

<!-- 历史日志在HDFS保存的时间,单位是秒 -->
<!-- 默认的是-1,表示永久保存 -->
<property>
  <name>yarn.log-aggregation.retain-seconds</name>
  <value>604800</value>
</property>

<property>
  <name>yarn.log.server.url</name>
  <value>http://bigdata01:19888/jobhistory/logs</value>
</property>

<!-- 关闭yarn内存检查 -->
<property>
  <name>yarn.nodemanager.pmem-check-enabled</name>
  <value>false</value>
</property>
<property>
  <name>yarn.nodemanager.vmem-check-enabled</name>
  <value>false</value>
</property>

分发yarn-site.xml

xsync.sh 是分发文件脚本 详细可以看实用-集群分发文件脚本-CSDN博客

python 复制代码
xsync.sh yarn-site.xml

分发spark-yarn

python 复制代码
xsync.sh /opt/installs/spark-yarn

超链接也分发一下:
xsync.sh /opt/installs/spark

启动

python 复制代码
# 启动yarn
start-yarn.sh
# 启动MR的JobHistoryServer:19888
mapred --daemon start historyserver
# 启动Spark的HistoryServer:18080
/opt/installs/spark/sbin/start-history-server.sh

测试

测试官方给的PI值的计算:

python 复制代码
/opt/installs/spark/bin/spark-submit --master yarn /opt/installs/spark/examples/src/main/python/pi.py 10

假如你遇到这个输出,说明资源有限,可以等一等

相关推荐
BUTCHER510 小时前
Kafka多网卡环境配置
分布式·kafka
TDengine (老段)10 小时前
连接 TDengine 遇到报错 “failed to connect to server, reason: Connection refused” 怎么办?
大数据·数据库·物联网·时序数据库·iot·tdengine·涛思数据
攻城狮7号10 小时前
AI+大数据时代:如何从架构到生态重构时序数据库的价值?
大数据·人工智能·时序数据库·apache iotdb·sql大模型
TDengine (老段)11 小时前
内网搭建邮件服务,打通 TDengine IDMP 通知途径
大数据·时序数据库·tdengine
鸿蒙小白龙11 小时前
openharmony之分布式蓝牙实现多功能场景设备协同实战
分布式·harmonyos·鸿蒙·鸿蒙系统·open harmony
AI数据皮皮侠11 小时前
中国博物馆数据
大数据·人工智能·python·深度学习·机器学习
JAVA学习通12 小时前
SpringOJ竞赛项目----组件ElasticSearch
大数据·elasticsearch·搜索引擎
武子康12 小时前
大数据-129 - Flink CEP详解:实时流式复杂事件处理(Complex Event Processing)全解析
大数据·后端·flink
鸿蒙小白龙12 小时前
openharmony之分布式购物车开发实战
分布式·harmonyos·鸿蒙·鸿蒙系统·open harmony
小蜗牛编程实录12 小时前
一文搞懂分布式事务:从理论到实践方案
分布式·后端