4

KerberosをHadoopに実装する方法を学ぼうとしています。
このドキュメントを確認しました https://issues.apache.org/jira/browse/HADOOP-4487
基本的なKerberos関連のものも確認しました(https://www.youtube.com/watch?v=KD2Q-2ToloE

1)Apacheドキュメントでは「トークン」という単語が使用されていますが、インターネット上の一般的なドキュメントでは「チケット」という用語が使用されています。

トークンとチケットは同じですか?

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/mapred/system/jobtracker.infoの127.0.0.1からhadoopによってMon Jul 09 06:57:14 EDT 2012 /hadoop/mapred/system/jobtracker.info 4バイト、1ブロックで開始されました。 :OK0。blk_-9148080207111019586_1001len = 4 repl = 1

このファイルjobtracker.infoへのアクセスが許可されているため、上記のコマンドを使用してそのblockIDを見つけることができました。
このブロックIDにオフセットを追加して、そのデータノードに書き込むと思います。

HDFSにファイルを書き込むときにblockIDを明示的に指定するにはどうすればよいですか(コマンドは何ですか?)
任意のデータブロックをDataNodeに書き込む他の方法はありますか?

私のアプローチが間違っているかどうか教えてください。

4

2 に答える 2

3

トークンとチケットは同じですか?

いいえ。チケットは Kerberos によって発行され、次に Hadoop のサーバー (NameNode または JobTracker) がトークンを発行して、Hadoop クラスター内で認証を提供します。たとえば、Hadoop は実行中のタスクを認証するために Kerberos に依存しませんが、Kerberos チケットに基づいて発行された独自のトークンを使用します。

Apache doc にも「DataNodes は、そのデータ ブロックへのアクセスにアクセス制御を適用しません。

BlockAccessTokens を介してアクセス制御が提供された JIRA ( https://issues.apache.org/jira/browse/HADOOP-4359 ) から取得していると思います。これがオンになっていると仮定すると (安全なクラスター内にある必要があります)、Kerberos と HDFS 独自のファイル システム権限による認証と承認の後に NameNode によって発行されるトークンがなければ、データノードのブロックにアクセスできません。

于 2013-02-28T07:00:55.647 に答える
0

データノードにアクセスして任意にデータを書き込むにはどうすればよいですか?

ここで何を意味するのかわかりません。ユーザーが許可を持っていないときですか?ジェイコブが述べたように、セキュアな Hadoop クラスターがあると仮定すると、ユーザーがファイル システムのアクセス許可に基づいてデータにアクセスするアクセス許可を持っていない限り、有効な BlockAccessToken を取得できません。

于 2014-11-23T03:22:13.330 に答える