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服务器中访问。