flink实时写入数据到 clickhouse 报错Could not initialize class ru.yandex.clickhouse.ClickHouseUtil
問(wèn)題介紹:
項(xiàng)目在使用clickhouse jdbc 將flink數(shù)據(jù)實(shí)時(shí)寫(xiě)入clickhouse時(shí)候,報(bào)錯(cuò):
Caused by: java.lang.NoClassDefFoundError: Could not initialize class ru.yandex.clickhouse.ClickHouseUtil解決:
1.直接拿報(bào)錯(cuò)信息百度,沒(méi)查到解決方法,只能自己在去想想辦法了,最好的辦法就是源碼剛進(jìn)去
2.直接斷點(diǎn)跟進(jìn)源碼 發(fā)現(xiàn)ClickHouseUtil 類下導(dǎo)入的包不存在,如圖所示
3.直接去查 com.google.common.escape.Escaper; 這個(gè)包是在 com.google.guava 依賴下的。 后面添加了下面的依賴發(fā)現(xiàn)還是不行,因?yàn)檫@個(gè)依賴 中也還是沒(méi)有那個(gè)包,所以再去換一個(gè)
4.在倉(cāng)庫(kù)中心找到了,替換成下面的依賴就行了,這時(shí)候發(fā)現(xiàn)ClickHouseUtil 以及能成功導(dǎo)入該包了
<dependency><groupId>com.google.guava</groupId><artifactId>guava</artifactId><version>31.0.1-jre</version> </dependency>ps: 真的套用以前的習(xí)慣,拿著問(wèn)題就去百度,百度了好久,都沒(méi)能解決其中包括https://stackoverflow.com/,github等等地方都搜遍了,以及在GitHub上手flink寫(xiě)入clickhouse的源 碼也無(wú)解。所以有時(shí)候 還是得跟進(jìn)源碼去一探究竟
總結(jié)
以上是生活随笔為你收集整理的flink实时写入数据到 clickhouse 报错Could not initialize class ru.yandex.clickhouse.ClickHouseUtil的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 网络安全红蓝军对抗完整战术周期
- 下一篇: java 时分秒 转换 秒_JAVA将时