From dc7f4a66efee8ab7064ae96a828c47dd29371d06 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=BD=97=E7=A5=A5?= <1366971433@qq.com> Date: Tue, 30 Apr 2019 17:48:33 +0800 Subject: [PATCH] modify --- README.md | 3 +- ...veCLI和Beeline命令行的基本使用.md | 4 +- .../Linux环境下Hive的安装部署.md | 71 +++++++++++++++++- pictures/hive-beeline-cli.png | Bin 0 -> 31280 bytes 4 files changed, 71 insertions(+), 7 deletions(-) create mode 100644 pictures/hive-beeline-cli.png diff --git a/README.md b/README.md index 9c4a165..72d112f 100644 --- a/README.md +++ b/README.md @@ -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) diff --git a/notes/HiveCLI和Beeline命令行的基本使用.md b/notes/HiveCLI和Beeline命令行的基本使用.md index f80544a..521b8af 100644 --- a/notes/HiveCLI和Beeline命令行的基本使用.md +++ b/notes/HiveCLI和Beeline命令行的基本使用.md @@ -135,9 +135,11 @@ hive > select ${hivevar:j} from emp; ### 2.1 HiveServer2 +Hive内置了HiveServer和HiveServer2服务,两者都允许客户端使用多种编程语言进行连接,但是HiveServer不能处理多个客户端的并发请求,所以产生的HiveServer2。 + HiveServer2(HS2)允许远程客户端可以使用各种编程语言向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 diff --git a/notes/installation/Linux环境下Hive的安装部署.md b/notes/installation/Linux环境下Hive的安装部署.md index 43327ee..9e8d8ce 100644 --- a/notes/installation/Linux环境下Hive的安装部署.md +++ b/notes/installation/Linux环境下Hive的安装部署.md @@ -1,10 +1,20 @@ # Linux环境下Hive的安装 -> Hive 版本 : hive-1.1.0-cdh5.15.2.tar.gz -> -> 系统环境:Centos 7.6 - + +## 一、安装Hive ### 1.1 下载并解压 @@ -118,3 +128,56 @@ HADOOP_HOME=/usr/app/hadoop-2.6.0-cdh5.15.2 在Mysql中也能看到Hive创建的库和存放元数据信息的表
+ + + +## 二、HiveServer2/beeline + +Hive内置了HiveServer和HiveServer2服务,两者都允许客户端使用多种编程语言进行连接,但是HiveServer不能处理多个客户端的并发请求,所以产生的HiveServer2。 + +HiveServer2(HS2)允许远程客户端可以使用各种编程语言向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 + + hadoop.proxyuser.root.hosts + * + + + hadoop.proxyuser.root.groups + * + +``` + +之所以要配置这一步,这是由于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 +``` + +
\ No newline at end of file diff --git a/pictures/hive-beeline-cli.png b/pictures/hive-beeline-cli.png new file mode 100644 index 0000000000000000000000000000000000000000..5786444e0816a9e6c5eddb432e2821d365c0088c GIT binary patch literal 31280 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 literal 0 HcmV?d00001