This commit is contained in:
罗祥
2019-04-30 17:48:33 +08:00
parent e77082ade7
commit dc7f4a66ef
4 changed files with 71 additions and 7 deletions

View File

@ -60,8 +60,7 @@
1. [数据仓库Hive简介](https://github.com/heibaiying/BigData-Notes/blob/master/notes/Hive.md)
2. [Linux环境下Hive的安装部署](https://github.com/heibaiying/BigData-Notes/blob/master/notes/installation/Linux%E7%8E%AF%E5%A2%83%E4%B8%8BHive%E7%9A%84%E5%AE%89%E8%A3%85%E9%83%A8%E7%BD%B2.md)
3. 连接Hive的三种方式
4. [HiveCLI和Beeline命令行的基本使用](https://github.com/heibaiying/BigData-Notes/blob/master/notes/HiveCLI和Beeline命令行的基本使用.md)
4. [Hive CLI和Beeline命令行的基本使用](https://github.com/heibaiying/BigData-Notes/blob/master/notes/HiveCLI和Beeline命令行的基本使用.md)
5. [Hive 核心概念讲解](https://github.com/heibaiying/BigData-Notes/blob/master/notes/Hive核心概念讲解.md)
6. [Hive 常用DDL操作](https://github.com/heibaiying/BigData-Notes/blob/master/notes/Hive常用DDL操作.md)
7. [Hive 分区表和分桶表](https://github.com/heibaiying/BigData-Notes/blob/master/notes/Hive分区表和分桶表.md)

View File

@ -135,9 +135,11 @@ hive > select ${hivevar:j} from emp;
### 2.1 HiveServer2
Hive内置了HiveServer和HiveServer2服务两者都允许客户端使用多种编程语言进行连接但是HiveServer不能处理多个客户端的并发请求所以产生的HiveServer2。
HiveServer2HS2允许远程客户端可以使用各种编程语言向Hive提交请求并检索结果支持多客户端并发访问和身份验证。HS2是由多个服务组成的单个进程其包括基于Thrift的Hive服务TCP或HTTP和用于Web UI的Jetty Web服务器。
HiveServer2拥有自己的CLI(Beeline)Beeline是一个基于SQLLine的JDBC客户端由于HiveServer2是Hive开发的重点所以上面介绍的Hive CLI已经不推荐使用了官方更加推荐使用Beeline。
HiveServer2拥有自己的CLI(Beeline)Beeline是一个基于SQLLine的JDBC客户端由于HiveServer2是Hive开发维护的重点(Hive0.15后就不再支持hiveserver)所以Hive CLI已经不推荐使用了官方更加推荐使用Beeline。
### 2.1 Beeline

View File

@ -1,10 +1,20 @@
# Linux环境下Hive的安装
> Hive 版本 hive-1.1.0-cdh5.15.2.tar.gz
>
> 系统环境Centos 7.6
<nav>
<a href="#一安装Hive">一、安装Hive</a><br/>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#11-下载并解压">1.1 下载并解压</a><br/>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#12-配置环境变量">1.2 配置环境变量</a><br/>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#13-修改配置">1.3 修改配置</a><br/>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#14-拷贝数据库驱动">1.4 拷贝数据库驱动</a><br/>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#15-初始化元数据库">1.5 初始化元数据库</a><br/>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#16-启动">1.6 启动</a><br/>
<a href="#二HiveServer2beeline">二、HiveServer2/beeline</a><br/>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#21-修改Hadoop配置">2.1 修改Hadoop配置</a><br/>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#22-启动hiveserver2">2.2 启动hiveserver2</a><br/>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#23-使用beeline">2.3 使用beeline</a><br/>
</nav>
## 一、安装Hive
### 1.1 下载并解压
@ -118,3 +128,56 @@ HADOOP_HOME=/usr/app/hadoop-2.6.0-cdh5.15.2
在Mysql中也能看到Hive创建的库和存放元数据信息的表
<div align="center"> <img src="https://github.com/heibaiying/BigData-Notes/blob/master/pictures/hive-mysql-tables.png"/> </div>
## 二、HiveServer2/beeline
Hive内置了HiveServer和HiveServer2服务两者都允许客户端使用多种编程语言进行连接但是HiveServer不能处理多个客户端的并发请求所以产生的HiveServer2。
HiveServer2HS2允许远程客户端可以使用各种编程语言向Hive提交请求并检索结果支持多客户端并发访问和身份验证。HS2是由多个服务组成的单个进程其包括基于Thrift的Hive服务TCP或HTTP和用于Web UI的Jetty Web服务器。
HiveServer2拥有自己的CLI(Beeline)Beeline是一个基于SQLLine的JDBC客户端。由于HiveServer2是Hive开发维护的重点(Hive0.15后就不再支持hiveserver)所以Hive CLI已经不推荐使用了官方更加推荐使用Beeline。以下主要讲解Beeline的使用配置。
### 2.1 修改Hadoop配置
修改 hadoop 集群的 core-site.xml 配置文件增加如下配置指定hadoop的root用户可以代理本机上所有的用户。
```xml
<property>
<name>hadoop.proxyuser.root.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.root.groups</name>
<value>*</value>
</property>
```
之所以要配置这一步这是由于hadoop 2.0以后引入了一个安全伪装机制使得hadoop不允许上层系统例如hive直接将实际用户传递到hadoop层而是将实际用户传递给一个超级代理由该代理在hadoop上执行操作避免任意客户端随意操作hadoop。如果不配置这一步在之后的连接中可能会抛出`AuthorizationException`异常。
>如果想进一步了解Hadoop的用户代理机制可以参考这篇博客[hadoop的用户代理机制]([https://blog.csdn.net/u012948976/article/details/49904675#%E5%AE%98%E6%96%B9%E6%96%87%E6%A1%A3%E8%A7%A3%E8%AF%BB](https://blog.csdn.net/u012948976/article/details/49904675#官方文档解读))或者官方文档[Proxy user - Superusers Acting On Behalf Of Other Users](http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/Superusers.html)
### 2.2 启动hiveserver2
由于上面已经配置过环境变量,直接启动即可,这里可以使用后台启动:
```shell
# nohup hiveserver2 &
```
### 2.3 使用beeline
可以使用以下命令进入beeline交互式命令行出现`Connected`则代表连接成功。
```shell
# beeline -u jdbc:hive2://hadoop001:10000 -n root
```
<div align="center"> <img width='700px' src="https://github.com/heibaiying/BigData-Notes/blob/master/pictures/hive-beeline-cli.png"/> </div>

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB