EMR Hive 读写分离

EMR Hive 读写分离

💡 原文中文,约2200字,阅读约需6分钟。
📝

内容提要

本文介绍了在EMR集群中实现Hive数据库中某个数据库下表的读写分离的方法,包括修改EMR集群的hive-site参数和创建只读用户。作者是亚马逊云科技高级架构师黄海波。

🔎

延伸解读

为何选择轻量级读写分离方案

文章指出,启用Kerberos和Ranger可实现细粒度控制,但会提升系统复杂度和运维难度。对于仅需表级读写分离的场景,通过修改hive-site参数和创建只读用户即可满足需求,且无需重启集群或启用额外安全组件,适合无法启用Kerberos和Ranger的现有EMR集群。

实施中的关键配置与权限设置

实现读写分离需在EMR控制台修改hive-site参数,启用Hive客户端授权并设置表创建者自动获得ALL权限。随后在Master节点创建Linux只读用户,为其分配HDFS目录权限,并通过GRANT命令授予特定表的SELECT权限。这些步骤需在集群所有实例组上同步配置。

验证只读用户权限的有效性

创建只读用户后,需登录该用户测试增删改操作是否被拒绝,并验证SELECT查询正常。文章示例中,只读用户执行truncate、drop、create、insert等操作应失败,而select操作应成功。这确保了BI团队只能读取数据,避免误操作影响数仓稳定性。

❓

Q&A

如何在EMR集群中实现Hive数据库的读写分离?

可以通过修改EMR集群的hive-site参数和创建只读用户来实现Hive数据库的读写分离。

为什么需要在Hive数据库中实现读写分离?

为了避免BI分析团队误操作导致数仓系统崩溃,只提供只读访问权限。

在EMR集群中,如何配置hive-site参数以启用Hive客户端授权?

需要在EMR控制台配置hive.security.authorization.enabled为true,并设置hive.security.authorization.createtable.owner.grants为ALL。

如何创建只读用户并赋予Hive表的权限?

在Master节点上创建Linux用户,并通过GRANT命令将表的SELECT权限赋予该用户。

在没有启用Kerberos和Ranger的情况下,如何实现Hive的细粒度控制?

可以通过修改hive-site参数和创建只读用户来实现基本的细粒度控制,而不依赖于Kerberos和Ranger。

如何测试只读用户的操作权限是否正常?

可以通过登录只读用户并执行增删改查操作来测试其权限是否正常。

🏷️

标签

➡️

继续阅读