Java进行Hive的连接和访问

这篇博客介绍了如何使用Java连接和操作Hive,重点讲解了Hive的HiveServer2服务,包括其配置、启动以及使用Beeline控制台进行连接和解决常见错误的方法。
摘要由CSDN通过智能技术生成

今天看了一遍不错的文章,关于Java访问Hive的,正好要用到这一块,分享到此以便更多的人可以学习和应用

非常感谢博主的总结和分享

博文链接: https://www.jianshu.com/p/4ef28607fc04

Hive内置服务与HiveServer2应用

内置服务介绍

我们执行hive --service help查看内置的服务帮助,图中的Service List右侧罗列了很多Hive支持的服务列表,种类很多。

webp

下面介绍最有用的一些服务:

(1)cli

cli是Command Line Interface 的缩写,是Hive的命令行界面,用的比较多,是默认服务,直接可以在命令行里使用。

(2)hiveserver

这个可以让Hive以提供Thrift服务的服务器形式来运行,可以允许许多个不同语言编写的客户端进行通信,使用需要启动HiveServer服务以和客户端联系,我们可以通过设置HIVE_PORT环境变量来设置服务器所监听的端口,在默认情况下,端口号为10000。
我们可以使用如下的指令启动该服务:hive --service hiveserver -p 10002,其中-p参数也是用来指定监听端口的。

(3)hwi

其实就是hive web interface的缩写它是hive的web借口,是hive cli的一个web替代方案。

(4)jar

与hadoop jar等价的Hive接口,这是运行类路径中同时包含Hadoop 和Hive类的Java应用程序的简便方式。

(5)metastore

在默认的情况下,metastore和hive服务运行在同一个进程中,使用这个服务,可以让metastore作为一个单独的进程运行,我们可以通过METASTOE——PORT来指定监听的端口号。

Hive的三种启动方式

hive shell模式

bin/hive 或者 bin/hive –-service cli

hive web界面启动模式

bin/hive –-service hwi &, & 表示后台运行。我们后台启动hwi服务,然后输入jps查看进程发现多了一个RunJar,表明我们的hive hwi启动成功。

用于通过浏览器来访问hive,感觉没多大用途,浏览器访问地址是:http://huatec01:9999/hwi/

启动示意图:

webp

浏览器访问:

webp

 

hive远程服务 (端口号10000) 启动方式

bin/hive --service hiveserver2 &

用java,python等程序实现通过jdbc等驱动的访问hive就用这种起动方式了,这个是程序员最需要的方式了。

webp

 

HiveServer与HiveServer2

HiveServer2介绍

HiveServer与HiveServer2,两者都允许远程客户端使用多种编程语言,通过HiveServer或者HiveServer2,客户端可以在不启动CLI的情况下对Hive中的数据进行操作,连这个和都允许远程客户端使用多种编程语言如java,python等向hive提交请求,取回结果。

官方说明:

HiveServer is scheduled to be removed from Hive releases starting Hive 0.15. See HIVE-6977. Please switch over to HiveServer2.

从hive0.15起就不再支持hiveserver了(我的hive版本为2.1.1),但是在这里我们还是要说一下hiveserver,其实在前面的Server List中就不包含hiveserver。

我们也可以尝试执行bin/hive –-service hiveserver,会输出日志提示Service hiveserver not found

HiveServer或者HiveServer2都是基于Thrift的,但HiveSever有时被称为Thrift server,而HiveServer2却不会。既然已经存在HiveServer,为什么还需要HiveServer2呢?

这是因为HiveServer不能处理多于一个客户端的并发请求,这是由于HiveServer使用的Thrift接口所导致的限制,不能通过修改HiveServer的代码修正。因此在Hive-0.11.0版本中重写了HiveServer代码得到了HiveServer2,进而解决了该问题。HiveServer2支持多客户端的并发和认证,为开放API客户端如JDBC、ODBC提供更好的支持。

HiveServer与HiveServer2的区别

Hiveserver和hiveserver2的JDBC区别:

HiveServer version               Connection URL    
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值