首页 > 其他分享 >Hive CLI禁用补充说明

Hive CLI禁用补充说明

时间:2022-10-04 13:31:15浏览次数:68  
标签:CLI 方式 禁用 Fayson 用户 hive Hive

温馨提示:如果使用电脑查看图片不清晰,可以使用手机打开文章单击文中的图片放大查看高清原图。


Fayson的github:

​https://github.com/fayson/cdhproject​


提示:代码块部分可以左右滑动查看噢


1.文档编写目的



在CDH官方文档中有说明,在集群启用了Sentry以后建议禁用Hive CLI,以防止用户绕过Sentry的授权,官方建议通过配置代理用户组的方式来实现。具体可以参考Fayson之前的文章《​​如何在CDH启用Kerberos的情况下安装及使用Sentry(二)​​》中第六章备注。采用此方式禁用Hive CLI之后,我们在使用Spark访问Hive的过程中发现,如果执行Spark作业的用户没有在Hive的代理用户中配置则该用户是没有权限访问Hive Metastore的。对于平台用户来说往往会有很多租户使用Spark访问Hive,这样需要在Hive的代理中配置多个组,不合理并不便于管理,以下Fayson会讨论几种实现禁用的方式。


2.禁用Hive CLI



方式1:


采用《​​如何在CDH启用Kerberos的情况下安装及使用Sentry(二)​​》中第六章备注的方式,即通过配置代理用户的方式限制只能某些用户可以使用Hive CLI,通常是Hive的管理员,这个是官方建议的方式。具体可以参考超链接中的文章。


方式2:


采用Hive官网上的实现方式,在执行hive命令前设置环境变量的方式


USE_DEPRECATED_CLI=false

(可左右滑动)


可以在CM上进行配置,如下:


Hive CLI禁用补充说明_spark


配置完成后,重新部署客户端及重启依赖的服务,在命令行使用hive命令验证


Hive CLI禁用补充说明_github_02


通过上述执行结果可以看到在执行hive命令时会自动的转到beeline的方式访问Hive。


方式3:


修改/opt/cloudera/parcels/CDH/lib/hive/bin/hive脚本文件方式

在脚本中找到如下代码:


if [ "$SERVICE" = "" ] ; then
if [ "$HELP" = "_help" ] ; then
SERVICE="help"
else
SERVICE="cli"
fi
fi

(可左右滑动)


将代码修改为如下:


if [ "$SERVICE" = "" ] ; then
if [ "$HELP" = "_help" ] ; then
SERVICE="help"
else
echo "Hive CLI is disabled"
exit
#SERVICE="cli"
fi
fi

(可左右滑动)


Hive CLI禁用补充说明_spark_03


在命令行执行hive命令测试


Hive CLI禁用补充说明_hive_04


注意该方式也需要修改Hive执行命令脚本的权限,防止其他用户直接修改了该脚本文件的权限,具体修改方法参考方式4,如下。


方式4:


直接将hive的脚本的权限修改为700仅root用户可以执行


chmod 700 /opt/cloudera/parcels/CDH/lib/hive/bin/hive 

(可左右滑动)


Hive CLI禁用补充说明_hive_05


使用非root用户执行hive命令


Hive CLI禁用补充说明_hive_06



3.总结



1.方式1是默认官方建议的方式,存在的问题主要是导致Spark SQL无法访问Hive Metastore。


2.方式2是Apache Hive官方的一种方式,但是很容易被任何用户绕过该限制,只需要在执行Hive CLI之前在export一次环境变量即可。


3.方式3和方式4的思路基本一致,只是方式3多了一个稍微友好的提示告诉用户Hive CLI已被禁用,然后通过修改脚本的权限来最终限制住普通用户执行Hive CLI。弊端在于需要在集群的所有节点修改hive脚本,并且在集群做升级后需要再次进行修改。另外该方式没办法阻止用户自己组织脚本内容来使用Hive CLI。


4.综上所述,Fayson个人建议在CDH集群中启用Sentry后,没必要禁用Hive CLI,虽然Sentry管不了Hive CLI,但毕竟Hive表底层的HDFS文件还有一层安全控制,而这一层的安全是通过Sentry的HDFS ACL同步来实现的。只是这种方式就会导致使用Hive CLI的用户没办法细粒度到column或view的权限,不过已经无伤大雅了,IT用户不用将这么细的内容告诉业务/开发用户即可。





提示:代码块部分可以左右滑动查看噢


为天地立心,为生民立命,为往圣继绝学,为万世开太平。

温馨提示:如果使用电脑查看图片不清晰,可以使用手机打开文章单击文中的图片放大查看高清原图。


Fayson的github:

​https://github.com/fayson/cdhproject​


如果需要在你的电脑上通过浏览器阅读Fayson的Hadoop实操的所有文章,你可以访问腾讯云+社区上Fayson的主页,查看所有历史文章,链接地址为:

​https://cloud.tencent.com/developer/column/2264/tag-0​


推荐关注Hadoop实操,第一时间,分享更多Hadoop干货,欢迎转发和分享。

Hive CLI禁用补充说明_hive_07

原创文章,欢迎转载,转载请注明:转载自微信公众号Hadoop实操



标签:CLI,方式,禁用,Fayson,用户,hive,Hive
From: https://blog.51cto.com/u_14049791/5731223

相关文章

  • 0641-5.16.1-如何禁用CDH5.16.1的Kerberos
    温馨提示:如果使用电脑查看图片不清晰,可以使用手机打开文章单击文中的图片放大查看高清原图。Fayson的github:​​https://github.com/fayson/cdhproject​​提示:代码块部分可......
  • 0458-Hive数据类型校验问题分析
    温馨提示:如果使用电脑查看图片不清晰,可以使用手机打开文章单击文中的图片放大查看高清原图。Fayson的github:​​https://github.com/fayson/cdhproject​​提示:代码块部分可......
  • 0508-如何使用Hadoop的Archive处理小文件
    温馨提示:如果使用电脑查看图片不清晰,可以使用手机打开文章单击文中的图片放大查看高清原图。Fayson的github:​​https://github.com/fayson/cdhproject​​提示:代码块部分可......
  • 0468-如何使用DBeaver访问Kerberos环境下的Hive
    温馨提示:如果使用电脑查看图片不清晰,可以使用手机打开文章单击文中的图片放大查看高清原图。Fayson的github:​​https://github.com/fayson/cdhproject​​提示:代码块部分可......
  • 0841-7.1.6-Aqua Data Studio工具安装及访问安全环境的Hive和Impala
    作者:冯庆煜1.文档编写目的AquaDataStudio是一款完整IDE的数据库开发工具,它提供3种主要功能:数据查询与管理工具。比对数据工具与源控制和文件系统的整合工具。帮助你创建,编......
  • 0840-6.3.4-Aqua Data Studio工具安装及访问安全环境的Hive和Impala
    作者:冯庆煜1.文档编写目的AquaDataStudio是一款完整IDE的数据库开发工具,它提供3种主要功能:数据查询与管理工具。比对数据工具与源控制和文件系统的整合工具。帮助你创建,编......
  • 0816-CDP Hive3升级说明
    文档编写目的CDH5中的Hive版本是1.1,而CDP7中的Hive版本为3。Hive3相对Hive1更新特别多,比如支持全新的ACIDv2机制,并且底层使用Tez和内存进行查询,相比MR的方式性能提升超过10......
  • 0869-7.1.7-如何在CDP中使用Hive Bulkload批量导入数据到HBase
    1.文档编写目的在遇到将Hive中的数据同步到HBase时,一般都是通过在Hive中创建映射HBase的表,然后通过insert的方式来实现,在数据量小的时候,往往还能接受,但是如果是大批量数据,除......
  • Windows下CLion中文乱码问题解决
    (目录)原因分析Windows内部采用UTF-16编码,对于中文操作系统使用GBK编码,但是CLion默认文本编码为UTF-8,当编码不一致时,就会造成输出乱码,甚至编译不通过。解决方案当然,对于......
  • vscode插件REST Client,替代postman
    如果只是简单的请求工作的话,这个插件也许跟方便使用方式准备工作安装该插件创建一个test.http(名字随意,后缀.http)文件朴素的请求后面必须有协议版本号HTTP/1.1......