我想将本地java/scala进程连接到远程hbase服务器(v1.1.2)(在docker中)。我有以下代码:
val config = HBaseConfiguration.create()
BasicConfigurator.configure()
config.set("hbase.zookeeper.quorum", "192.168.99.100")
config.set("hbase.zookeeper.property.clientPort","2181")
config.set("hbase.master", "192.168.99.100:9090")
val connection = ConnectionFactory.createConnection(config)
在docker中,我打开了以下端口:8085、2181、8080、9090、16010
它一直工作到日志中的这一行:
735 [hconnection-0x471a9022-shared--pool1-t1] DEBUG org.apache.hadoop.hbase.ipc.AbstractRpcClient - Use SIMPLE authentication for service ClientService, sasl=false
747 [hconnection-0x471a9022-shared--pool1-t1] DEBUG org.apache.hadoop.hbase.ipc.AbstractRpcClient - Connecting to docker-hbase/192.168.99.100:39160
896 [main] DEBUG org.apache.hadoop.hbase.ipc.AbstractRpcClient - Use SIMPLE authentication for service MasterService, sasl=false
896 [main] DEBUG org.apache.hadoop.hbase.ipc.AbstractRpcClient - Connecting to docker-hbase/192.168.99.100:43454
我的问题是,每次我重新启动服务时,这个clientservice和masterservice都会尝试连接到不同的端口(在本例中是39160和43454),因此我无法修复要在docker中打开的端口。
2条答案
按热度按时间wrrgggsh1#
这是不正确的:
应该是:
g6baxovj2#
您需要以伪分布式模式启动hbase。有关详细信息,请参阅我在这里的答案如何为hbase指定rpc服务器端口?