今天在单位搭建SPARK ON YARN时,发现 yarn里的history不好用。于是开始搭建。这里记录一下遇到的一些问题。
首先,如果你的yarn-site.xml 里面用的是主机名配置。一定要在本地。WINDOWS下的host把你的主机名配上。因为这个原因,浪费了好多时间。
二、如果想用spark on yarn模式,并且要查看history的话,一定要在yarn-site.xml里配置如下:
<!-- 开启日志聚合 -->
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<!-- 日志聚合HDFS目录 -->
<property>
<name>yarn.nodemanager.remote-app-log-dir</name>
<value>/data/hadoop/yarn-logs</value>
</property>
<!-- 日志保存时间3days,单位秒 -->
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>259200</value>
</property>
<property>
<name>yarn.log.server.url</name>
<value>http://node02:19888/jobhistory/logs</value>
</property>
这些一定要加上。还有yarn-site.xml要把全部节点都要添加上。这个很重要。
还有mapred-site.xml里面要加上如下:
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
<description>指定mr框架为yarn方式 </description>
</property>
<!-- 历史日志服务jobhistory相关配置 -->
<property>
<name>mapreduce.jobhistory.address</name>
<value>node02:10020</value>
<description>历史服务器端口号</description>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>node02:19888</value>
<description>历史服务器的WEB UI端口号</description>
</property>
<property>
<name>mapreduce.jobhistory.joblist.cache.size</name>
<value>2000</value>
<description>内存中缓存的historyfile文件信息(主要是job对应的文件目录)</description>
</property>
</configuration>
然后要在spark-default.conf里加上
spark.yarn.historyServer.address=ip:18080
spark.yarn.historyServer.allowTracking=true
spark.eventLog.dir=hdfs://ip:9000/spark/eventlogs
spark.eventLog.enabled=true
spark.history.fs.logDirectory=hdfs://ip:9000/spark/eventlogs
在后面就是启动sparkHistory的服务了。
${SPARK_HOME}/sbin/start-history-server.sh
以下是在网上参考的文章
spark on yarn 模式开启historyserver(转载)