hbase如何开放外网远程java连接使用?

hbase-site.xml配置:

  <property>
    <name>hbase.cluster.distributed</name>
    <value>true</value>
  </property>
  <property>
     <name>hbase.root.dir</name>
     <value>hdfs://localhost:9011/hbase</value>
  </property>
  <property>
    <name>hbase.tmp.dir</name>
    <value>./tmp</value>
  </property>
  <property>
    <name>hbase.unsafe.stream.capability.enforce</name>
    <value>false</value>
  </property>
  <property>     
       <name>hbase.zookeeper.quorum</name>
       <value>localhost:2181</value>
  </property>
  <property>
    <name>hbase.master.hostname</name>
    <value>localhost</value>
  </property>
  <property>
    <name>hbase.regionserver.hostname</name>
    <value>localhost</value>
  </property>
  <property>
    <name>hbase.master.ipc.address</name>
    <value>0.0.0.0</value>
  </property>
  <property>
    <name>hbase.regionserver.ipc.address</name>
    <value>0.0.0.0</value>
  </property>

我用ngrok开放了2181和16000端口:

Forwarding                    https://33e8-60-176-33-90.ngrok-free.app -> http://localhost:2181                                            
Forwarding                    https://9c1b-60-176-33-90.ngrok-free.app -> http://localhost:5100                                            
Forwarding                    https://b7a9-60-176-33-90.ngrok-free.app -> http://localhost:16000    

外部java是这样连接的:

Configuration configuration = HBaseConfiguration.create();
        configuration.set("hbase.zookeeper.quorum", "ce88-60-176-33-90.ngrok-free.app");
        configuration.set("hbase.zookeeper.property.clientPort", "80");

但是运行以后报错了:
13881684918000_.pic.jpg

求解谢谢🙏

阅读 2.8k
2 个回答

直接用本地端口映射吧 ssh -L

要开放HBase的外网远程Java连接,需要执行以下步骤:

  1. 查询远程服务器的IP地址,并确保该服务器是物理存在的。
  2. 在该物理机上的虚拟机上配置Hadoop多结点集群(这通常是别人配置好的)。
  3. 在配置HBase时,需要将Zookeeper的quorum设置为集群中所有机器的IP地址。
  4. 还需要配置一个端口号,以便通过该端口号和主节点建立链接。

在完成上述步骤后,就可以使用Java连接远程HBase数据库了。具体地,可以使用HBase API中的Configuration类来创建连接,如下所示:

Configuration config = HBaseConfiguration.create();  
config.set("hbase.zookeeper.quorum", "remote-server-ip");  
config.set("hbase.zookeeper.property.clientPort", "2181");  
Connection connection = ConnectionFactory.createConnection(config);

其中,remote-server-ip是远程服务器的IP地址,2181是之前配置的Zookeeper的clientPort端口号。创建好连接后,就可以使用Java操作HBase数据库了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题