问题导读:
1、Hive提供了哪三种用户访问方式?
2、使用HiveServer时候,需要首先启动哪个服务?
3、HiveServer的启动命令是?
4、HiveServer是通过哪个服务来提供远程JDBC访问的?
5、如何修改HiveServer的默认启动端口?
6、Hive JDBC驱动连接需要哪些包?
7、HiveServer2与HiveServer在使用上的不同点?
Hive提供了三种用户接口:CLI、HWI和客户端。其中客户端即是使用JDBC驱动通过thrift,远程操作Hive。HWI即提供Web界面远程访问Hive,可参考我的另外一篇博文:Hive用户接口(一)—Hive Web接口HWI的操作及使用。但是最常见的使用方式还是使用CLI方式。下面介绍Hive使用JDBC驱动连接操作Hive,我的Hive版本是Hive-0.13.1。
Hive JDBC驱动连接分为两种,早期的是HiveServer,最新的是HiveServer2,前者本身存在很多的问题,如安全性、并发性等,后者很好的解决了诸如安全性和并发性等问题。我先介绍HiveServer的用法。
一、启动元数据MetaStore
使用任何方式连接Hive,都首先需要启动Hive元数据服务,否则执行HQL操作无法进行。
[hadoopUser@secondmgt ~]$ hive --service metastore
Starting Hive Metastore Server
15/01/11 20:11:56 INFO Configuration.deprecation: mapred.reduce.tasks is deprecated. Instead, use mapreduce.job.reduces
15/01/11 20:11:56 INFO Configuration.deprecation: mapred.min.split.size is deprecated. Instead, use mapreduce.input.fileinputformat.split.minsize
15/01/11 20:11:56 INFO Configuration.deprecation: mapred.reduce.tasks.speculative.execution is deprecated. Instead, use mapreduce.reduce.speculative
15/01/11 20:11:56 INFO Configuration.deprecation: mapred.min.split.size.per.node is deprecated. Instead, use mapreduce.input.fileinputformat.split.minsize.per.node
15/01/11 20:11:56 INFO Configuration.deprecation: mapred.input.dir.recursive is deprecated. Instead, use mapreduce.input.fileinputformat.input.dir.recursive
二、启动HiveServer服务
HiveServer使用thrift服务来为客户端提供远程连接的访问端口,在JDBC连接Hive之前必须先启动HiveServer。
[hadoopUser@secondmgt ~]$ hive --service hiveserver
Starting Hive Thrift Server
15/01/12 10:22:54 INFO Configuration.deprecation: mapred.reduce.tasks is deprec