说明:
使用的都是CLI或者hive –e的方式仅允许使用HiveQL执行查询、更新等操作。然而Hive也提供客户端的实现,通过HiveServer或者HiveServer2,客户端可以在不启动CLI的情况下对Hive中的数据进行操作,两者都允许远程客户端使用多种编程语言如Java、Python向Hive提交请求,取回结果。
HiveServer与HiveServer2的异同?
HiveServer和HiveServer2都是基于Thrift。既然已经存在HiveServer为什么还需要HiveServer2呢?因为HiveServer不能处理多于一个客户端的并发请求,这是由于HiveServer使用的Thrift接口所导致的限制,不能通过修改HiveServer的代码修正。因此在Hive-0.11.0版本中重写了HiveServer代码得到了HiveServer2,进而解决了该问题。HiveServer2支持多客户端的并发和认证,为开放API客户端如JDBC、ODBC提供了更好的支持。
启动hiverServer服务
要启动HiveServer服务器,只需要在hive-site.xml中配置相关参数即可
hive.server2.thrift.port
10000
hive.server2.thrift.bind.host
192.168.1.201
hive.server2.long.polling.timeout
5000
启动元数据库
先启动元数据库,在命令行中键入:
[root@hadoop-server01 ~]# hive --service metastore &
启动服务
#hive --service hiveserver >/dev/null &
以上命令启动hiveserver2服务。
Hive提供了jdbc驱动,使得我们可以用java代码来连接Hive并进行一些类关系型数据库的sql语句查询等操作。首先,我们必须将Hive的服务,也就是HiveServe打开。如果启动hiveserver就把上面命令改为
#hive --service hiveserver >/dev/null &
一、新建Java工程,并导入需要的依赖包
1、新建Java工程
这里省略掉
2、添加Hive依赖包
新建hivel