6

场景: - 用户登录到他的计算机通过 Kerberos 身份验证进行身份验证并提交地图缩减作业

我正在尝试学习“如何在 Hadoop 中实现 Kerberos?” 我浏览了这个文档 https://issues.apache.org/jira/browse/HADOOP-4487 我也浏览了基本的 Kerberos 东西(https://www.youtube.com/watch?v=KD2Q-2ToloE

从这些资源中学习后,我得出了一个我通过图表表示的结论。场景: - 用户登录到他的计算机通过 Kerberos 身份验证并提交地图缩减作业(请阅读图表的描述,它几乎不需要 5 分钟的时间)我想解释图表并提出与少数相关的问题步骤(粗体) 黄色背景的数字代表整个流程(数字 1 到 19) DT(红色背景)代表委托令牌 BAT(绿色背景)代表块访问令牌 JT(棕色背景)代表作业令牌

步骤 1、2、3 和 4 表示:- 请求 TGT(授予票证)请求名称节点的服务票证。 Question1) KDC应该在哪里?它可以在我的名称节点或作业跟踪器所在的机器上吗?

步骤 5、6、7、8 和 9 代表:- 向名称节点显示服务票证,获得确认。名称节点将发出委托令牌(红色)用户将告知令牌更新者(在这种情况下是 Job Tracker)

问题 2) 用户将此委托令牌连同作业一起提交给 Job Tracker。委托令牌会与任务跟踪器共享吗?

步骤 10、11、12、13 和 14 代表:- 请求 Job tracker 的服务票证,从 KDC 获取服务票证 将此票证显示给 Job Tracker 并从 JobTracker 获得 ACK 提交 Job + Delegation Token 到 JobTracker。

步骤 15,16 和 17 表示:- 生成块访问令牌并传播到所有数据节点。将 blockID 和 Block Access Token 发送到 Job Tracker,Job Tracker 会将其传递给 TaskTracker

问题 3) 谁会向 Name Node 索要 BlockAccessToken 和 Block ID?JobTracker 或 TaskTracker

抱歉,我不小心错过了 18 号。Step19 表示:- Job Tracker 生成 Job Token(棕色)并将其传递给 TaskTrackers。

问题 4)我是否可以得出结论,每个用户将有一个委托令牌,它将分布在整个集群中,并且每个作业将有一个作业令牌?所以一个用户将只有一个Delegation Token和许多Job Tokens(等于他提交的作业数量)。

请告诉我我是否遗漏了什么,或者我在解释中的某个地方有错误。

4

2 回答 2

0

确保 Hadoop 安全的步骤

  1. 在所有集群节点都可以访问的任何服务器上安装 Kerberos。yum install krb5-server yum install krb5-workstation yum install krb5-libs

  2. 修改 KDC 服务器配置中的配置文件,为主机设置 acl 文件、管理密钥表文件。/var/kerberos/krb5kdc/kdc.conf

  3. 修改配置文件 /etc/krb5.conf 以设置 kdc 主机和管理服务器

  4. 在 KDC 主机中创建数据库

    $ kdb5_util 创建 -r 主机名 -s

  5. 将管理员添加到 ACL 文件

    1. vi /etc/kdamin.acl
    2. 在该文件中添加管理员主体 'admin/admin@host_name'
  6. 添加管理员主体 $addprinc admin/admin@host_name

在所有集群节点上安装 Kerberos 客户端

yum install krb5-workstation

将 krb5.conf 复制到所有集群节点

确保通过设置所需的配置在 Hadoop 中启用安全模式 https://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/SecureMode.html

核实 :

  • 以普通用户身份登录到部署用户密钥表的集群网关或节点
  • 运行“kinit –k –t /location/of/keytab file username@host_name”</li>
  • 并运行 HDFS 命令或 mapreduce 作业以验证集群是否安全

这些是确保在集群中启用 kerberos 的基本步骤。

于 2015-04-17T20:14:17.270 回答
0

Hadoop 安全主要使用 Kerberos 进行身份验证,使用哨兵进行授权。Ranger 之类的网关,knox 用于安全方面 http://commandstech.com/latest-hadoop-admin-interview-questions/

于 2019-01-21T05:13:42.077 回答