hadoop - beeline 执行命令的用户 id

标签 hadoop hive hadoop2 hive-metastore

当我们运行 Hive 查询时,我试图了解各种 ID 之间的关系。 我正在考虑以下场景,建议用于真实集群。

ClientMachine ---connects/ssh--> GatewayNode (比如 user1, serverA) ---> HiveServer2( ServerB -- -> Driver --> Remote MetaData Service (serverC) --> MySql (serverD)

实际数据存储在 HDFS 中,它可以有自己的一组用户。

现在,我的疑问是,我们每一层都有不同的用户,例如 MySQL DB、HDFS、HiveServer2 等;因此,如果我以 user1 身份登录到 GatewayNode,并且该用户 ID 不在 HDFS 或 MySql 中,这种情况如何工作?

任何人都可以帮助理解这一点吗?

最佳答案

HDFS/Hive 应配置为共享用户帐户。理想情况下,不要与后端数据库具有相同的用户/密码信息。例如。您使用 Metastore 用户和密码配置配置单元站点,但这不是 Hive 用户的 Hadoop 用户。

这可以由外部系统通过可插入身份验证模块 (PAM) 或 KERBEROS(例如 Active Directory)或 LDAP 启用。推荐后两者。

默认情况下,Hive 和 Hadoop 没有身份验证,用户名按字面意思作为字符串。

有关详细信息,请参阅 Hive wiki on Authentication

如果您想要一个安全的 Hadoop 集群,您需要设置一个基于 Kerberos 的环境,在每个 JVM 环境上设置 Java keystore ,最好使用 Apache Ranger 或 Sentry 等工具来锁定访问和审计您的集群

关于hadoop - beeline 执行命令的用户 id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49834127/

相关文章:

ubuntu - hadoop-1.2.1 namenode未格式化

hadoop - 在配置单元中的移动窗口函数上执行 collect_set 时只保留不同的行

hadoop - 无法运行 hadoop 的基本示例

hadoop - Hadoop-无法找到或加载主类org.apache.hadoop.hdfs.qjournal.server.JournalNode

hadoop - distcp - HDFS 文件的访问执行权限错误

hadoop - Apache Spark:任务失败,com.ning.compress.lzf.impl.UnsafeChunkDecoder.copyOverlappingLong处的java.lang.ArrayIndexOutOfBoundsException

hadoop - 一个工具,显示每个映射器和化简器的完成时间和源计算机名称的细目分类?

apache-spark - 无法使用 Apache spark 2.1.0 连接到 hive 数据库

hadoop - EBCDIC文件格式的自定义Serde

hadoop - 当我运行WordCount示例时,输出文件夹不包含任何输出