1.3.4 Hive开发环境

在开发过程中,Hive提供了两种命令行工具:CLI与Beeline,分别对应hive与beeline命令。CLI工具一般在Hive主机上使用,而Beeline支持远程连接。使用Beeline需要首先在Hive主机中启动HiveServer2服务。

使用Beeline连接Hive:

#  在Hive 主机执行
$ hive --service hiveserver2&
#  可在任意客户端执行
$ beeline -u jdbc:hive2://localhost:10000
#  交互式执行HQL
0:jdbc:hive2://localhost: 10000> show tables;

其中,10000为HiveServer2默认端口,其可通过“hive.server2.thrift.port”参数进行修改。默认情况下启动HiveServer2会同时启动一个内置的元数据服务。

注意

HiveServer2进程建议在后台运行:

nohup hive --service hiveserver2&

CLI和Beeline均支持两种模式:命令行模式和交互模式。前面介绍的方式均属于交互模式。Hive支持使用命令直接运行HQL语句或者包含一系列HQL语句的文件。

【语法】

hive -e <HQL>
hive -f <HQL FILE>
beeline –u <JDBC  Url> -e <HQL>
beeline –u <JDBC Ur l> -f <HQL FILE>

下面分别使用CLI和Beeline查看Hive所有数据库:

$ hive -e 'show databases;'
$ beeline -u jdbc:hive2://localhost:10000 -e 'show databases;show tables'
注意

请使用引号包含HQL语句,多条HQL之间使用分号分隔。

Hive也可以使用文件来管理HQL,然后通过“-f”选项执行。

$ vi showdbs.hql
#  输入HQL语句
show databases;
$ hive -f showdbs.hql
$ beeline -u jdbc:hive2://lo calhost:10000 -f showdbs.hql

除了CLI和Beeline,还有多种第三方工具均可以很方便地进行Hive开发,下面分别对它们进行简单介绍。

1. HUE

Hadoop用户经验(Hadoop User Experience,HUE)集成在CDH中,是一个开源SQL分析平台,有时也称为Hadoop UI。通过HUE可以在浏览器中与Hadoop集群中的多种组件(如Hive、Pig、Impala等)进行交互以实现数据的分析处理。

如果选用了Cloudera的CDH版本,则适合选择HUE进行Hive开发,开发界面如图1.6所示。

图1.6 选择HUE开发Hive界面

2. Ambari Hive View

Apache Ambari是一种基于Web的工具,支持Apache Hadoop集群的管理和监控。Hive View是Ambari中的一个组件。Hortonworks的HDP集成了Ambari,所以使用HDP平台时选择Ambari更合适。Ambari开发界面如图1.7所示。

图1.7 Ambari Hive View开发界面

3. Zeppelin

Apache Zeppelin是一个基于Web的Notebook,其支持多种语言、多种环境下的交互式数据分析,包括:Python(Spark)、Scala(Spark)、Spark SQL、Hive、Shell等。

Zeppelin核心概念是解释器(Interpreter)插件。Interpreter允许用户指定一种语言或者数据处理引擎。当前已经实现的Interpreter有Python解释器、Spark SQL解释器、Shell解释器、Hive解释器和JDBC解释器等。

针对Hive而言,新版本的Hive解释器已被合并至JDBC解释器中,须首先做如下配置。

➢ default.driver:org.apache.hive.jdbc.HiveDriver(默认)。

➢ default.url:jdbc:hive2://HIVESERVER:10000。

然后输入“%hive”后开始HQL语句输入。Zeppelin开发界面如图1.8所示。

图1.8 Zeppelin开发界面