3

kerberos 認証を使用して HDFS を構成しました。独自のキータブ ファイルを使用して、HDFS クラスター内の任意のマシンの HDFS にアクセスできます。しかし、同じキータブを使用して HDFS クラスター外のリモート サーバー上の HDFS にアクセスすると、アクセスできません。次のエラー メッセージが表示されました。ちなみに、サーバーの構成ファイル krb5.conf を Hadoop クラスター外のリモート マシンにコピーしました。

java.io.IOException: ローカル例外で失敗しました: java.io.IOException: javax.security.sasl.SaslException: GSS の開始に失敗しました [GSSException が原因: 有効な資格情報が提供されていません (メカニズム レベル: Kerberos tgt が見つかりませんでした)]; ホストの詳細: ローカル ホストは次のとおりです: "ubuntu/10.235.6.156"; 宛先ホスト: "node0":21200; org.apache.hadoop.net.NetUtils.wrapException(NetUtils.java:759) で org.apache.hadoop.ipc.Client.call(Client.java:1164) で org.apache.hadoop.ipc.ProtobufRpcEngine$Invoker .invoke(ProtobufRpcEngine.java:202) at $Proxy9.getFileInfo(Unknown Source) at org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolTranslatorPB.getFileInfo(ClientNamenodeProtocolTranslatorPB.java:628) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ) sun.reflect.NativeMethodAccessorImpl で。

4

1 に答える 1

4

最後に、その理由を見つけました。kerberos が AES-256 暗号化を使用する場合、JCE をインストールする必要があります。HDFS クラスター内のマシンに JCE をインストールしましたが、クラスター外のクライアント マシンにも JCE が必要であることに気付きませんでした。これが、HDFS クラスター内のマシンでは HDFS にアクセスできるが、HDFS クラスター外のマシンではアクセスできない理由です。

于 2012-11-26T11:31:17.813 に答える