如何使用Java库(org.apache.hadoop.Hbase.client)从不同的网络连接Hbase?
我有一个使用内部网络的Hadoop集群(ip范围是192.168.0.0/24),我想使用java库(org.apache.Hadoop.hbase.client)连接hbase 从Windows 7上使用不同网络的开发计算机(ip超出网络203.252.x.x),但我无法连接hbase 我有个问题如何使用Java库(org.apache.hadoop.Hbase.client)从不同的网络连接Hbase?,java,apache,hadoop,networking,hbase,Java,Apache,Hadoop,Networking,Hbase,我有一个使用内部网络的Hadoop集群(ip范围是192.168.0.0/24),我想使用java库(org.apache.Hadoop.hbase.client)连接hbase 从Windows 7上使用不同网络的开发计算机(ip超出网络203.252.x.x),但我无法连接hbase 我有个问题 我的代码错了吗 可以使用Java库(org.apache.hadoop.hbase.client)吗?我应该使用thrift协议吗?(我不想节俭) 你知道吗?还是评论 多谢各位 这是我连接Hbase
这就是Eclipse中的错误代码
log4j:WARN No appenders could be found for logger (org.apache.hadoop.metrics2.lib.MutableMetricsFactory).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
Exception in thread "main" org.apache.hadoop.hbase.MasterNotRunningException: com.google.protobuf.ServiceException: java.net.UnknownHostException: unknown host: datanode2
at org.apache.hadoop.hbase.client.ConnectionManager$HConnectionImplementation$StubMaker.makeStub(ConnectionManager.java:1661)
at enter code hereorg.apache.hadoop.hbase.client.ConnectionManager$HConnectionImplementation$MasterServiceStubMaker.makeStub(ConnectionManager.java:1687)
at org.apache.hadoop.hbase.client.ConnectionManager$HConnectionImplementation.getKeepAliveMasterService(ConnectionManager.java:1904)
at org.apache.hadoop.hbase.client.ConnectionManager$HConnectionImplementation.isMasterRunning(ConnectionManager.java:932)
at enter code hereorg.apache.hadoop.hbase.client.HBaseAdmin.checkHBaseAvailable(HBaseAdmin.java:2409)
at TestBase.main(TestBase.java:28)
Caused by: com.google.protobuf.ServiceException: java.net.UnknownHostException: unknown host: datanode2
at org.apache.hadoop.hbase.ipc.RpcClient.callBlockingMethod(RpcClient.java:1739)
at org.apache.hadoop.hbase.ipc.RpcClient$BlockingRpcChannelImplementation.callBlockingMethod(RpcClient.java:1777)
at org.apache.hadoop.hbase.protobuf.generated.MasterProtos$MasterService$BlockingStub.isMasterRunning(MasterProtos.java:42561)
at org.apache.hadoop.hbase.client.ConnectionManager$HConnectionImplementation$MasterServiceStubMaker.isMasterRunning(ConnectionManager.java:1698)
at org.apache.hadoop.hbase.client.ConnectionManager$HConnectionImplementation$StubMaker.makeStubNoRetries(ConnectionManager.java:1607)
at org.apache.hadoop.hbase.client.ConnectionManager$HConnectionImplementation$StubMaker.makeStub(ConnectionManager.java:1633)
... 5 more
Caused by: java.net.UnknownHostException: unknown host: datanode2
at org.apache.hadoop.hbase.ipc.RpcClient$Connection.<init>(RpcClient.java:501)
at org.apache.hadoop.hbase.ipc.RpcClient.createConnection(RpcClient.java:325)
at org.apache.hadoop.hbase.ipc.RpcClient.getConnection(RpcClient.java:1614)
at org.apache.hadoop.hbase.ipc.RpcClient.call(RpcClient.java:1494)
at org.apache.hadoop.hbase.ipc.RpcClient.callBlockingMethod(RpcClient.java:1724)
... 10 more
log4j:WARN找不到记录器(org.apache.hadoop.metrics2.lib.MutableMetricsFactory)的追加器。
log4j:警告请正确初始化log4j系统。
log4j:请参阅http://logging.apache.org/log4j/1.2/faq.html#noconfig 更多信息。
线程“main”org.apache.hadoop.hbase.MasterNotRunningException:com.google.protobuf.ServiceException:java.net.UnknownHosteException:unknown主机:datanode2中出现异常
位于org.apache.hadoop.hbase.client.ConnectionManager$HConnectionImplementation$StubMaker.makeStub(ConnectionManager.java:1661)
在此处输入代码org.apache.hadoop.hbase.client.ConnectionManager$HConnectionImplementation$MasterServiceStubMaker.makeStub(ConnectionManager.java:1687)
位于org.apache.hadoop.hbase.client.ConnectionManager$HConnectionImplementation.getKeepAliveMasterService(ConnectionManager.java:1904)
位于org.apache.hadoop.hbase.client.ConnectionManager$HConnectionImplementation.isMasterRunning(ConnectionManager.java:932)
在此处输入代码org.apache.hadoop.hbase.client.HBaseAdmin.checkHBaseAvailable(HBaseAdmin.java:2409)
位于TestBase.main(TestBase.java:28)
原因:com.google.protobuf.ServiceException:java.net.UnknownHosteException:unknown主机:datanode2
位于org.apache.hadoop.hbase.ipc.RpcClient.callBlockingMethod(RpcClient.java:1739)
位于org.apache.hadoop.hbase.ipc.RpcClient$BlockingRpcChannelImplementation.callBlockingMethod(RpcClient.java:1777)
位于org.apache.hadoop.hbase.protobuf.generated.MasterProtos$MasterService$BlockingStub.isMasterRunning(MasterProtos.java:42561)
位于org.apache.hadoop.hbase.client.ConnectionManager$HConnectionImplementation$MasterServiceStubMaker.isMasterRunning(ConnectionManager.java:1698)
位于org.apache.hadoop.hbase.client.ConnectionManager$HConnectionImplementation$StubMaker.makeStubNoRetries(ConnectionManager.java:1607)
位于org.apache.hadoop.hbase.client.ConnectionManager$HConnectionImplementation$StubMaker.makeStub(ConnectionManager.java:1633)
... 还有5个
原因:java.net.UnknownHostException:未知主机:datanode2
位于org.apache.hadoop.hbase.ipc.RpcClient$Connection.(RpcClient.java:501)
位于org.apache.hadoop.hbase.ipc.RpcClient.createConnection(RpcClient.java:325)
位于org.apache.hadoop.hbase.ipc.RpcClient.getConnection(RpcClient.java:1614)
位于org.apache.hadoop.hbase.ipc.RpcClient.call(RpcClient.java:1494)
位于org.apache.hadoop.hbase.ipc.RpcClient.callBlockingMethod(RpcClient.java:1724)
... 10多
您无法访问群集的节点。检查防火墙和网络设置。确保端口也已打开以进行连接。这是堆栈跟踪中的错误:
Exception in thread "main" org.apache.hadoop.hbase.MasterNotRunningException: com.google.protobuf.ServiceException: java.net.UnknownHostException: unknown host: datanode2
此外,您不需要在代码中指定HBase群集属性。将hbase-site.xml放在java的类路径中,只需实例化连接。hbase Master DNS名称映射到hbase.Master的ip地址可能有问题。确保您已经设置了DNS服务器,或者您可以尝试在我的GNU/Linux机器上找到类似的东西。例如配置“/etc/hostname”:在尝试连接到主节点的计算机上设置HBase主节点的名称)和“/etc/hosts” 希望你能在你的Windows机器上设置它 以下是GNU/Linux方式的有用链接:
Exception in thread "main" org.apache.hadoop.hbase.MasterNotRunningException: com.google.protobuf.ServiceException: java.net.UnknownHostException: unknown host: datanode2