大数据技术分享:SparkSQL访问Hive遇到的问题及解决方法

需要先将hadoop的core-site.xml,hive的hive-site.xml拷贝到project中

测试代码

大数据技术分享:SparkSQL访问Hive遇到的问题及解决方法

 

报错

大数据技术分享:SparkSQL访问Hive遇到的问题及解决方法

 

查看源码

大数据技术分享:SparkSQL访问Hive遇到的问题及解决方法

 

解决方法

将$HIVE_HOME/lib下的spark-hive_2.11-2.4.2.jar与spark-hive-thriftserver_2.11-2.4.2.jar添加到project中

继续报错

大数据技术分享:SparkSQL访问Hive遇到的问题及解决方法

 

查看源码

大数据技术分享:SparkSQL访问Hive遇到的问题及解决方法

 

进入ConfVars

大数据技术分享:SparkSQL访问Hive遇到的问题及解决方法

 

发现ConfVars中定义的变量并没有METASTORE_CLIENT_SOCKET_LIFETIME,而HiveConf.java来自于hive-exec-1.1.0-cdh5.7.0.jar,即证明hive1.1.0中并没有假如该参数。

解决方法

将hive依赖换为1.2.1

大数据技术分享:SparkSQL访问Hive遇到的问题及解决方法

 

继续报错

大数据技术分享:SparkSQL访问Hive遇到的问题及解决方法

 

解决方法

这是因为远端没有启动hive造成的,启动hive时需要配置metastore。