大橙子网站建设,新征程启航

为企业提供网站建设、域名注册、服务器等服务

Spark如何在Windows本地接入Hive

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

创新互联公司IDC提供业务:绵阳电信机房机柜租用,成都服务器租用,绵阳电信机房机柜租用,重庆服务器租用等四川省内主机托管与主机租用业务;数据中心含:双线机房,BGP机房,电信机房,移动机房,联通机房。

方案一: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 即为服务开启成功
代码实现

Spark如何在Windows本地接入Hive

方案二:SparkSession直连Hive

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

Spark如何在Windows本地接入Hive

使用Sparksession查询

Spark如何在Windows本地接入Hive

查询结果

Spark如何在Windows本地接入Hive

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

Spark如何在Windows本地接入Hive Spark如何在Windows本地接入Hive

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

Spark如何在Windows本地接入Hive

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

Spark如何在Windows本地接入Hive

本地还需配置hosts

Spark如何在Windows本地接入Hive

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

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

Spark如何在Windows本地接入Hive

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

Spark如何在Windows本地接入Hive

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

Spark如何在Windows本地接入Hive

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

Spark如何在Windows本地接入Hive

4.验证效果

Spark如何在Windows本地接入Hive

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

Spark如何在Windows本地接入Hive

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

Spark如何在Windows本地接入Hive

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

Spark如何在Windows本地接入Hive

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

Spark如何在Windows本地接入Hive

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

Spark如何在Windows本地接入Hive

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


文章名称:Spark如何在Windows本地接入Hive
文章位置:http://dzwzjz.com/article/gjpoeg.html
在线咨询
服务热线
服务热线:028-86922220
TOP