0

hdfs URIを使用してHDFSファイルシステムにアクセスする必要があるJavaモジュールを作成しています。モジュールを実行するユーザーは、namenode および datanode を起動したユーザーとは異なる場合があります。

また、Java モジュールと Hadoop クラスターが別のマシンで実行される可能性があります。

私が直面している問題は、FileSystem オブジェクトを使用して hdfs にアクセスしようとすると、FS オブジェクトへのアクセスに使用されているユーザー名が Java モジュールを実行しているローカル ユーザーであることです。

私の質問は、namenode および datanode インスタンスを起動したのと同じユーザー名を使用して、HDFS へのアクセスを強制するにはどうすればよいかということです。

user.name システム プロパティを設定しようとしましたが、それでもうまくいきませんでした。クライアントコードがこのコマンドを使用してユーザー名をフェッチするため、Javaモジュールが実行されているマシンにwhoamiの実装を配置するために、いくつかの場所を読みました。

これを達成する他の方法があるかどうか知りたいですか?

よろしくサジャル

4

1 に答える 1

0

Java プログラムの場合、CDH3 または 1.x 以降で利用可能なSecure Impersonation機能を使用できます。

于 2012-12-31T00:08:03.197 に答える