项目场景:
最近在做一个实时的项目,主要用Flink来做,由于集群是阿里云的集群,在程序中,需要通过JDBC的方式去连接Phoenix.问题描述:
在本地进行测试时,需在本地idea中运行代码,去连接阿里云ECS服务器里的zookeeper集群,结果发现连接不上。2021-05-10 20:30:57,127 WARN [org.apache.hadoop.hbase.zookeeper.ReadOnlyZKClient] - 0x01a28a30 to hadoop102:2181,hadoop103:2181,hadoop104:2181 failed for get of /hbase/hbaseid, code = CONNECTIONLOSS, retries = 1
开始的报错是这种形式,很明显能看出是无法连接到Zookeeper集群,后来经过百度后,将阿里云的安全配置中的2181端口打开。
修改规则后,运行代码,报错消除,但是程序还是不能正常运行,会卡在这个阶段不能正常输出结果
原因分析:
再次查找问题,怀疑依然是阿里云Zookeeper的集群存在问题,在查找中找到一个大佬的文章。 [六种方法解决Zookeeper问题](https://blog.csdn.net/haroroc/article/details/109728618) 但是尝试了大佬提出的所有解决方法,问题依然存在。解决方案:
最终,解决方案是[这个大佬的解决方案](https://solang.blog.csdn.net/article/details/79879209)
在配置规则的时候,将全部的规则都放开,而不仅仅是放开TCP,将所有规格放开后,代码运行无误。