通过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

《Spark原理深入与编程实战》