Hive-cli与Beeline的区别
hive-cli 是hive连接hivesever的命令行工具,从hive出生就一直存在,但随着hive功能的增强、bug的修复、版本升级,hive-cli结构的局限性跟不上hive的发展,如果强行更改就不能满足向下兼容,就出现了全新的beeline命令行结构,即就是hive-cli能做的事beeline都能做,而beeline能做的事hive-cli不一定能做。
Hive-cli的特点
1、Hive-cli是通过MetaServer访问元数据的
2、CliDriver是SQL本地直接编译,然后访问MetaStore,提交作业,是重客户端。
3、运行hive会自动运行一个RunJar进程,进程是提供thrift的RPC的,就是metastore服务。
Beeline的特点
1、beeline是一个纯粹的客户端,用来连接hiverserver2。
2、BeeLine是把SQL提交给HiveServer2,由HiveServer2编译,然后访问MetaStore,提交作业,是轻客户端。
3、多用户、安全、可以实现其权限控制。
区别
beeline有权限控制而hivecli没有,因为hivecli读取元数据绕过了HiveServer2直接从metaserver访问元数据,而beeline通过HiveServer2的管控,实现其多用户的权限控制。
Hive的授权机制介绍
Hive的授权机制
当前hive支持多种授权模型以满足不同的应用场景
下面是2种常见的Hive应用场景
1.hive作为一个表存储层,作为Hive HCatalog API 的用户就是这种场景,如Apache Pig,MapReduce和一些强大的并行处理数据库(Cloudera Impala, Facebook Presto, Spark SQL等等)。这种场景中,hive为在存储中(通常是HDFS)的文件提供了一个表抽象和元数据服务。这些用户能够