app使用zookeeper进行任务同步

因zk服务器版本升级、ip更换,application也需要更换配置数据库,所以重新在原服务器上部署一次app。遇到的坑:

1.zk版本换成了安全版本,所以要进行安全认证。找到产品文档中的安全认证实例代码,添加;下载安全认证的秘钥,打进JAR包或者放到application的config目录。
2.zk版本升级成3.5.1,但application原来的依赖的kafka_2.10里面自带的zookeeper是2.5.6,所以需要在原kafka的依赖里排除zk,然后再单独添加zk的依赖。
查原代码的版本依赖的方法是:
Execute Maven Goal->dependency:tree -Dverbos -Dincludes:org.apach:zookeeper
排除原zk:

org.apache.kafka
kafka_2.10
0.8.2.1


org.apache.zookeeper
zookeeper



添加新的zk依赖:

org.apache.zookeeper
zookeeper
3.5.1

此处有个大坑,就是在代码中修改完依赖之后,application的lib上面的zk的版本jar包也需要跟着进行更新!!!
3.在新的zk上面要在某路径下添加信息节点,需要事先将路径创建好。而且手动创建路径需要一层一层创建。
手动登陆zk手动创建路径:
1)先安全认证
kinit -kt …/keytab/user.keytab teligen_flink
2)登陆客户端/opt/flinkClientTest/ZooKeeper/zookeeper/bin/zkCli.sh -server 192.168.236.157:24002
[zk: xx.xx.xx.xx:24002(CONNECTED) 4] create /test1
Created /test1
[zk: xx.xx.xx.xx:24002(CONNECTED) 6] create /test1/test11/
Created /test1/test11
[zk: xx.xx.xx.xx:24002(CONNECTED) 7] create /test1/test11/test111
Created /test1/test11/test111
这样在/test1/test11/test111下创建task的节点时,代码:
String zkPath = “/test1/test11/test111/task”;
if (curatorFramework.checkExists().forPath(zkPath) == null) {
curatorFramework.create()
.creatingParentsIfNeeded()
.withMode(CreateMode.PERSISTENT)
.forPath(zkPath, info.getBytes());
}else{
curatorFramework.setData().forPath(zkPath, info.getBytes());
}
4.但是将上面三种都已经做好之后,还是联系不上zk,索性换了一台和zk同一集群的一台服务器上去部署app,然后就成功了。后来查原旧服务器上的时间未和新集群做时间同步,而安全模式对时间的要求比较高,所以才导致连接不上zk。所以第四步就是做时间同步。
ntpdate xx.xx.xx.xx

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值