hbase集群为什么要返给客户端域名, 而不直接返回IP?

现配置有三个节点的hbase集群.
hosts文件中配置:

10.3.0.173      node1
10.3.0.172      node2
10.3.0.174      node3

一开始java客户端查询数据报错:
Caused by: java.net.UnknownHostException: can not resolve node1,60020,1543906659360,
原因是客户端所在机器(本地win10)没有配置hosts文件.
将上述hosts映射增加到客户端机器里, 然后可以正常访问, 查询数据.

问题:
这样显得有点麻烦, 还要在客户端所在机器配置对应的hosts映射.
从报错信息可以看出, 大致流程:

1. 客户端(java)访问集群时, 拿着ip: 10.3.0.173 访问到对应的节点 node1 -->
2. 然后集群返回给java客户端的是域名 node1 -->
3. 查询数据时, 客户端根据 node1 访问集群
   但是由于本地没有配置hosts映射, 导致找不到集群, 报异常.

我的困惑是: 为什么集群要返给客户端域名, 而不直接返回IP, 这样客户端无需配置hosts映射了, 只用根据IP访问即可??

阅读 4.2k
2 个回答

问得好, 为什么你访问网页不直接用 ip 而是域名?

这是因为你的局域网没有部署DNS基础设施才会这么说。Hadoop设计都是为了大型集群环境设计的。

你会发现大型集群基本都用域名访问,而且鼓励和推荐使用域名的。认为大型集群环境应该有DNS这个基础设施,不应该直接ip直连。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题