【问题标题】:Java Client Refusing to connect to Remote ServerJava 客户端拒绝连接到远程服务器
【发布时间】:2013-10-09 03:30:15
【问题描述】:

我对 Hbase 非常陌生,它与 RDBMS 完全不同。我开发了一个简单的应用程序并尝试将其配置到远程服务器 162.18.17.55。我收到拒绝连接错误。我无法转发以检查哪里出错了,当我在 Putty 中键入 zk_dump 时,我得到了相应的服务器详细信息,我可以登录到 putty 和表到数据库中,但是当我使用 java 客户端时我无法连接到服务器。请任何人指导我这个过程和问题

【问题讨论】:

  • 你能发布你的 core-site.xml 吗? HadoopMaster 可能设置在某个地方......你的主机文件中有它吗?您的客户端应用程序不知道 zookeeper 传输的主机信息
  • 我的 core-site.xml 文件 hadoop.tmp.dir/app/hadoop/tmpfs.default.namehdfs://HadoopMaster:54310

标签: java hadoop hbase apache-zookeeper


【解决方案1】:

当您连接到Zookeeper 时,它会返回HadoopMaster 作为主机而不是IP 地址,因为您将HadoopMaster 放在core-site.xml 文件中。现在您需要在您的/etc/hosts 文件中添加HadoopMaster 才能识别主机地址。将此行添加到您的主机文件中

162.18.17.55      HadoopMaster

【讨论】:

  • 在 etc/hosts 我有 162.18.17.55 HadoopMaster 和 162.18.17.56 HadoopNode
  • 在我的 etc/hosts 我有这些配置列表 '#127.0.0.1 localhost #127.0.1.1 HadoopMaster # 以下行对于支持 IPv6 的主机来说是可取的 ::1 ip6-localhost ip6-loopback fe00: :0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters # /etc/hosts (用于主从) 162.18.17.55 HadoopMaster 162.18.17.56 hadoopnode **'跨度>
  • 这个值“127.0.1.1 HadoopMaster”已经在您的主机文件中以“#”符号开头?
  • hadoop 和 IPv6 也存在一些已知问题,您可以考虑通过在 conf/hadoop-env.sh 中添加以下行来为 hadoop 禁用 IPv6:exportHADOOP_OPTS=Djava.net.preferIPv4Stack=true跨度>