cloudera cdh 是阉割版的spark,没有spark sql和thrift server,没有办法启动thrift server做JDBC/ODBC查询。那么是否有办法自己重新编译spark,来获得这种能力呢?
本人尝试修改spark的hadoop和hive依赖(pom.xml中改成1.1.0-cdh5.11.2),重新打包编译,
mvn -Pyarn -Phive -Phive-thriftserver -Pflume-provided -Phadoop-provided -Phbase-provided -Phive-provided -Pparquet-provided -Dhadoop.version=2.6.0-cdh5.11.2 -DskipTests clean package
结果在编译thrift server一步报错,由于spark使用的是hive1.2.0版本,这个结果也可想而知。
那么在不改hive版本的情况下是否能成功运行呢?
把成功打包好的spark jar包放到spark jar路径下,添加start-thriftserver.sh并做一系列必要的修改后发现仍然启动不了,日志报错大概意思就是client版本有问题,有些类不存在。
那么能不能再进一步,重新编译打包hive呢?
本人使用了hive-1.2.2和hive-2.1.1和hive-2.3.2进行编译,结果均告失败,由于cdh版本的hadoop和hive的源码不兼容导致。
所以目前的结论就是使用cloudera cdh 5.x 在没有官方支持的情况下暂时还没有办法使用spark thrift server。
那么本文的意义其实就是告诉打算尝试的人别费劲了。
当然如果有尝试成功的,欢迎告知