通过Beeline客户端访问Hive
JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。
HiveServer2也有一个JDBC驱动程序。它支持对HiveServer2的嵌入式和远程访问。
Hive的JDBC连接可以使用命令行(Beeline连接)方式和Java API两种方式。
通过Beeline访问Hive
Beeline,是Hive新的客户端工具,用于替代Hive CLI。
Beeline,是HiveServer2的JDBC客户端,基于SQLLine命令行接口。Beeline Shell支持嵌入式模式和远程模式。在嵌入式模式中,它运行一个嵌入式的Hive(类似于Hive CLI);在远程模式中,通过Thrift连接到一个单独的HiveServer2进程。
从Hive 0.14开始,当Beeline和HiveServer2一起使用时,它会从HiveServer2打印执行查询的日志信息到STDERR。建议在生产环境使用远程HiveServer2模式,因为这样更安全,不需要为用户授予直接的HDFS/Metastore访问权限。
Hive的运行依赖于Hadoop,需要先启动Hadoop;而Beeline的运行需要先启动HiveServer2。
1)启动HiveServer2
在终端窗口执行以下命令,启动HiveServer2服务:
$ hiveserver2 &
或者
$ hive --service hiveserver2 &
说明:“&”代表后台启动的意思。
2)启动Beeline
在终端窗口执行以下命令,启动Beeline客户端:
$ beeline
或者
$ hive --service beeline
3)连接到Hive
在beeline命令行,执行如下命令连接Hive:
beeline> !connect jdbc:hive2://localhost:10000 –n root –w 123456
连接hostname为localhost,用户为root,密码为123456的hive。参数(-n和-w可以省略)
或者
$ beeline -u jdbc:hive2://hadoop:10000/default -n hduser -p hduser
通过beeline连接上Hive以后,就可以远程执行Hive QL命令和函数了。
4)退出连接:
!quit