Hive 的三种连接方式

一、CLI连接

1
2
3
4
5
6
[hadoop@hadoop2 sbin]$ hive
hive> show databases;
OK
default
Time taken: 0.788 seconds, Fetched: 1 row(s)
hive>

启动成功的话如上所示,接下来便可以做 hive 相关操作

补充:
1、上面的 hive 命令相当于在启动的时候执行:hive --service cli
2、使用 hive --help,可以查看 hive 命令可以启动那些服务;
3、通过 hive --service serviceName --help 可以查看某个具体命令的使用方式。

二、HiveServer2/beeline

在现在使用的最新的 hive-2.3.3 版本中:都需要对 hadoop 集群做如下改变,否则无法使用

2.1 修改 HDFS 配置

修改 hadoop 集群的 hdfs-site.xml 配置文件,加入一条配置信息,表示启用 webhdfs

1
2
3
4
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>

修改 hadoop 集群的 core-site.xml 配置文件,加入两条配置信息,表示设置 hadoop的代理用户

1
2
3
4
5
6
7
8
<property>
<name>hadoop.proxyuser.hadoop.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.hadoop.groups</name>
<value>*</value>
</property>

配置解析:
hadoop.proxyuser.hadoop.hosts 配置成*的意义,表示任意节点使用 hadoop 集群的代理用户 hadoop 都能访问 hdfs 集群;hadoop.proxyuser.hadoop.groups 表示代理用户所属组。

以上操作做好了之后,将配置分发到hadoop各节点(至少要分发到namenodebeeline节点),并重启一下HDFS集群

2.2 启动 hiveserver2 服务

1
2
3
[hadoop@hadoop1 bin]$ ./hiveserver2
或启动为后台:
[hadoop@hadoop1 bin]$ nohup ./hiveserver2 1>/var/log/hiveserver.log 2>/var/log/hiveserver.err &

2.3 使用 beeline 客户端连接

1
2
3
4
5
6
7
8
9
[hadoop@hadoop2 bin]$ ./beeline -u jdbc:hive2://hadoop1:10000 -n hadoop
0: jdbc:hive2://hadoop1:10000> show databases;
+----------------+
| database_name |
+----------------+
| default |
+----------------+
1 row selected (1.325 seconds)
0: jdbc:hive2://hadoop1:10000>

-u : 指定元数据库的链接信息
-n : 指定用户名和密码

或者先执行 beeline

1
2
3
4
5
6
[hadoop@hadoop2 bin]$ ./beeline
beeline> !connect jdbc:hive2://hadoop1:10000
Connecting to jdbc:hive2://hadoop1:10000
Enter username for jdbc:hive2://hadoop1:10000: hadoop
Enter password for jdbc:hive2://hadoop1:10000: *******
0: jdbc:hive2://hadoop1:10000>

三、Web UI

Hive Web 界面是使用 Hive命令行界面的替代方法。
Hive Web 界面,缩写为 HWI,是一个简单的图形用户界面 (GUI)。

HWI 仅在 2.2.0 之前的 Hive 版本中可用。它已被HIVE-15622删除。

而2.2.0之后的Web UI(HiveServer2)只提供了服务状态查看能力。

3.1 HiveServer2 的 WEB UI

修改 hive-site.xml 配置

1
2
3
4
5
6
7
8
<property>
<name>hive.server2.webui.host</name>
<value>0.0.0.0</value>
</property>
<property>
<name>hive.server2.webui.port</name>
<value>10002</value>
</property>

启动 HiveServer2

1
[hadoop@hadoop1 ~]$ ./hive-2.3.9/bin/hiveserver2

访问 http://hiveserver2:10002

图片1

-------------本文结束感谢您的阅读-------------