如果我的 hadoop (HDP) 集群已经使用 AD/LDAP,我为什么要对它进行 Kerberise?

Why would I Kerberise my hadoop (HDP) cluster if it already uses AD/LDAP?

我有一个 HDP 集群。

此群集配置为使用 Active Directory 作为身份验证和授权机构。更具体地说,在所述用户提供正确的 username/password 组合后,我们使用 Ranger 来限制对 HDFS 目录、Hive 表和 Yarn 队列的访问。

我的任务是对集群进行 Kerberise,这要归功于 Ambari 中的“按下按钮并跳过”之类的选项。

我们对测试集群进行了 Kerberis 化。虽然与 Hive 交互不需要对集群机器上的现有脚本进行任何修改,但很难找到最终用户从集群外部与 Hive 交互的方法(PowerBI、DbVisualizer、PHP 应用程序).

Kerberising 似乎带来了不必要的工作量。

我从集群的 Kerberising 中得到什么具体的好处(除了让层次结构中上面的人高兴,因为,嘿,我们 Kerberised,yoohoo)?

编辑:

一个好处:

具有 AD/LDAP 身份验证和授权的 Ranger 对于外部用户来说是可以的,但是据我所知,它不会保护机器对机器或命令行交互。

我不确定它是否仍然适用,但在没有 Kerberos 的 Cloudera 集群上,您可以通过在命令行上设置环境参数 HADOOP_USER_NAME 来伪造登录:

sh-4.1$ whoami
ali
sh-4.1$ hadoop fs -ls /tmp/hive/zeppelin
ls: Permission denied: user=ali, access=READ_EXECUTE, inode="/tmp/hive/zeppelin":zeppelin:hdfs:drwx------
sh-4.1$ export HADOOP_USER_NAME=hdfs
sh-4.1$ hadoop fs -ls /tmp/hive/zeppelin
Found 4 items
drwx------   - zeppelin hdfs          0 2015-09-26 17:51 /tmp/hive/zeppelin/037f5062-56ba-4efc-b438-6f349cab51e4

对于机器对机器的通信,Storm、Kafka、Solr 或 Spark 等工具不受 Ranger 保护,但受 Kerberos 保护,因此只有专用进程才能使用这些服务。

来源:https://community.cloudera.com/t5/Support-Questions/Kerberos-AD-LDAP-and-Ranger/td-p/96755

更新:显然,从那时起,Kafka 和 Solr 集成就已经在 Ranger 中实现了。