当前位置:首页 > 行业动态 > 正文

hadoop开启历史服务器

启动Hadoop历史服务器需先确保HDFS和YARN服务运行,执行 start-yarn.sh启动YARN,再运行 mr-jobhistory-daemon.sh start historyserver

在Hadoop集群中,历史服务器(JobHistory Server)用于存储和管理MapReduce作业的执行历史记录,开启历史服务器可以帮助用户查询已完成作业的详细信息,包括任务执行时间、状态、资源消耗等,以下是开启Hadoop历史服务器的详细步骤及相关配置说明:


前提条件

  1. Hadoop集群已部署:确保Hadoop的核心组件(NameNode、DataNode、ResourceManager、NodeManager)已正常运行。
  2. YARN服务已启动:历史服务器依赖YARN的ResourceManager,需确保YARN服务已正确配置并启动。
  3. 权限配置:历史服务器通常以hdfsyarn用户运行,需确保相关用户有权限访问HDFS和YARN。

配置历史服务器

修改配置文件

历史服务器的配置主要通过mapred-site.xml完成,需添加或修改以下参数:

参数 默认值 说明
mapreduce.jobhistory.address 0.0.0:10020 历史服务器的RPC通信地址(可自定义端口)。
mapreduce.jobhistory.webapp.address 0.0.0:19888 历史服务器的Web UI地址(建议与RPC地址一致)。
mapreduce.jobhistory.done-dir /tmp/completed_mapreduce_jobs 存储已完成作业历史的HDFS目录。
mapreduce.jobhistory.retain.hours 72 保留历史记录的时间(小时)。

示例配置片段

<configuration>
    <property>
        <name>mapreduce.jobhistory.address</name>
        <value>historyserver:10020</value>
    </property>
    <property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>historyserver:19888</value>
    </property>
    <property>
        <name>mapreduce.jobhistory.done-dir</name>
        <value>/user/hadoop/history/done</value>
    </property>
</configuration>

配置环境变量

确保HADOOP_CONF_DIR环境变量指向正确的配置文件路径,

export HADOOP_CONF_DIR=/etc/hadoop/conf

启动历史服务器

手动启动

在历史服务器所在的节点上,执行以下命令:

$ HADOOP_HOME/sbin/mr-jobhistory-daemon.sh start historyserver
  • 参数说明
    • start:启动服务。
    • historyserver:指定角色为历史服务器。

自动启动(推荐)

将历史服务器添加到yarn-env.shhadoop-env.sh中,使其随YARN一起启动:

export YARN_JOBHISTORY_HEAPSIZE=1024 # 设置JVM堆内存(根据需求调整)

验证历史服务器状态

  1. 查看进程

    jps | grep JobHistory

    输出应包含JobHistoryServer进程。

  2. 访问Web UI
    打开浏览器访问http://<historyserver>:19888/,可查看已完成作业的列表及详情。

  3. 检查日志
    日志文件位于$HADOOP_LOG_DIR/userlogs/,文件名通常为jobhistory-.log


常见问题及解决

端口冲突

  • 现象:启动时提示端口已被占用。
  • 解决:修改mapred-site.xml中的mapreduce.jobhistory.addressmapreduce.jobhistory.webapp.address,更换为未被占用的端口。

无法访问Web UI

  • 现象:浏览器访问http://<historyserver>:19888/失败。
  • 解决
    • 检查防火墙是否开放对应端口。
    • 确认mapreduce.jobhistory.webapp.address配置正确。
    • 查看日志中是否有异常报错。

FAQs

Q1:如何更改历史服务器的Web UI端口?

A1:修改mapred-site.xml中的mapreduce.jobhistory.webapp.address参数,

<property>
    <name>mapreduce.jobhistory.webapp.address</name>
    <value>historyserver:20020</value>
</property>

重启历史服务器后,Web UI将监听新端口。

Q2:历史服务器的作业记录保留时间如何调整?

A2:通过修改mapreduce.jobhistory.retain.hours参数,

<property>
    <name>mapreduce.jobhistory.retain.hours</name>
    <value>168</value> <!-保留7天 -->
</property>

重启历史服务器后,过期的作业记录将被自动清理。


通过以上步骤,您可以成功开启并配置Hadoop历史服务器,实现对MapReduce作业历史的

0