如何为hbase指定RPC服务器端口?

时间:2017-04-20 16:12:14

标签: hbase

我在docker容器中启动hbase并希望客户端代码能够连接到hbase rpc服务器端口。问题是:它总是不同的(从短暂的端口范围中随机选择)。

查看hbase代码(https://github.com/apache/hbase/blob/9facfa550f1e7386be3a04d84f7e8013f5002965/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RSRpcServices.java,来自第1078行的bindAddress)我看到我可以通过设置" hbase.regionserver.port "来覆盖端口。或" hbase.master.port "。

我尝试在hbase-conf.xml中设置这些但没有任何影响 - 端口仍然是随机的,就像这些属性被解析为0一样。

如何更改?

1 个答案:

答案 0 :(得分:1)

找到解决方案。默认情况下,Hbase以独立模式启动,并随机选择端口。所以在阅读doc之后,我编辑了hbase-site.xml,如下所示:

switch (action.type) {

    case LOGIN:{
        console.log('excute login operator ......',);
        return  AppNavigator.router.getStateForAction(NavigationActions.reset({
            index: 0,
            actions: [
                NavigationActions.navigate({ routeName: 'Main'})
            ]
        }), state);
    }
    case LOGOUT:
        console.log('excute logout operator ......');
        return initialNavState;
    default:
        return initialNavState;
}
}

请注意,我正在以分布式模式(在我的情况下为伪分布)运行,并为主服务器和区域服务器设置ipc listen地址为0.0.0.0(否则你仍然可以' t从docker容器外部连接)。在这些变化之后,端口变得稳定,所以一切都很好。

附加说明:切换到分布式模式后,我必须在hbase-env.sh中专门设置JAVA_HOME。这可以在文档中找到。