由Spark 1.4.1升级到Spark 1.5.0,发现一些sql执行出错了,原因是Spark将内置的Hive client版本升级到了1.2.1,原来是0.13.1。

不过Spark依然支持低版本的Hive,只需添加两个配置到spark-default.conf或启动Driver的时候执行这两个配置也可以,配置如下(我这里用的0.13.1所以配置看你的客户端版本而定):

spark.sql.hive.metastore.version 0.13.1
spark.sql.hive.metastore.jars /home/stan/hive/lib/*:/home/stan/spark/assembly/target/scala-2.10/spark-assembly-1.5.0-hadoop2.4.0.jar

注意spark.sql.hive.metastore.jars必须还要包含Hadoop的jar,也可以直接指定编译好的spark jar包,其中已经包含了hadoop的jar包了。