前提
配置好了hadoop集群,均有python环境
python环境的配置和spark软件的下载
spark-本地模式的配置和简单使用-CSDN博客
环境配置
1、上传,解压,重命名
tar -zxvf /opt/install/spark-3.1.2-bin-hadoop3.2.tgz -C /opt/modules
mv spark-3.1.2-bin-hadoop3.2/ spark-yarn
2、删除之前本地模式下的软连接
rm -rf spark
3、建立yarn模式下的软连接
ln -s spark-yarn spark
4、配置环境变量
export SPARK_HOME=/opt/installs/spark
export PATH=$PATH:$SPARK_HOME/bin
5、刷新
source /etc/profile
6、上传spark jar包:
hdfs dfs -mkdir -p /spark/jars/
hdfs dfs -put /opt/installs/spark/jars/* /spark/jars/
7、创建目录 必须创建 否则不能运行程序
hdfs dfs -mkdir /spark/eventLogs
修改配置文件
spark-env.sh
mv spark-env.sh.template spark-env.sh
# 设置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
mv spark-defaults.conf.template 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
mv log4j.properties.template log4j.properties
# 修改级别为WARN,打印日志少一点。
yarn-site.xml————hadoop中
"""
正常来说spark的配置是不含yarn的,
因为spark在yarn的基础上运行,
不是yarn依赖spark
看看
"""
# 检查以下内置少什么,就配什么。
<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>
分发文件
将spark,和修改过的yarn-site.xml,还有创建的软链接分发一下
启动
启动hadoop集群
start-all.sh
启动日志服务
# 启动MR的JobHistoryServer:19888
mapred --daemon start historyserver
# 启动Spark的HistoryServer:18080
/opt/installs/spark/sbin/start-history-server.sh
使用一下
/opt/installs/spark/bin/spark-submit --master yarn /opt/installs/spark/examples/src/main/python/pi.py 100