有的公司使用的是cdh集群,用waterdrop同步数据的时候会遇到spark版本太低,需要切换到spark2去。
特此记录一下切换过程以及遇到的问题。
- 更改waterdrop的bin目录下的start-waterdrop.sh文件,更改spark-submit为spark2-submit
- 更改waterdrop的config目录下的waterdrop-env.sh文件,更改SPARK_HOME的配置。
如果环境变量中配置了SPARK_HOME,首先检查环境变量中的SPARK_HOME
问题:
- Exception in thread “main” java.lang.NoSuchFieldError: INSTANCE
原因是CDH版本Spark自带的 httpclient.jar 版本较低,而ClickHouse JDBC基于的httpclient版本为4.5.2,包版本冲突。解决方法是用 httpclient-4.5.2 版本替换掉 CDH 自带的jar包。
我放的路径(路径不统一,根据自己搭建的路径改,不清楚的可以查看spark任务日志中加载的路径):