Spark on Yarn环境配置以及Hadoop HA配置中的问题
记录配置Spark on Yarn环境的过程,以及之前Hadoop HA部署存在的问题
上接:https://www.woolym.com/develop/hadoop/689.html
Spark on Yarn环境搭建
我使用的的是
- spark-3.1.3-bin-without-hadoop
- Python-3.7.11(pyspark 使用)
Python环境建立使用 MakeFile 编译后做一下软链接,pyspark 运行需要 PATH 中有 python3
环境变量
我把 SPARK_HOME 和 PYTHONPATH 配置到环境变量中了
这里设置 PYTHONPATH 是为了在 BASH 中使用 pyspark import pyspark
建议在profile.d中新建.sh设置
1 | export SPARK_HOME=/usr/local/spark-3.1.3-bin-without-hadoop |
Spark配置文件修改
spark-env.sh
1 | export JAVA_HOME=/usr/java/default |
spark-defaults.conf
1 | 这里是在配置spark的historyserver |
配置 VSCode
官网 rpm安装
Shell中输入 code 启动
1 | 配置代码提醒 |
Hadoop HA部署存在的问题
这里把我恶心坏了,真的恶心坏了
一开始是我尝试运行部署好的 Spark 的 demo,算 π 那个
提交以后在 ResourceManager 的 Web界面 显示Failed
后来又跑了下 wordcount Demo
1 | hadoop jar /usr/local/hadoop-3.2.3/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.2.3.jar wordcount input output |
一下子我就蚌埠住了,虽然 ResourceManager 那边显示 SUCCEEDED,但是 JobHistory 服务器不显示记录
遂知可能之前配置 Hadoop HA 的时候就存在问题
想查看 logs 查明原因,结果这里配置的也有问题,Web 界面打不开 logs,只好在 Shell 里面用
1 | yarn logs -applicationId <application-id> |
或者直接将 logs 文件下载下来查看 (默认在/tmp/logs/{userid}/logs-tfile)
然后我发现了几个问题
提示找不到或无法加载主类 org.apache.hadoop.mapreduce.v2.app.MRAppMaster
输出一下hadoop classpath
将其添加至 mapred-site.xml、yarn-site.xml 中的 yarn.application.classpath 属性中
提示ERROR [main] org.apache.hadoop.mapreduce.v2.app.client.MRClientService: Webapps failed to start. Ignoring for now: java.lang.NullPointerException
原因是 yarn-site.xml 中,在配置了 HA 的情况下
yarn.resourcemanager.webapp.address 属性配置方式不同
1 | <property> |
配置 spark history-server
在上面的配置文件中我已经写过了,同样是使用前启动进程
1 | SPARK_HOME/sbin/start-history-server.sh |
这个服务器的作用就是在任务结束后仍然能查看任务相关信息
我是因为无法在 RM 的 Web端打开任务(包括MapReduce任务)的 logs,所以才误打误撞启动了这个…
logs 无法查看的原因
这位更是重量级…
yarn-site.xml
1 | <property> |
是因为之前的配置的时候没有加 http://