背景
datax中rdbmsreader是用于关系型数据库的同步,使用它对clickhouse进行尝试,将clickhouse数据同步到hdfs。由于服务器已安装datax,故直接进行尝试。
处理过程
1、直接使用rdbmsreader去读取clickhouse的数据。
报错:no suitable driver found for JDBC:clickhouse://xx.xx.xx.xxx:8123/。。。。。
解决方案: 下载clickhouse的jar包:clickhouse-jdbc-0.2.4-shaded.jar并放到datax下的目录datax/plugin/reader/rdbmsreader/libs下面。
2、再次执行datax tmp.json去读clickhouse数据。
报错:java.lang.NoClassDefFoundError:net/jpountz/lz4/LZ4Factory
解决方案:
<dependency>
<groupId>net.jpountz.lz4</groupId>
<artifactId>lz4</artifactId>
<version>1.3.0</version>
</dependency>
- 打包完后,在DataX/rdbmsreader/target/datax/plugin/reader/rdbmsreader/libs目录下新增了一个jar包lz4-1.3.0.jar,这个就是缺少的依赖。
- 最终,将在DataX/rdbmsreader/target/datax/plugin/reader/rdbmsreader目录下新生成rdbmsreader-0.0.1-SNAPSHOT.jar包与libs下面的lz4-1.3.0.jar。
- rdbmsreader-0.0.1-SNAPSHOT.jar:替换掉datax的plugin目录下datax/plugin/reader/rdbmsreader/的rdbmsreader-0.0.1-SNAPSHOT.jar
- lz4-1.3.0.jar:复制到rdbmsreader的libs目录下。
至此,便可以完成同步,搞定!
参考文章: 1、java.lang.NoClassDefFoundError: net/jpountz/util/SafeUtils
|