博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HA模式下历史服务器配置
阅读量:6689 次
发布时间:2019-06-25

本文共 1441 字,大约阅读时间需要 4 分钟。

笔者的集群是 HA 模式的( HDFS 和 ResourceManager HA)。在  中详细讲解了关于 HA 模式的搭建,这里就不再赘述。但网上直接将关于 HA 模式下的历史服务器的配置资料却很少。

笔者在思考,如果配置在 mapred-site.xml 中就设置一台历史服务器,那么当这台机器挂了,那么能不能有另一台机器来承担历史服务器的责任,也就是笔者理想当然的 jobhistory server HA 模式。后面经过各自尝试,得出来的结论是笔者我太年轻了,概念没有搞懂,先总结如下:

  • 历史服务器是个独立的服务,其不会受到 namenode 和 resourcemanager 的 active/standby 切换所带来的影响
  • 当历史服务器突然失效了,那些日志文件依旧存在 HDFS 上。当历史服务器又恢复正常,还是能看到在历史服务器失效期间的运行日志
  • 可以很简单地把历史服务器当成是存在 HDFS 上日志文件的 Web 浏览器。当且仅当历史服务器启动后,才可以通过 Web 查看,比如 http://10.6.3.43:19888/jobhistory
  • 实际上,每台机器的 MapReduce 历史服务器的配置可以不同,当在哪台机器上执行程序时,那么所指向的历史服务器地址其实就是 mapred-site.xml 文件中 mapreduce.jobhistory.webapp.address 配置参数所指定的那台机器

所以 Hadoop HA 模式下的历史服务器配置和非 HA 模式是一样样的,如果你自作聪明(比如笔者),在 mapred-site.xml 文件中,添加了两个运行 namenode(resourcemanager) 进程的主备节点的主机名(或IP地址)。

但是真正在两台主机上同时启动历史服务器进程时,会报如下的类似错误:

INFO org.apache.hadoop.http.HttpServer2: HttpServer.start() threw a non Bind IOException 

77504 .BindException: Port in use: master52:19888 
Caused by: java.BindException: Cannot assign requested address 
INFO org.apache.hadoop.service.AbstractService: Service HistoryClientService failed in state STARTED; cause: org.apache.hadoop.yarn.webapp.WebAppException: Error starting http server 
INFO org.apache.hadoop.util.ExitUtil: Exiting with status -1

原因就是端口被占用了,很明显如果不改变端口,有且仅有一个 历史服务器成功启动,且启动的那个服务器是在 mapred-site.xml 文件中设置位置最下面的那个,及后面的配置参数将覆盖前一个配置参数。就算改变端口也没卵用…

Note:以上这些是笔者一边操作,一边对比总结,有些结论未必是正确的,还请各位指正…

  参考文献http://blog.csdn.net/u011414200/article/details/50338073

你可能感兴趣的文章
wine安装的软件如何卸载
查看>>
C语言中基本的数据类型 和常用表达式
查看>>
More Fileds的直接输出和获取自定义字段的方法
查看>>
12.1LNMP架构介绍12.2MySQL安装12.312.4 PHP安装12.5Nginx安装
查看>>
ubuntu下安装ROR
查看>>
工作流调度
查看>>
Nginx TCP代理和负载均衡
查看>>
理解原型对象
查看>>
Apache虚拟目录
查看>>
容器是实现操作系统虚拟化的一种途径
查看>>
电脑内部声音怎么录制 Mac在线录制音频
查看>>
个人对生活意义的观点
查看>>
Editplus的配置说明:Web服务器设置和用户工具栏设置
查看>>
JAVA RPC:从上手到爱不释手
查看>>
详细介绍Java中的堆、栈和常量池
查看>>
Go环境变量
查看>>
用Doxygen优化Inkpad的模块关系
查看>>
Delphi 数据类型列表
查看>>
eclipse 创建maven Web项目
查看>>
Angular之父子路由
查看>>