千家信息网

Spark如何在Windows本地接入Hive

发表于:2024-10-22 作者:千家信息网编辑
千家信息网最后更新 2024年10月22日,这篇文章主要介绍Spark如何在Windows本地接入Hive,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!方案一:Jdbc直连HivePS:确认Hive服务是否启动,进入到H
千家信息网最后更新 2024年10月22日Spark如何在Windows本地接入Hive

这篇文章主要介绍Spark如何在Windows本地接入Hive,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

方案一: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的配置文件

以上是"Spark如何在Windows本地接入Hive"这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!

0