2013-02-28 125 views
4

我想了解Kerberos如何在Hadoop中實現。
我曾經使用過此文檔https://issues.apache.org/jira/browse/HADOOP-4487
我還通過基本Kerberos的東西走了走了(https://www.youtube.com/watch?v=KD2Q-2ToloE關於通過Kerberos的Hadoop安全性

1)Apache的文檔使用單詞「令牌」,而在互聯網上的一般文檔使用術語「票」

令牌和票證是否一樣?

2)阿帕奇文檔也「的DataNodes不執行上訪問的任何訪問控制,以它的數據塊。

這使得有可能對未授權客戶端讀取數據塊作爲 只要她能提供其塊ID,任何人都可以將任意數據塊寫入DataNode中。「

我對這個問題的看法: -

我可以從文件的路徑使用命令獲取塊ID: -

[email protected]:/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 at 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?

請告訴我,如果我的方法是錯誤的?

+0

您是否發現任何適當的完整方法來保護hadoop羣集? – 2014-11-19 12:16:02

回答

3

令牌和票證是否一樣?

編號票據由Kerberos發佈,​​然後Hadoop中的服務器(NameNode或JobTracker)發出令牌以在Hadoop集羣內提供身份驗證。例如,Hadoop不依賴Kerberos來驗證正在運行的任務,但使用基於Kerberos票證頒發的自己的令牌。

Apache的文檔還「的DataNodes不強制上訪問任何訪問控制它的數據塊。

我猜你正在做的是從JIRA,其中提供了訪問控制(https://issues.apache.org/jira/browse/HADOOP-4359 )通過BlockAccessTokens。假設這是打開的 - 它應該在一個安全的集羣中 - 不能訪問數據節點上沒有這種令牌的數據塊,Namenode在通過Kerberos和HDFS自己的文件系統權限。

+0

感謝Jakob幫助我,對於我的第二個問題「Apache文檔也說」Datanodes不會.............................. ....,當訪問控制未打開時。我需要知道 - 我如何訪問Datanode並以任意方式寫入數據? – 2013-02-28 08:40:28

0

如何訪問Datanode並隨意寫入數據?

我不確定你在這裏的意思。你的意思是當用戶沒有權限?正如Jacob提到的 ,除非用戶有權根據文件系統權限訪問數據,否則您將無法獲得有效的BlockAccessToken,前提是您擁有安全的Hadoop羣集。