Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java /被Hadoop忽略的etc/hosts_Java_Linux_Ubuntu_Hadoop_Dns - Fatal编程技术网

Java /被Hadoop忽略的etc/hosts

Java /被Hadoop忽略的etc/hosts,java,linux,ubuntu,hadoop,dns,Java,Linux,Ubuntu,Hadoop,Dns,我正在一台机器上为Hadoop设置namenodenode1.homer /etc/hosts的内容包括: nameserver 8.8.8.8 search localdomain 10.0.0.2节点1.homer节点1 和/etc/resolv.conf包含: nameserver 8.8.8.8 search localdomain /etc/nsswitch.conf还指定了主机:文件dns的顺序 Hadoop名称节点设置为hdfs://node1:9000 现在,当我运行

我正在一台机器上为Hadoop设置namenode
node1.homer

/etc/hosts
的内容包括:

 nameserver 8.8.8.8
 search localdomain
10.0.0.2节点1.homer节点1

/etc/resolv.conf
包含:

 nameserver 8.8.8.8
 search localdomain
/etc/nsswitch.conf
还指定了主机:文件dns的顺序

Hadoop名称节点设置为
hdfs://node1:9000

现在,当我运行hadoop namenode时,它会挂起大约5-10秒。使用
tcpdump
进行的进一步调查显示,Hadoop正试图通过
8.8.8
解析namenode,由于我的网络设置,解析速度非常慢

当我注释掉
名称服务器8.8.8.8
时,相同的命令在不到1秒的时间内运行,因为它似乎直接从
/etc/hosts
获取
节点1
的解析


那么,在Java中,或者至少在Hadoop中,名称解析总是首先解析DNS,并且只有在失败时才使用
/etc/hosts
?我一直在努力寻找类似的经历,但没有成功

您可以设置一个仅缓存本地绑定服务器,该服务器允许您在本地解析和缓存名称,但仍然能够在需要时获得其他DNS解析…使用此方法,您甚至可以设置一个本地
.hadoop
域,以便在开始向外扩展时所有节点都可用。事实上,我可以指向另一个响应更快的本地网关。我的问题是,在解析主机名时,Java是否会忽略/etc/hosts。我不是Java开发人员,但在weblogic和tomcat上都支持许多基于Java的应用程序,并且,除非您实际建立连接以获取记录,Java应将解析请求传递给本地系统,该系统应遵守系统的设置。您可以设置一个本地的仅缓存绑定服务器,该服务器允许您在本地解析和缓存名称,但在需要时仍然能够获取其他DNS解析…使用此方法,您甚至可以设置一个本地的
.hadoop
域,以便在开始向外扩展时所有节点都可用。事实上,我可以指向另一个响应更快的本地网关。我的问题是,在解析主机名时,Java是否会忽略/etc/hosts。我不是Java开发人员,但在weblogic和tomcat上都支持许多基于Java的应用程序,并且,除非您实际建立连接以获取记录,Java应该将解析请求传递给本地系统,本地系统应该遵守系统的设置。