hbase远程java客户端尝试通过随机端口进行身份验证

iih3973s  于 2021-06-10  发布在  Hbase
关注(0)|答案(2)|浏览(463)

我想将本地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中打开的端口。

wrrgggsh

wrrgggsh1#

这是不正确的:

val connection = ConnectionFactory.createConnection(hconf)

应该是:

val connection = ConnectionFactory.createConnection(config)
g6baxovj

g6baxovj2#

您需要以伪分布式模式启动hbase。有关详细信息,请参阅我在这里的答案如何为hbase指定rpc服务器端口?

相关问题