报错:org.apache.thrift.TApplicationException: Required field 'client_protocol' is unset!

我用的sbt来管理的spark项目,我所需要的jar包都放到了lib目录下,我用jdbc的方式去连接hive。本地测试一点毛病没有。但是!!!发布到服务器上,就报错:org.apache.thrift.TApplicationException: Required field ‘client_protocol’ is unset!
于是我就百度谷歌,原因是我项目中的hive-jdbc版本与远程hive的版本不匹配。这就奇了怪了,我的jar包明明是与远程匹配的。
最后发现原因,在spark任务时,所用的jar包是线上环境中的jar包,只要删除环境中spark的spark-hive_x.xx-x.x.x.jar spark-hive-thriftserver_x.x-x.x.x.jar hive-jdbc-x.x.x.spark2.jar这三个jar包即可,如果还是有其他jar包和项目中的jar包冲突,那就删掉环境中的即可。

你可能感兴趣的:(spark,hive,jdbc)