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 0000000..5786444 Binary files /dev/null and b/pictures/hive-beeline-cli.png differ