为了账号安全,请及时绑定邮箱和手机立即绑定

高可用集群获取活跃NameNode的信息

标签:
大数据

今天在工作中同事问我在高可用集群下如何获取活跃的NameNode的信息。当时有点懵,一时间不知道咋获取。
然后度娘了一下,最后找到了办法。

首先先说一下啥事高可用
HA的意思是High Availability高可用,指当当前工作中的机器宕机后,会自动处理这个异常,并将工作无缝地转移到其他备用机器上去,以来保证服务的高可用。
HA方式安装部署才是最常见的生产环境上的安装部署方式。Hadoop HA是Hadoop 2.x中新添加的特性,包括NameNode HA 和 ResourceManager HA。因为DataNode和NodeManager本身就是被设计为高可用的,所以不用对他们进行特殊的高可用处理。

也就是说,活跃NameNode的ip不固定,一开始我也是开在这里不知道如何下手,毕竟不是自己搭建的环境拿来玩的,一般情况下你都接触不到配置文件,所以怎么获取活跃的NameNode IP,同事一开始是通过便利所有的NameNode 虽然实现了,但是这个也是别人提供了可能IP的结果,所以也不是最优的

下面是我通过查找资料get到的方法,是目前为止我找到的最优方法,在此记录一下


webp

image.png

import org.apache.hadoop.fs.FileSystem
import org.apache.hadoop.hdfs.HAUtil
def getActiveNameNode() = {
val conf = new Configuration()
var fileSystem: FileSystem = null
fileSystem = FileSystem.get(conf)
try {
val active: InetSocketAddress = HAUtil.getAddressOfActive(fileSystem)
val address: InetAddress = active.getAddress
val ip: String = address.getHostAddress
val port: Int = active.getPort
s"hdfs://" + ip + ":" + port
} catch {
case e: Exception => e.printStackTrace()
} finally {
null
}
}

留码必留包



作者:利伊奥克儿
链接:https://www.jianshu.com/p/4fd422c4f10d


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

举报

0/150
提交
取消