4

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

1) Apache doc 使用“Token”一词,而 Internet 上的一般 doc 使用“Ticket”一词

Token 和 Ticket 一样吗?

2) Apache 文档还“DataNodes 不对对其数据块的访问实施任何访问控制。

这使得未经授权的客户端可以读取数据块,只要她可以提供其块 ID。任何人都可以将任意数据块写入 DataNode。”

我对此的看法:-

我可以使用以下命令从文件路径中获取块 ID:-

hadoop@Studio-1555:/opt/hadoop/hadoop-1.0.2/bin$ ./hadoop fsck /hadoop/mapred/system/jobtracker.info -files -blocks

FSCK 由 hadoop 从 /127.0.0.1 开始,路径 /hadoop/mapred/system/jobtracker.info 在 Mon Jul 09 06:57:14 EDT 2012 /hadoop/mapred/system/jobtracker.info 4 个字节,1 个块: OK 0. blk_-9148080207111019586_1001 len=4 repl=1

由于我被授权访问这个文件 jobtracker.info,我能够使用上面的命令找到它的 blockID。
我认为如果我向这个块 ID 添加一些偏移量并写入该数据节点。

如何在将文件写入 HDFS 时明确提及 blockID。(命令是什么?)
将任意数据块写入 DataNodes 的任何其他方式?

请告诉我我的方法是否错误?

4

2 回答 2

3

Token 和 Ticket 一样吗?

不会。票证由 Kerberos 发出,然后 Hadoop 中的服务器(NameNode 或 JobTracker)发出令牌以在 Hadoop 集群内提供身份验证。例如,Hadoop 不依赖 Kerberos 来验证正在运行的任务,而是使用基于 Kerberos 票据颁发的自己的令牌。

Apache 文档还“DataNodes 不会对其数据块的访问执行任何访问控制。

我猜你是从通过 BlockAccessTokens提供访问控制( https://issues.apache.org/jira/browse/HADOOP-4359 )的 JIRA 中获取的。假设它被打开——它应该在一个安全的集群中——没有这样的令牌,一个人无法访问数据节点上的块,这是由 NameNode 在通过 Kerberos 和 HDFS 自己的文件系统权限进行身份验证和授权后颁发的。

于 2013-02-28T07:00:55.647 回答
0

如何访问Datanode并任意写入数据?

我不确定你在这里的意思。你的意思是当用户没有权限时?正如 Jacob 提到的,除非用户有权根据文件系统权限访问数据,否则您将不会获得有效的 BlockAccessToken,假设您拥有安全的 Hadoop 集群。

于 2014-11-23T03:22:13.330 回答