Spark在Windows本地接入Hive

主宰稳场 提交于 2020-12-09 01:20:36

方案一:Jdbc直连Hive

PS:确认Hive服务是否启动,进入到Hive服务器进行以下操作
1.先开启 metastore
  hive --service metastore &
2.开启hiveserver2,默认端口是10000
  hive --service hiveserver2 &
3.验证是否开启成功
  netstat -ntulp | grep 10000
  输出:tcp 0 0 0.0.0.0:10000 0.0.0.0:* LISTEN 27799/java 即为服务开启成功

代码实现

方案二:SparkSession直连Hive

初始化并创建Sparksession,代码实现

使用Sparksession查询

查询结果

 注:连接Hive无需初始化声明注册方言

特别注意,若不加载hive-site.xml时,需在config中配置:

此配置来源于Hive服务器conf/hive-site.xml中配置项

本地还需配置hosts

附:Spark方式Windows开发环境异常及解决方案

异常1:Caused by: java.lang.RuntimeException: The root scratch dir: /tmp/hive on HDFS should be writable. Current permissions are: rwx------

解决方式:
1.配置Hadoop本地环境变量

2.打开cmd命令窗口,进入到本地spark-2.3.1-bin-hadoop2.7\bin目录

3.运行以下3条命令
%HADOOP_HOME%\bin\winutils.exe ls \tmp\hive
%HADOOP_HOME%\bin\winutils.exe chmod 777 \tmp\hive
%HADOOP_HOME%\bin\winutils.exe ls \tmp\hive

4.验证效果

异常2:Caused by: java.lang.IllegalArgumentException: java.net.UnknownHostException: HzCluster

原因:本地Spark连接Hive集群时未能发现Hadoop集群,需装载hdfs配置。
解决方式:
1.拷贝hadoop/conf目录下的core-site.xml和hdfs-site.xml文件到项目${path}/conf目录下

2.拷贝hive/conf目录下的hive-site.xml文件到项目${path}/conf目录下

[重要]修改hive-site.xml文件内容,仅保留以下配置

3.初始化Sparksession时装载Hive、Hdfs的配置文件

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!