用Scala api访问阿里云服务器hbase问题

本文记录了解决API连接阿里云服务器的HBase时出现的错误过程,包括排查网络连接、防火墙设置、SELinux配置及安全组规则等步骤,并最终定位问题所在。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

api连接阿里云服务器的hbase报错:
Exception in thread “main” org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss for /test
at org.apache.zookeeper.KeeperException.create(KeeperException.java:99)
at org.apache.zookeeper.KeeperException.create(KeeperException.java:51)
at org.apache.zookeeper.ZooKeeper.exists(ZooKeeper.java:1501)
at org.apache.zookeeper.ZooKeeper.exists(ZooKeeper.java:1529)
at com.jiq.test.ZooKeeperTest.main(ZooKeeperTest.java:12)

1.首先Windowsping不通服务器
在阿里云控制面板的安全组里配置入方向的规则,可以ping通了。
2.仍然报错,检查Windows和服务器的防火墙。
都关闭,还是报错。
3.配置Windows和服务器ip地址的域名映射。
仍然报错。
4.这是打算从zookeeper入手,在网上找了个demo打算试下

package Hbase

import java.util.concurrent.CountDownLatch

import org.apache.zookeeper.CreateMode
import org.apache.zookeeper.ZooDefs.Ids
import org.apache.zookeeper.ZooKeeper


object ZooKeeperTest {
  @throws[Exception]
  def main(args: Array[String]): Unit = {


    val zk = new ZooKeeper("cts01:2181", 3000, null)
    System.out.println("=========创建节点===========")
    if (zk.exists("/test1", false) == null) zk.create("/test", "znode1".getBytes, Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT)
    System.out.println("=============查看节点是否安装成功===============")
    System.out.println(new String(zk.getData("/test", false, null)))
    System.out.println("=========修改节点的数据==========")
    zk.setData("/test", "zNode2".getBytes, -1)
    System.out.println("========查看修改的节点是否成功=========")
    System.out.println(new String(zk.getData("/test", false, null)))
    System.out.println("=======删除节点==========")
    zk.delete("/test", -1)
    System.out.println("==========查看节点是否被删除============")
    System.out.println("节点状态:" + zk.exists("/test", false))
    zk.close()
  }

}

报错zookeeper拒绝连接
5.确定防火墙已经关闭,还是报错
关闭的命令:
systemctl status firewalld.service #检查防火墙状态

systemctl stop firewalld.service #关闭防火墙

systemctl disable firewalld.service #禁止开机启动防火墙
6.关闭SELINUX,还是报错

vim /etc/selinux/config

SELINUX=enforcing 注释掉

SELINUXTYPE=targeted 注释掉

SELINUX=disabled #增加
7.再回去看阿里云的安全组配置规则,发现原因。
增加了一条全部规则,zookeeper可以访问了。
进入阿里云ECS实例控制台
1)进入ECS控制台
2).选择更多-安全组配置
3).选择配置规则
4)选择添加安全组规则
5)添加安全组规则
这里写图片描述

这样Windows机器就能使用ECS提供的外网IP访问到ZooKeeper了。

但是在Windows上不能访问hbase,就提交工单问阿里云工作人员,结果说hbase不能本地访问,只能在ecs服务器中访问。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值