flink实时写入数据到 clickhouse 报错Could not initialize class ru.yandex.clickhouse.ClickHouseUtil

问题介绍:

项目在使用clickhouse jdbc 将flink数据实时写入clickhouse时候,报错:

Caused by: java.lang.NoClassDefFoundError: Could not initialize class ru.yandex.clickhouse.ClickHouseUtil

在这里插入图片描述

解决:

1.直接拿报错信息百度,没查到解决方法,只能自己在去想想办法了,最好的办法就是源码刚进去

2.直接断点跟进源码 发现ClickHouseUtil 类下导入的包不存在,如图所示
在这里插入图片描述
3.直接去查 com.google.common.escape.Escaper; 这个包是在 com.google.guava 依赖下的。 后面添加了下面的依赖发现还是不行,因为这个依赖 中也还是没有那个包,所以再去换一个

 <dependency>
      <groupId>com.google.guava</groupId>
      <artifactId>guava</artifactId>
      <version>13.0.1</version>
  </dependency>-->

4.在仓库中心找到了,替换成下面的依赖就行了,这时候发现ClickHouseUtil 以及能成功导入该包了

<dependency>
    <groupId>com.google.guava</groupId>
    <artifactId>guava</artifactId>
    <version>31.0.1-jre</version>
</dependency>

在这里插入图片描述在这里插入图片描述

ps: 真的套用以前的习惯,拿着问题就去百度,百度了好久,都没能解决其中包括https://stackoverflow.com/,github等等地方都搜遍了,以及在GitHub上手flink写入clickhouse的源 码也无解。所以有时候 还是得跟进源码去一探究竟

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值