关闭

HBase中由Reverse DNS引起的问题

标签: hbaserDNS
845人阅读 评论(0) 收藏 举报
分类:

参考: HowTo Test or Check Reverse DNS on a Linux / Unix

使用HBase时的Reverse DNS相关问题


当我们把HBase的Table作为MapReduce或者Spark的输入数据源时,容易碰到如下的问题:

15/07/06 17:03:31 WARN TableInputFormatBase: Cannot resolve the host name for ecs1.njzd.com/10.163.104.81 because of javax.naming.NameNotFoundException: DNS name not found [response code 3]; remaining name ‘81.104.163.10.in-addr.arpa’

15/07/06 17:03:31 INFO RegionSizeCalculator: Calculating region sizes for table “sentiments:salted”.

15/07/06 17:03:33 WARN TableInputFormatBase: Cannot resolve the host name for ecs2.njzd.com/10.163.105.115 because of javax.naming.NameNotFoundException: DNS name not found [response code 3]; remaining name ‘115.105.163.10.in-addr.arpa’


以上问题的实质,就是集群中的Reverse DNS不能正常工作。所以,我们要保证集群中的每一个rDNS都能正常工作



验证Reverse DNS是否正常


首先来验证,Reverse DNS是否确实不能正常工作。这里正常工作的定义是:集群中的每一个节点的Reverse DNS都要能正常工作,即能根据任意一个节点的IP查询它对应的hostname。


验证命令

host IP



例如,要验证某个节点的rDNS是否正常工作,我们只需要准备好一个该节点应该知道hostname的IP(假定是10.163.105.115),并在该节点上运行以下命令:

host 10.163.105.115



如果返回的是类似于如下的结果(即给出了该IP对应的hostname):

115.105.163.10.in-addr.arpa domain name pointer ecs2.njzd.com.

则说明该节点的rDNS是正常工作的。




配置rDNS


最简单的方法就是利用/etc/hosts中IP与hostname的关系。


#1、禁用DNS Server
编辑etc/resolv.conf,把所有的DNS项(即形如 nameserver <ip>的行)都注释掉


#2、完善/etc/hosts文件
将该文件中的所有ip与hostname的项都写正确


#3、调用命令dnsmasq
如果没有该命令,则先用yum install dnsmasq安装,然后运行命令dnsmasq


在集群中的每一个节点都用上述方法来保证每个节点的rDNS都是正常的。


现在,以HBase table为数据源运行MR job或Spark job,应该不会再报上述的Cannot resolve the host name for xxx/yyy because of javax.naming.NameNotFoundException: DNS name not found这样的异常了

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:64562次
    • 积分:1190
    • 等级:
    • 排名:千里之外
    • 原创:23篇
    • 转载:1篇
    • 译文:17篇
    • 评论:11条
    最新评论