beeline执行命令的用户id

yi0zb3m4  于 2021-05-31  发布在  Hadoop
关注(0)|答案(2)|浏览(340)

我试图了解在运行配置单元查询时,各种id之间的关系。我正在考虑下面的场景,这是针对实际集群的建议。 ClientMachine ---连接/ssh--> GatewayNode (说user1,servera)--> HiveServer2( ServerB ---> Driver --> Remote MetaData Service (serverC) --> MySql (serverD) 实际数据存储在 HDFS ,它可以有自己的用户集。
现在,我怀疑的是,我们每个层都有不同的用户,例如mysql db、hdfs、hiveserver2等;所以,如果我以user1身份登录到gatewaynode,并且该userid不在hdfs或mysql中,那么这种情况是如何工作的呢?
有人能帮助理解这一点吗?

3okqufwl

3okqufwl1#

hdfs/hive应配置为共享用户帐户。理想情况下,不需要与后端数据库具有相同的用户/密码信息。e、 g.您使用metastore用户和密码配置配置单元站点,但这不是hadoop用户。
这可以由外部系统通过可插入身份验证模块(pam)、kerberos(例如activedirectory)或ldap来启用。推荐后两种。
默认情况下,hive和hadoop没有身份验证,用户名按字面意思是字符串。
有关详细信息,请参阅有关身份验证的配置单元wiki
如果您想要一个安全的hadoop集群,您需要设置kerberized环境,在每个jvm环境上设置java密钥库,理想情况下使用apache ranger或sentry等工具来锁定访问并审核集群

tmb3ates

tmb3ates2#

只是试图提供一个易于遵循的流程。
当您考虑组件/节点流时: ClientMachine ---connects / ssh--> GatewayNode (say user1, serverA) ---> HiveServer2( ServerB ---> Driver --> Remote MetaData Service (serverC) --> MySql (serverD) 请注意,我们需要考虑什么是需要与服务提供商进行身份验证以使其服务可用的标识。有了这个,让我们从右到左开始:
mysql:它托管metastore数据。只要客户机(这里是metastore服务)已经用它进行了身份验证,并且用一个同意/配置的mysql db用户和密码打开了一个经过身份验证的会话,这个服务提供者就可以了。它不需要最终用户(即user1)可见性。
远程元数据服务:正如所暗示的,它主要向hiveserver2提供元数据服务,但是可以被其他服务(如spark、impala等)使用。这实际上是一个基于thrift的服务器,因此通常的身份验证模式是基于kerberos的。因此,就身份验证而言,这似乎具有最终用户可见性。另请参阅有关用户模拟的metastore安全指南。
hiveserver2:cloudera的详细安全配置指南。这应该是授权最终用户(user1)使用任何方法中解释的链接和链接中提供的其他答案你的问题。
但是特别感兴趣的是关于hiveserver2模拟的部分
hiveserver2中的模拟支持允许用户作为连接的用户而不是启动hiveserver2守护程序的超级用户来执行查询和访问hdfs文件。模拟允许管理员使用hdfs文件和目录权限在文件级别强制执行访问策略。

相关问题