|NO.Z.00021|——————————|^^ 配置 ^^|——|Hadoop&Hive.V21|——|Hive.v21|Hive元数据之metastore三种方式.v03|
一、HiveServer2
### --- HiveServer2
~~~ HiveServer2是一个服务端接口,使远程客户端可以执行对Hive的查询并返回结果。
~~~ 目前基于Thrift RPC的实现是HiveServer的改进版本,并支持多客户端并发和身份验证,
~~~ 启动hiveServer2服务后,就可以使用jdbc、odbc、thrift 的方式连接。
~~~ Thrift是一种接口描述语言和二进制通讯协议,它被用来定义和创建跨语言的服务。
~~~ 它被当作一个远程过程调用(RPC)框架来使用,是由Facebook为“大规模跨语言服务开发”而开发的。
~~~ HiveServer2(HS2)是一种允许客户端对Hive执行查询的服务。
~~~ HiveServer2是HiveServer1的后续 版本。
~~~ HS2支持多客户端并发和身份验证,旨在为JDBC、ODBC等开放API客户端提供更好的支持。
~~~ HS2包括基于Thrift的Hive服务(TCP或HTTP)和用于Web UI 的Jetty Web服务器。

### --- HiveServer2作用:
~~~ 为Hive提供了一种允许客户端远程访问的服务
~~~ 基于thrift协议,支持跨平台,跨编程语言对Hive访问
~~~ 允许远程访问Hive
二、HiveServer2配置:配置规划:
| 节点 | HiveServer2 | client(beeline) |
| linux121 | ||
| linux122 | √ | |
| linux123 | √ |
三、配置步骤:
### --- 修改集群上的 core-site.xml,增加以下内容:
[root@linux121 ~]# vim /opt/yanqi/servers/hadoop-2.9.2/etc/hadoop/core-site.xml
<!-- HiveServer2 连不上10000;hadoop为安装用户 -->
<!-- root用户可以代理所有主机上的所有用户 -->
<property>
<name>hadoop.proxyuser.root.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.root.groups</name>
<value>*</value>
</property>
[root@linux121 ~]# stop-dfs.sh
### --- 修改 集群上的 hdfs-site.xml,增加以下内容:
[root@linux121 ~]# vim /opt/yanqi/servers/hadoop-2.9.2/etc/hadoop/hdfs-site.xml
<!-- HiveServer2 连不上10000;启用 webhdfs 服务 -->
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
~~~ # 发送到其它节点上
[root@linux121 ~]# cd /opt/yanqi/servers/hadoop-2.9.2/etc/hadoop/
[root@linux121 hadoop]# scp core-site.xml linux122:$PWD
core-site.xml 100% 1268 24.2KB/s 00:00
[root@linux121 hadoop]# scp core-site.xml linux123:$PWD
core-site.xml 100% 1268 735.4KB/s 00:00
[root@linux121 hadoop]# scp hdfs-site.xml linux122:$PWD
hdfs-site.xml 100% 1196 23.8KB/s 00:00
[root@linux121 hadoop]# scp hdfs-site.xml linux123:$PWD
hdfs-site.xml
[root@linux121 ~]# start-dfs.sh
### --- 启动linux123上的 HiveServer2 服务
~~~ # 启动 hiveserver2 服务
[root@linux123 ~]# nohup hiveserver2 &
~~~ # 检查 hiveserver2 端口
[root@linux123 ~]# lsof -i:10000
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
java 14577 root 522u IPv4 373798 0t0 TCP *:ndmp (LISTEN)
[3]+ Exit 255 nohup hiveserver2
~~~ # 从2.0开始,HiveServer2提供了WebUI
~~~ # 还可以使用浏览器检查hiveserver2的启动情况。http://linux123:10002/

四、启动 linux122 节点上的 beeline
### --- 启动 linux122 节点上的 beeline
~~~ Beeline是从 Hive 0.11版本引入的,是 Hive 新的命令行客户端工具。
~~~ Hive客户端工具后续将使用Beeline 替代 Hive 命令行工具 ,
~~~ 并且后续版本也会废弃掉 Hive 客户端工具。
[root@linux122 ~]# cd /opt/yanqi/servers/hive-2.3.7/bin/
[root@linux122 bin]# ./beeline // 什么都没有连接上
Beeline version 2.3.7 by Apache Hive
beeline> !connect jdbc:hive2://linux123:10000 // 连接到数据库上
0: jdbc:hive2://linux123:10000> show databases; // 此刻可以查询到数据
+----------------+
| database_name |
+----------------+
| default |
| mydb |
| mydb1 |
+----------------+
beeline> !connect jdbc !connect jdbc:hive2://linux123:10000
Enter username for jdbc:hive2://linux123:10000: use mydb;
Enter username for jdbc:hive2://linux123:10000: show tables;
Enter username for jdbc:hive2://linux123:10000: select * from emp;
Enter username for jdbc:hive2://linux123:10000: create table tabtest1 (c1 int, c2 string);
0: jdbc:hive2://linux123:10000> !connect jdbc:mysql://linux123:3306
0: jdbc:hive2://linux123:10000> !help
0: jdbc:hive2://linux123:10000> !quit
Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart
——W.S.Landor
浙公网安备 33010602011771号