hiveserver2 和beeline_Hive-cli与Beeline的区别

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)的文件提供了一个表抽象和元数据服务。这些用户能够直接访问HDFS和metastore服务(该服务提供了一个访问元数据的API)。HDFS的访问权限控制是通过HDFS的权限管理机制实现的。而元数据的访问控制则需要由hive的配置来完成。

2.Hive作为一个SQL查询引擎。这是hive最常用的场景。这是SQL用户和BI工具的'Hive view',这种场景又可以分为如下两类:

a.Hive 命令行用户:这类用户可以直接访问HDFS和Hive metastore服务,这类场景类似于上面第一种场景。

需要说明的是,Hive CLI这种方式已经被官方舍弃,由beeline取代。

b.ODBC/JDBC 和其他 HiveServer2 API 用户(比如beeline),这类用户对于所有数据和元数据的访问都是通过HiveServer2来完成的。他们不会直接访问HDFS或者metastore服务。

授权模型介绍

1. Metastore server中基于存储的授权模型(Storage Based Authorization in the Metastore Server)

在上面的应用场景1和2a中,用户可以直接访问数据。Hive的配置将无法控制对数据的访问,HDFS的权限对表存储的访问就是一个事实的来源(不太懂什么意思)。通过启用Storage Based Authorization in the Metastore Server,就可以使用一个单一的来源并拥有一个一致性的数据和元数据授权策略模型。为了控制在元数据对象如数据库、表、分区上对元数据的访问,当你去访问这些对象在文件系统中对应的目录时将会检查权限。通过确保查询是由最终用户(需要将配置项hive.server2.enable.doAs设置为true,这也是其默认值)来运行,可以保护通过HiveServer2(上面的场景2b)进行的访问。

注意,通过使用HDFS ACL,在对文件系统的访问控制上我们会有很大的灵活性,相应的在Storage Based Authorization模型中也就会提供更多的灵活性了。该特性已经在Hive0.14中可用了。

2. HiveServer2中基于SQL标准的授权模型(SQL Standards Based Authorization in HiveServer2)

尽管Storage Based Authorization模型在数据库、表和分区层面可以提供访问控制,但是还无法在更精细的层面如列和视图提供权限控制,因为它的控制是通过对文件系统的目录和文件的访问控制来实现的,一个良好的授权访问控制模型的必要条件就是它能够提供用户需要访问的列和行的权限控制。而文件系统级别的访问控制只能提供对整个文件的控制,HiveServer2满足这个条件,因为它有一个理解(通过使用SQL)行和列的API,它能够提供你的SQL查询所需要的对列和行访问的最小权限。

SQL Standards Based Authorization(在Hive0.13中引入,HIVE-5837)的使用能够提供细粒度的访问控制,它是基于SQL标准来进行授权的,使用类似于 grant/revoke 的语句来控制访问。通过HiveServer2的配置可以使用这个授权模型。

注意,对于上面提到的2a场景(HIVE CLI),SQL Standards Based Authorization是无法使用的。因为Hive CLI是直接访问HDFS的,用户可以非常容易越过SQL Standards Based Authorization的检查,甚至完全可以禁用它。禁用此功能可避免给用户带来错误的安全性。因此在生产环境中,为了提高整个环境的安全性,我们应该尽量使用HiveServer2服务,同时也不要给用户提供Hive CLI客户端工具。

3. 使用Apache Ranger & Sentry 进行授权

Apache Ranger和Apache Sentry都是Apache中的项目,他们通过使用hive提供的插件进行授权管理。

通过使用他们可以获得更多的功能,比如,使用Ranger可以通过web的方式查看和管理策略,查看审计信息,基于运行时的特性可以动态的控制行和列的访问控制(包括column masking)。

4.Hive旧的默认的授权模型(传统模型)

Hive Old Default Authorization(Hive2.0.0之前的默认模型)是hive早期版本中使用的一种授权模型。这种授权模型并不能完全的控制访问,有很多没有解决的安全漏洞。比如,没有定义授予用户权限所需的权限,任何用户都能够给他们自己授权来访问一个表或者数据库。

这个模型类似于SQL standards based authorization模型,他们都使用了grant/revoke语句进行访问控制。但是它的控制策略是不同于 SQL standards based authorization的,而且他们互相也不兼容。这种模型是支持Hive CLI的,但是对于Hive CLI这不是一种安全的授权模型

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/550222.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

交换系统可以在计算机网络应用吗,数据通信交换技术在计算机网络中的应用

【摘要】 本文主要针对于计算机网络中的数据通信交换技术构架进行全面的分析,要充分结合计算机通信的全新理念,对于电路进行交换和分组,从而能够进行技术上的交换。【关键词】 计算机网络 数据通信交换技术 应用随着现阶段的计算机网络不断的…

docker卸载mysql_mysql – 删除容器时docker volume会发生什么

在我们继续之前,我认为有两个概念需要解释. Docker镜像和docker容器.容器是由docker管理的基于docker镜像的运行进程.有两种方法可以创建图像:>您指定具有所有依赖项的Dockerfile,并使用docker build构建它.然后它保存在您的本地注册表中(或者您可以将其推送到中…

深入理解Asp.net MVC路由

深入理解Asp.net MVC路由 吴剑 2012-10-22 原创文章,转载必需注明出处:http://www.cnblogs.com/wu-jian/ 前言 从.Net Framework 1.0时代开始写WebForm,直到最近断断续续看到Razor的语法风格,然后搜了Asp.net MVC的一些介绍&#…

在网络上提供资源的计算机,在计算机网络中通常把提供并管理共享资源的计算机称为...

在计算机网络中通常把提供并管理共享资源的计算机称为服务器。在微机网络中,服务器是提供并管理共享资源的计算机。目前,网络中客户机/服务器(Client/Server)方式是典型的工作模式。由客户机(Client)系统向服务器发送操作请求,服务…

移动端实现文字轮播_移动端轮播图实现

1:HTML样式*{margin: 0;padding: 0;}html,body{height: 100%;overflow: hidden;}#wrap{height: 100%;overflow: hidden;}.carousel-wrap{position: relative;}.carousel-wrap > .list{list-style: none;overflow: hidden;position: absolute;}.carousel-wrap >…

jQuery模糊选择

属性字头选择器(Attribute Contains Prefix Selector) jQuery 属性字头选择器的使用格式是 jQuery(‘[attribute|value]‘) ,例如 jQuery(‘[herflang|en]‘) 这句代码执行时将会选择文档中所有含有 herflang 属性,并且 herflang …

maya批量操作mel_MAYA对多个模型使用当前设置批量渲染并保存图片的MEL脚本

更新日志2018-10-23:添加了对文件名为定长数字(0000, 0001, 0002, ect.)的模型的支持;输出图片扩展名使用渲染设置中的扩展名。有时候需要对一组模型使用相同的材质和相同的渲染设置渲染并保存为图片,以往只能一个个手动导入、替换材质、渲染…

高中计算机学业水平测试知识点总结,高中化学学业水平测试知识点总结

高中化学学业水平测试知识点总结大家有总结吗?下面小编整理了高中化学学业水平测试知识点总结,欢迎大家参考借鉴!高中化学学业水平测试知识点总结第一章从实验学化学 第一节化学实验基本方法一.化学实验安全1. 遵守实验室规则。2. 了解安全措…

oracle19c的版本号_升级到 oracle 19c 的版本差异

引用自: Doc ID 1577660.1升级到19c的升级兼容性能够直接升级到Oracle Database 19c的数据库最小版本源库目标库18 (所有版本)19c12.2.0.119c12.1.0.219c11.2.0.419c其他未在上面提到的数据库发布/版本不支持直接升级到19c。所以首先升级到中间Oracle数据库版本&…

旋转变换,对某个点进行绕x,y,z的变换。

简介 旋转变换&#xff0c;对某个点进行绕x&#xff0c;y&#xff0c;z的变换。 代码 #include <iostream> #include <vector> #include <algorithm> // -------------------- OpenMesh using namespace std; #define PI 3.1415926static void MatVec3(const…

chrome html 读写文件路径,Chrome浏览器支持直接读写本地文件了

本文首发于公众号&#xff1a;符合预期的CoyPan写在前面最新版的Chrome(Chrome 83, 须要开启权限)支持直接读写本地文件了。javascript开启方法&#xff1a;Chrome浏览器升级到83版本以上&#xff1b;访问chrome://flags/&#xff0c;开启 Native File System API 选项当前如何…

最长单调递增子序列_最长递增子序列(动态规划 + 二分搜索)

题目给定数组arr&#xff0c;返回arr的最长递增子序列举例&#xff1a;arr [2,1,5,3,6,4,8,9,7]&#xff0c;返回的最长递增子序列为[1,3,4,8,9]要求&#xff1a;如果arr的长度为N&#xff0c;请实现时间复杂度为O(nlogn)的方法。分析这一题也是经典的动态规划&#xff0c;那么…

在正式使用计算机账务系统的银行对账功能,用友ERP-U8管理系统认证考试理论题...

《电算化会计》自测题(理论部分附答案)一、判断题&#xff1a;1.系统管理是用友ERP管理系统的运行基础&#xff0c;它为其他子系统提供了公共的账套、年度账及其它相关基础数据&#xff0c;各子系统的操作员也需要在系统管理中统一设置并分配权限。√2.用户自动拥有所属角色所拥…

数据异常排查

数据异常是每个数据分析师最常见的工作之一&#xff0c;大部分人缺乏方法论&#xff0c;排查起来没有方向感和层次感&#xff0c;这里看看&#xff0c;那里看看&#xff0c;非常耽误时间&#xff0c;可能最后也没有结果。所以&#xff0c;需要认真去制定一套标准化流程去做这件…

二叉排序树(BinarySortTree)

相关知识&#xff1a; 二叉树是每个节点最多有两个子树的树结构。通常子树被称作“左子树”&#xff08;left subtree&#xff09;和“右子树”&#xff08;right subtree&#xff09;。 二叉树中的左右子树不可随意交换。 根节点&#xff1a;一棵树最上面的节点称为根节点。 父…

fpga初始化错误_FPGA复位设计常见问题及处理方法

一开始接触到FPGA&#xff0c;肯定都知道”复位“&#xff0c;即简单又复杂。简单是因为初学时&#xff0c;只需要按照固定的套路——按键开关复位&#xff0c;见寄存器就先低电平复位一次&#xff0c;这样一般情况可以解决99%的问题&#xff0c;甚至简单的设计&#xff0c;就不…

惠普台式计算机系列,惠普发布设计笔记本、设计台式电脑等Z系列产品

惠普发布新一代惠普Z系列产品&#xff0c;包含设计笔记本、设计台式电脑、显示器和VR等产品。惠普Z系列设计笔记本HP ZBook 14u G6配有4K显示屏&#xff0c;支持100% Adobe RGB色域显示&#xff0c;拥有600尼特亮度&#xff0c;满足创意族群对色彩的精确要求。HP ZBook 15u G6图…

计算机应用需要英语水平,英语对计算机专业的重要性及如何提高英语水平

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼计算机研发人员要掌握的专业英语要求教高&#xff0c;必须掌握大量的专业术语和缩略语; 熟练掌握语法和惯用法的表达方式和功能; 能阅读英文文档和技术资料&#xff0c;阅读熟读在100词/分钟以上; 能借助字典翻译专业技术图书; 能使…

python asyncio 并发编程_asyncio并发编程

一. 事件循环1.注&#xff1a;实现搭配&#xff1a;事件循环回调(驱动生成器【协程】)epoll(IO多路复用)&#xff0c;asyncio是Python用于解决异步编程的一整套解决方案&#xff1b;基于asynico&#xff1a;tornado&#xff0c;gevent&#xff0c;twisted(Scrapy&#xff0c;dj…

ORM多表操作之多对多查询

创建多对多的关系 authormodels.ManyToManyFleld(" ")  (推荐) 书籍对象它的所有关联作者 book_obj.authors.all() 掌握&#xff1a;通过filter values(双下划线)进行多对多的关联查询&#xff08;形式一对多&#xff09; django是将python语句翻译成sql语句执行 聚…