SparkSQL访问Hive遇到的问题及解决方法,需要先将hadoop的core-site.xml,hive的hive-site.xml拷贝到project中。作者:若泽大数据
需要先将hadoop的core-site.xml,hive的hive-site.xml拷贝到project中
测试代码
![1d7506c1803c78f339d808e581da8e15.png](https://i-blog.csdnimg.cn/blog_migrate/ed6cd7544b9ed89e778eea360916f056.jpeg)
报错
![c79f1ba2ecd5ac16e275ad1b33a9bf8b.png](https://i-blog.csdnimg.cn/blog_migrate/aaddfeec55e9a9814fa6155440c71748.jpeg)
查看源码
![ac075119186da25d4eae17aac972b769.png](https://i-blog.csdnimg.cn/blog_migrate/2079b6431b7a41285f877e2cf6e948cf.jpeg)
解决方法
将$HIVE_HOME/lib下的spark-hive_2.11-2.4.2.jar与spark-hive-thriftserver_2.11-2.4.2.jar添加到project中
继续报错
![71e7dbf8b1ce8db8c04037df66e03522.png](https://i-blog.csdnimg.cn/blog_migrate/ba8eb77c71a4b3eacb3290ce9a225c10.jpeg)
查看源码
![f9f175ec81f8099dcfab85468ae81862.png](https://i-blog.csdnimg.cn/blog_migrate/b47bd02fa2fe7d509294df5fece8aebd.jpeg)
进入ConfVars
![23bd8e7c6fd610ee32f84868b2a930e8.png](https://i-blog.csdnimg.cn/blog_migrate/94ab8e8638b06923d34793c618714e98.jpeg)
发现ConfVars中定义的变量并没有METASTORE_CLIENT_SOCKET_LIFETIME,而HiveConf.java来自于hive-exec-1.1.0-cdh5.7.0.jar,即证明hive1.1.0中并没有假如该参数。
解决方法
将hive依赖换为1.2.1
![82c9c7d034c6b63370196c09c5b5f411.png](https://i-blog.csdnimg.cn/blog_migrate/ca734300c68c3f48b20736e36e0d1b04.jpeg)
继续报错
![1d58bb7a3329f9f875dd3a0ebe2516d1.png](https://i-blog.csdnimg.cn/blog_migrate/af8d8104d4f3453f93fb1ac46c905da2.jpeg)
解决方法
这是因为远端没有启动hive造成的,启动hive时需要配置metastore。