Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/352.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
Hadoop和hbase java客户端。。HbaseRPC的问题_Java_Hbase - Fatal编程技术网

Hadoop和hbase java客户端。。HbaseRPC的问题

Hadoop和hbase java客户端。。HbaseRPC的问题,java,hbase,Java,Hbase,我正在尝试将数据插入hbase。我正在远程计算机上运行java程序。我在下面提到了代码 try { Configuration conf = HBaseConfiguration.create(); conf.clear(); conf.set("hbase.zookeeper.quorum", "<HOST_IP>:2181"); conf.set("hbase.zookeeper.property.clientPort", "2181");

我正在尝试将数据插入hbase。我正在远程计算机上运行java程序。我在下面提到了代码

try {
    Configuration conf = HBaseConfiguration.create();
    conf.clear();
    conf.set("hbase.zookeeper.quorum", "<HOST_IP>:2181");
    conf.set("hbase.zookeeper.property.clientPort", "2181");
    conf.set("hbase.zookeeper.dns.nameserver", "<HOST_IP>");
    conf.set("hbase.regionserver.port","60020");
    conf.set("hbase.master", "<HOST_IP>:9000");
    HTable table = new HTable(conf, "test");
    Put put = new Put(Bytes.toBytes("row5"));
    put.add(Bytes.toBytes("colfam1"), Bytes.toBytes("qual1"),
    Bytes.toBytes("val1"));
    put.add(Bytes.toBytes("colfam1"), Bytes.toBytes("qual2"),
    Bytes.toBytes("val2"));
    table.put(put);
} catch (MasterNotRunningException e) { 
    e.printStackTrace(); 
} catch (ZooKeeperConnectionException e) { 
    e.printStackTrace(); 
} catch (TableNotFoundException e) { 
    e.printStackTrace(); 
} catch (IOException e) { 
    e.printStackTrace();
}
试试看{
Configuration=HBaseConfiguration.create();
conf.clear();
conf.set(“hbase.zookeeper.quorum”,“:2181”);
conf.set(“hbase.zookeeper.property.clientPort”,“2181”);
conf.set(“hbase.zookeeper.dns.nameserver”,”;
conf.set(“hbase.regionserver.port”,“60020”);
conf.set(“hbase.master”,“:9000”);
HTable table=新的HTable(conf,“test”);
Put Put=新的Put(字节数.toBytes(“第5行”);
put.add(Bytes.toBytes(“colfam1”)、Bytes.toBytes(“qual1”),
字节。toBytes(“val1”);
put.add(Bytes.toBytes(“colfam1”)、Bytes.toBytes(“qual2”),
字节。toBytes(“val2”);
表.put(put);
}catch(MasterNotRunningException e){
e、 printStackTrace();
}catch(zookeeperconnectione异常){
e、 printStackTrace();
}catch(TableNotFounde异常){
e、 printStackTrace();
}捕获(IOE){
e、 printStackTrace();
}
我得到以下错误

INFO ipc.HbaseRPC: Server at localhost/127.0.0.1:60020 could not be reached after 1 tries, giving up.
org.apache.hadoop.hbase.client.RetriesExhaustedException: Failed setting up proxy interface org.apache.hadoop.hbase.ipc.HRegionInterface to localhost/127.0.0.1:60020 after attempts=1
    at org.apache.hadoop.hbase.ipc.HBaseRPC.waitForProxy(HBaseRPC.java:355)
    at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.getHRegionConnection(HConnectionManager.java:1176)
    at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.getHRegionConnection(HConnectionManager.java:1195)
    at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.locateRegionInMeta(HConnectionManager.java:898)
    at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.locateRegion(HConnectionManager.java:797)
    at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.relocateRegion(HConnectionManager.java:772)
    at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.locateRegionInMeta(HConnectionManager.java:1002)
    at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.locateRegion(HConnectionManager.java:801)
    at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.locateRegion(HConnectionManager.java:766)
    at org.apache.hadoop.hbase.client.HTable.<init>(HTable.java:189)
    at org.apache.hadoop.hbase.client.HTable.<init>(HTable.java:163)
    at com.tcs.hbase.HbaseSample.insertData(HbaseSample.java:30)
    at com.tcs.hbase.HbaseSample.main(HbaseSample.java:82)
Caused by: java.net.ConnectException: Connection refused: no further information
    at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
    at sun.nio.ch.SocketChannelImpl.finishConnect(Unknown Source)
    at org.apache.hadoop.net.SocketIOWithTimeout.connect(SocketIOWithTimeout.java:206)
    at org.apache.hadoop.net.NetUtils.connect(NetUtils.java:406)
    at org.apache.hadoop.hbase.ipc.HBaseClient$Connection.setupIOstreams(HBaseClient.java:328)
    at org.apache.hadoop.hbase.ipc.HBaseClient.getConnection(HBaseClient.java:883)
    at org.apache.hadoop.hbase.ipc.HBaseClient.call(HBaseClient.java:750)
    at org.apache.hadoop.hbase.ipc.HBaseRPC$Invoker.invoke(HBaseRPC.java:257)
    at $Proxy4.getProtocolVersion(Unknown Source)
    at org.apache.hadoop.hbase.ipc.HBaseRPC.getProxy(HBaseRPC.java:419)
    at org.apache.hadoop.hbase.ipc.HBaseRPC.getProxy(HBaseRPC.java:393)
    at org.apache.hadoop.hbase.ipc.HBaseRPC.getProxy(HBaseRPC.java:444)
    at org.apache.hadoop.hbase.ipc.HBaseRPC.waitForProxy(HBaseRPC.java:349)
    ... 12 more
INFO ipc.HbaseRPC:localhost上的服务器/127.0.0.1:60020尝试1次后无法访问,放弃。
org.apache.hadoop.hbase.client.retrieseHaustedException:在尝试后将代理接口org.apache.hadoop.hbase.ipc.HRegionInterface设置为localhost/127.0.0.1:60020失败=1
位于org.apache.hadoop.hbase.ipc.HBaseRPC.waitForProxy(HBaseRPC.java:355)
位于org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.getHRegionConnection(HConnectionManager.java:1176)
位于org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.getHRegionConnection(HConnectionManager.java:1195)
位于org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.locateRegionMeta(HConnectionManager.java:898)
位于org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.locateRegion(HConnectionManager.java:797)
位于org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.relocateRegion(HConnectionManager.java:772)
位于org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.locateRegionMeta(HConnectionManager.java:1002)
位于org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.locateRegion(HConnectionManager.java:801)
位于org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.locateRegion(HConnectionManager.java:766)
位于org.apache.hadoop.hbase.client.HTable.(HTable.java:189)
位于org.apache.hadoop.hbase.client.HTable.(HTable.java:163)
在com.tcs.hbase.hbassample.insertData(hbassample.java:30)上
位于com.tcs.hbase.hbassample.main(hbassample.java:82)
原因:java.net.ConnectException:连接被拒绝:无进一步信息
在sun.nio.ch.socketchannel.checkConnect(本机方法)
位于sun.nio.ch.socketchannel.finishConnect(未知来源)
位于org.apache.hadoop.net.SocketIOWithTimeout.connect(SocketIOWithTimeout.java:206)
位于org.apache.hadoop.net.NetUtils.connect(NetUtils.java:406)
位于org.apache.hadoop.hbase.ipc.HBaseClient$Connection.setupIOstreams(HBaseClient.java:328)
位于org.apache.hadoop.hbase.ipc.HBaseClient.getConnection(HBaseClient.java:883)
位于org.apache.hadoop.hbase.ipc.HBaseClient.call(HBaseClient.java:750)
位于org.apache.hadoop.hbase.ipc.HBaseRPC$Invoker.invoke(HBaseRPC.java:257)
位于$Proxy4.getProtocolVersion(未知源)
位于org.apache.hadoop.hbase.ipc.HBaseRPC.getProxy(HBaseRPC.java:419)
位于org.apache.hadoop.hbase.ipc.HBaseRPC.getProxy(HBaseRPC.java:393)
位于org.apache.hadoop.hbase.ipc.HBaseRPC.getProxy(HBaseRPC.java:444)
位于org.apache.hadoop.hbase.ipc.HBaseRPC.waitForProxy(HBaseRPC.java:349)
... 还有12个

当我在安装了hbase的机器上运行相同的代码时,其工作正常。。从日志中可以清楚地看出,rpc正在解析为本地主机ip。我想知道如何将rpc ip配置为安装了hbase的机器的ip。

检查您的hbase/conf/regionserver的ip。将其作为本地主机。我想你不会犯这个错误


在启动HBASE之前,还要确保HDFS中的所有守护进程都已启动并正在运行。

检查HBASE/conf/regionserver的IP。将其作为本地主机。我想你不会犯这个错误


在启动HBASE之前,还要确保HDFS中的所有守护进程都已启动并正在运行。

此问题的根本原因位于/etc/hosts文件中。如果您检查/etc/hosts文件,您将发现一个类似下面的条目(在我的例子中,mu机器名为domainnameyouwanttogive)

127.0.0.1本地主机 127.0.1.1您想要提供的域名

以下线路适用于支持IPv6的主机 ::1 ip6本地主机ip6环回 fe00::0 ip6 localnet ff00::0 ip6 mcastprefix ff02::1 ip6所有节点 ff02::2 ip6所有路由器

根本原因是domainnameyouwanttogive解析为127.0.1.1,这是不正确的,因为它应该解析为127.0.0.1(或外部IP)。由于我的外部IP是192.168.58.10,我创建了以下/etc/hosts配置

127.0.0.1本地主机 192.168.43.3您想要提供的域名

以下线路适用于支持IPv6的主机 ::1 ip6本地主机ip6环回 fe00::0 ip6 localnet ff00::0 ip6 mcastprefix ff02::1 ip6所有节点 ff02::2 ip6所有路由器


这将确保在本地主机上正确解析主机进程,并且可以在开发系统上正确启动HBase安装

此问题的根本原因位于/etc/hosts文件中。如果您检查/etc/hosts文件,您将发现一个类似下面的条目(在我的例子中,mu机器名为domainnameyouwanttogive)

127.0.0.1本地主机 127.0.1.1您想要提供的域名

以下线路适用于支持IPv6的主机 ::1 ip6本地主机ip6环回 fe00::0 ip6 localnet ff00::0 i