timeline
timeline服务简介
我们在前面配置完成了mr-jobhistoryserver服务,从名字也可以看出来,这个服务只能够保存MapReduce任务的日志信息。但是YARN是一个通用的资源调度框架,运行在YARN上的任务不仅仅是MapReduce的任务,还有Spark的任务、Flink的任务等。假如有一天我在YARN上运行了一个Spark的任务,那么此时mr-jobhistoryserver将不会为我保存日志信息。当然Spark会有自己的服务来保存历史日志。但是如果每一种作业我们都需要考虑单独的历史服务是不是比较麻烦呢?于是timeline就出现了。
YARN中有一个Timeline Server的组件,我们通常称为时间轴服务,可以以通用的方式存储程序的运行日志信息。无论是MapReduce的任务,还是Spark的任务,或者是Flink的任务等等,都可以将日志保存下来。mr-jobhistoryserver只是实现了时间轴服务的一部分功能。
目前位置,Timeline Server有V1、V1.5、V2三种版本,其中V2的版本正在测试中,功能尚不完善,且后端依赖HBase。所以目前我们以V1.5的版本为例。
配置文件
只需要配置yarn-site.xml即可
<!-- 是否需要开启Timeline服务 -->
<property>
<name>yarn.timeline-service.enabled</name>
<value>true</value>
</property>
<!-- Timeline Web服务的主机,通过8188端口访问 -->
<property>
<name>yarn.timeline-service.hostname</name>
<!--需要配置主机的hosts-->
<value>qianfeng01</value>
</property>
<!-- 设置ResourceManager是否发送指标信息到Timeline服务 -->
<property>
<name>yarn.system-metrics-publisher.enabled</name>
<value>true</value>
</property>
分发并启动服务
[root@qianfeng01 ~]# cd $HADOOP_HOME/etc/hadoop
[root@qianfeng01 hadoop]# scp yarn-site.xml qianfeng02:$PWD
[root@qianfeng01 hadoop]# scp yarn-site.xml qianfeng03:$PWD
# 因为修改了yarn-site.xml的内容,因此需要重启YARN
[root@qianfeng01 ~]# stop-yarn.sh
[root@qianfeng01 ~]# start-yarn.sh
# 开启Timeline服务
[root@qianfeng01 ~]# yarn --daemon start timelineserver
执行任务
[root@qianfeng01 ~]# hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.1.jar wordcount /input /output
此时,可以到TimelineServer的WebUI上查看任务的状态和历史服务 http://192.168.10.101:8188
需要注意:启动timeline之后需要将所有节点的historyserver都启动才会到达最好效果