首页 > 代码库 > hive里的扩展接口

hive里的扩展接口

 

hive里的扩展接口,主要包括CLI(控制命令行接口)、Beeline和JDBC等方式访问Hive。

  CLI和Beeline都是交互式用户接口,并且功能相似,但是语法和实现不同

  JDBC是一种类似于编程访问关系型数据库的编程接口

 

 

 

 

1、CLI

  在UNIX shell环境下输入hive命令可以启用Hive CLI。在CLI下,所有的Hive语句都以分号结束。

在CLI下可以对一些属性做出设置,像是设置底层MapReduce任务中Reducer的实例数。这些信息都详细地记录在在线Hive语言手册中。

下面是一些专门针对Hive,并且对使用Hive CLI非常有帮助的属性:

  hive.cli.print.header:当设置为true时,查询返回结果的同时会打印列名。默认情况下设置为false。因此不会打印。

             想要开启列名打印的功能需要输入以下指令。

             hive > set hive.cli.print.header=true;

  hive.cli.print.current.db:当设置为true时,将打印当前数据库的名字。默认情况下设置为false。

            可以通过输入以下指令修改属性:

            hive > set hive.cli.print.current.db=true;

            hive (default) >

  

 

 

 

2、Beeline

  Beeline可以作为标准命令行接口的替代者。它使用JDBC连接Hive,而且基于开源的SQLLine项目。

Beeline的工作方式和Hive CLI很像,但是使用Beeline需要与Hive建立显示的连接:

  $ beeline

  Beeline version 0.11.0 by Apache Hive

  beeline > !connect jdbc:hive:// nouser nopassword

  本地模式中使用的JDBC的URL是jdbc:hive//。如果是集群中的配置,那么JDBC的URL通常是这样的形式:dbc:hive//<hostname>:<port>。

  <hostname>是Hive服务器的主机名,<port>是预先配置的端口号(默认为10000)。

  这样的情况下,我吗可以使用Beeline执行任何Hive语句,与使用CLI一样。

 

 

 

 

3、JDBC

  Java客户端可以使用预先提供的JDBC驱动来连接Hive。连接步骤和其他兼容JDBC的数据库一样。首先载入驱动,然后建立连接。

JDBC驱动的类名是org.apache.hadoop.hive.jdbc.HiveDriver。

  本地模式中使用的JDBC的URL是jdbc:hive://。

  如果是集群中的配置,那么JDBC的URL通常是这样的形式:jdbc:hive//<hostname>:<port>。

  <hostname>是Hive服务器的主机名,<port>是预先配置的端口号(默认为10000)。

 

  给一个例子,展示使用JDBC连接本地模式的Hive,并提交查询请求:

 

hive里的扩展接口