我在码头容器中启动hbase,希望客户端代码能够连接到hbase rpc服务器端口。问题是:它总是不同的(从临时端口范围随机选择)。
通过查看hbase代码(第1078行中的"hbase.regionserver.port“,bindAddress ),我发现我可以通过设置"hbase.master.port".或https://github.com/apache/hbase/blob/9facfa550f1e7386be3a04d84f7e8013f5002965/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RSRpcServices.java来覆盖端口
我尝试在HBASE-conx.xml中设置这些,但是没有任何效果-端口仍然是随机的,就好像这些属性被解析为0一样。
我该怎么改变呢?
发布于 2017-04-21 10:30:39
找到了解决办法。默认情况下,Hbase以独立模式启动,并随机选择端口。因此,在阅读了文档之后,我编辑了hbase-site.xml如下所示:
<configuration>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.regionserver.ipc.address</name>
<value>0.0.0.0</value>
</property>
<property>
<name>hbase.master.ipc.address</name>
<value>0.0.0.0</value>
</property>
注意,我让它在分布式模式中运行(在我的例子中是伪分布式的),并为主服务器和地区服务器将ipc侦听地址设置为0.0.0.0 (否则仍然不能从码头容器外部连接)。在这些更改之后,端口变得稳定,所以一切都很好。
附加注意:切换到分布式模式后,我必须在hbase-env.sh中专门设置JAVA_HOME。不过,这可以在文档中找到。
https://stackoverflow.com/questions/43524733
复制相似问题