1、配置Yarn的历史服务器和关闭资源整合
修改:
vi /usr/local/hadoop-3.1.0/etc/hadoop/yarn-site.xml
<!--开启日志聚合功能-->
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<!--设置聚合日志在hdfs上的保存时间-->
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<va1ue>604800</va1ue>
</property>
<!--设置yarn历史服务器地址-->
<property>
<name>yarn.log.server.url</name>
<value>http://hadoop01: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
分发
cd /usr/local/hadoop-3.1.0/etc/hadoop
scp -r yarn-site.xml root@hadoop02:$PWD
scp -r yarn-site.xml root@hadoop03:$PWD
重启Yarn
/usr/local/hadoop-3.1.0/sbin/stop-yarn.sh
/usr/local/hadoop-3.1.0/sbin/stop-yarn.sh
2、配置Spark的历史服务器和Yarn的整合
进入spark/conf 文件夹中
cd /usr/local/spark-3.3.3-bin-hadoop3/conf
修改spark-defaults.conf.template 文件
vim spark-defaults.conf.template
根据视频教程添加配置,结合自身已配置好的集群,修改成如下配置:
spark.eventLog.enabled true
spark.eventLog.dir hdfs://hadoop01:9000/sparklog/
spark.yarn.historyServer.address=hadoop01:18080
spark.history.ui.port=18080
注意此数的hdfs://hadoop01:9000/sparklog/,端口号要改为与/usr/local/hadoop-3.1.0/etc/hadoop中core-site文件的namenode端口号一致如下:
修改spark-env.sh 文件 注:此处应为spark-env.sh.template临时文件可以在/conf目录下通过指令
cp ./spark-env.sh.template ./spark-env.sh
来修改文件名为:spark-env.sh 来方便操作并且可以备份文件
vim spark-env.sh
在文件末尾增加
export export SPARK_DIST_CLASSPATH=$(${HADOOP_HOME}/bin/hadoop classpath)
export JAVA_HOME=$JAVA_HOME
export HADOOP_HOME=$HADOOP_HOME
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
YARN_CONF_DIR=$HADOOP_HOME/ect/hadoop
SPARK_MASTER_HOST=hadoop01
##配置HDFs和Yarn配置文件路径--前面已经配置过了HADOOP_CONF_DIR=/usr/local/hadoop-3.1.0/etc/hadoop
YARN_CONF_DIR=/usr/local/hadoop-3.1.0/etc/hadoop
##配置spark历史日志存储地址
SPARK_HISTORY_OPTS="-Dspark.history.fs.logDirectory=hdfs://hadoop01:8020/sparklog/ -Dspark.history.fs.cleaner.enabled=true"
此时需要创建一个新文件
注意:sparklog需要手动创建
hadoop fs -mkdir -p /sparklog
此时出现问题:
mkdir: Call From hadoop01/192.168.0.127 to hadoop01:9000 failed on connection exception: java.net.ConnectException: Connection refused; For more details see: http://wiki.apache.org/hadoop/ConnectionRefused
因为根据视频教程一步步来但是在此之前自己已经配置好环境的情况下有很多设置与视频教程中不同,所以需要找出问题所在直至能够成功创建好sparklog文件夹。
首先排除代码和目录出现的错误,因为按照视频教程我检测了很多遍,所处目录和代码都一致,通过观察报错hadoop的端口号和配置中的端口号不一致,因为不懂基本原理打算先将上述:
hdfs://hadoop01:8020/sparklog/ 改为 hdfs://hadoop01:9000/sparklog/
更改完成后重新输入创建文件代码任然不能成功,尝试失败就得查找原理,按照原理来找出原因此段话的意思时节点拒绝访问,所以可能是为启动Hadoop通过指令:
start-all.sh
启动Hadoop集群,再次输入
hadoop fs -mkdir -p /sparklog
发现没有报错通过:
hdfs dfs -ls /
查看是否创建文件成功显示如下表明创建成功,时间可能与创建时间不对不上可能是其他国家的时间,但是并不影响
查看是否创建成功
修改日志级别
vim log4j2.properties
修改
rootLogger.level =WARN,info
rootLogger.appenderRef.stdout.ref console
分发,可选如果只在Hadoop01上提交spark任务,那么不需要分发
scp -r spark-defaults.conf.template root@hadoop02:$PWD
scp -r spark-defaults.conf.template root@hadoop03:$PWD
scp -r spark-env.sh root@hadoop02:$PWD
scp -r spark-env.sh root@hadoop03:$PWD
scp -r log4j2.properties root@hadoop02:$PWD
scp -r log4j2.properties root@hadoop03:$PWD
配置依赖的Spark的jar包
|
在hadoop web ui界面中可以看到如下:
启动服务
启动HDFS和YARN服务,在hadoop01执行命令
start-dfs.sh
start-yarn.sh
或
start-all.sh
启动MRHistoryServer服务,在hadoop01执行命令
mr-jobhistory-daemon.sh start historyserver(提出警告但是可以正常启动)
mapred --daemon start historyserver(二选一都可用)
启动Spark HistoryServer服务,,在hadoop01执行命令
/usr/local/spark-3.3.3-bin-hadoop3/sbin/start-history-server.sh
输入jps查看启动目录如下启动成功:
查看
MRHistoryServer服务VEB UI页面:
Spark HistoryServer服务WEB UIT页面:
成功显示表示创建成功!!!!!!