Hadoop: Java 例外「GSS を開始できませんでした」

Hadoop と革命 R のエンタープライズ環境では、mapreduce ジョブ kerberos 関連の Java 例外で失敗します。

オプションを設定します。
15/02/03 16時 59分: 05 警告 util.NativeCodeLoader:. お使いのプラットフォーム用のネイティブ hadoop のライブラリを読み込むことができません組み込み java を使用してクラスの該当する場合
デバッグ: allArgs = [-Dmapred.reduce.tasks=1、/user/RevoShare/a377683/EE594B467CDE4C988C3C3F7AF563DABB/.input、/user/RevoShare/a377683/EE594B467CDE4C988C3C3F7AF563DABB/IRO.iro、/user/RevoShare/a377683/AirlineDemoSmall/*、dojo3m20002.rtp1.hadoop.fmr.com、8020、/usr/bin/Revoscript]
15/02/03 16時 59分: 09 hdfs の情報です。DFSClient: トークンを作成した HDFS_DELEGATION_TOKEN 242420 a377683 用の ha-hdfs:nameservice1
15/02/03 16時 59分: 09 情報セキュリティです。TokenCache: hdfs://nameservice1; の dt を取得しました種類: HDFS_DELEGATION_TOKEN、サービス: ha-hdfs:nameservice1、Ident: (HDFS_DELEGATION_TOKEN 242420 のトークン a377683)

......

15/02/03 16時 59分: 25 情報 mapreduce。ジョブ: マップの 0% が 0% を削減します。
15/02/03 16時 59分: 38 情報 mapreduce。ジョブ: タスク Id: attempt_1422647534016_1760_m_000000_0、状態: 失敗しました。
エラー: java.io.IOException: R の VM は、終了コードで終了しました: 1 の場合、出力します。
開始スクリプト
[1] は TRUE。
$fileName 
[NA 1]
$start 
[1] 0
$length 
[1] 0
15/02/03 16時 59分: 37 [セキュリティの警告です。UserGroupInformation: として PriviledgedActionException: a377683 (auth:KERBEROS) cause:javax.security.sasl.SaslException: GSS の初期化に失敗しました [GSSException が原因で発生: いない有効な資格情報が提供されている (機構のレベル: すべての Kerberos tgt が見つかりませんでした)]
15/02/03 16時 59分: 37 ipc のメッセージを表示します。クライアント: 例外がサーバーへの接続中に発生しました: javax.security.sasl.SaslException: GSS の初期化に失敗しました [GSSException が原因で発生: いない有効な資格情報が提供されている (機構のレベル: Kerberos tgt が見つかりませんでした)]
15/02/03 16時 59分: 37 [セキュリティの警告です。UserGroupInformation: として PriviledgedActionException: a377683 (auth:KERBEROS) cause:java.io.IOException: javax.security.sasl.SaslException: GSS の初期化に失敗しました [GSSException が原因で発生: いない有効な資格情報が提供されている (機構のレベル: すべての Kerberos tgt が見つかりませんでした)]
hdfsOpenFile(/user/RevoShare/a377683/EE594B467CDE4C988C3C3F7AF563DABB/.input): FileSystem#open((Lorg/apache/hadoop/fs/Path;I)Lorg/apache/hadoop/fs/FSDataInputStream;) エラー。
java.io.IOException: ローカルの例外で失敗しました: java.io.IOException: javax.security.sasl.SaslException: GSS の初期化に失敗しました [GSSException が原因で発生: いない有効な資格情報が提供されている (機構のレベル: Kerberos tgt が見つかりませんでした)] です。ホストの詳細: ローカル ・ ホストは、:"hostname < >"です。宛先ホスト:"< ホスト名 >]: 8020 です。
org.apache.hadoop.net.NetUtils.wrapException(NetUtils.java:764) で
org.apache.hadoop.ipc.Client.call(Client.java:1415) で
org.apache.hadoop.ipc.Client.call(Client.java:1364) で
org.apache.hadoop.ipc.ProtobufRpcEngine$Invoker.invoke(ProtobufRpcEngine.java:206) で
com.sun.proxy.$Proxy14.getBlockLocations (不明なソース) で
org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolTranslatorPB.getBlockLocations(ClientNamenodeProtocolTranslatorPB.java:246) で
sun.reflect.NativeMethodAccessorImpl.invoke0 (ネイティブ メソッド) で
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) で
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) で
java.lang.reflect.Method.invoke(Method.java:606) で
org.apache.hadoop.io.retry.RetryInvocationHandler.invokeMethod(RetryInvocationHandler.java:187) で
org.apache.hadoop.io.retry.RetryInvocationHandler.invoke(RetryInvocationHandler.java:102) で
com.sun.proxy.$Proxy15.getBlockLocations (不明なソース) で
org.apache.hadoop.hdfs.DFSClient.callGetBlockLocations(DFSClient.java:1179) で
org.apache.hadoop.hdfs.DFSClient.getLocatedBlocks(DFSClient.java:1169) で
org.apache.hadoop.hdfs.DFSClient.getLocatedBlocks(DFSClient.java:1159) で
org.apache.hadoop.hdfs.DFSInputStream.fetchLocatedBlocksAndGetLastBlockLength(DFSInputStream.java:270) で
org.apache.hadoop.hdfs.DFSInputStream.openInfo(DFSInputStream.java:237) で
で org.apache.hadoop.hdfs.DFSInputStream < init > (DFSInputStream.java:230)
org.apache.hadoop.hdfs.DFSClient.open(DFSClient.java:1457) で
org.apache.hadoop.hdfs.DistributedFileSystem$3.doCall(DistributedFileSystem.java:301) で
org.apache.hadoop.hdfs.DistributedFileSystem$3.doCall(DistributedFileSystem.java:297) で
org.apache.hadoop.fs.FileSystemLinkResolver.resolve(FileSystemLinkResolver.java:81) で
org.apache.hadoop.hdfs.DistributedFileSystem.open(DistributedFileSystem.java:297) で
が発生しました: java.io.IOException: javax.security.sasl.SaslException: GSS の初期化に失敗しました [GSSException が原因で発生: いない有効な資格情報が提供されている (機構のレベル: すべての Kerberos tgt が見つかりませんでした)]
org.apache.hadoop.ipc.Client$Connection$1.run(Client.java:679) で
java.security.AccessController.doPrivileged (ネイティブ メソッド) で
javax.security.auth.Subject.doAs(Subject.java:415) で
org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1642) で
org.apache.hadoop.ipc.Client$Connection.handleSaslConnectionFailure(Client.java:642) で
org.apache.hadoop.ipc.Client$Connection.setupIOstreams(Client.java:725) で
org.apache.hadoop.ipc.Client$Connection.access$2800(Client.java:367) で
org.apache.hadoop.ipc.Client.getConnection(Client.java:1463) で
org.apache.hadoop.ipc.Client.call(Client.java:1382) で

まずにジョブが最新かつ有効な kerberos チケットが有効なチケットを確認した場合でもこのエラーを表示することが送信するユーザーを確認します。

名前ノードの高可用性のクラスターを構成する場合、RxHadoopMR() で特定する必要があるし、も機能がアクティブな名前のノードのホスト名を指定するノードのネーム サービスを指定するのにはスクリプトで RxHdfsFileSystem() を呼び出します。Kerberized 、 HA 名前ノード環境の場合、HDFS_DELEGATION_TOKEN は、ネームの参照を一致しなければなりません。上記のエラーが表示されます。

情報セキュリティです。TokenCache: hdfs://nameservice1; の dt を取得しました種類: HDFS_DELEGATION_TOKEN、サービス: ha-hdfs:nameservice1、Ident: (HDFS_DELEGATION_TOKEN 242420 のトークン a377683

この例では、"nameservice1"に RxHadoopMR() と RxHdfsFileSystem() の呼び出しで nameNode/ホスト名の引数を設定してください。

ヘルプを表示

スキルを磨く
トレーニングの探索
新機能を最初に入手
Microsoft Insider に参加する

この情報は役に立ちましたか?

フィードバックをお送りいただきありがとうございます!

フィードバックをお寄せいただき、ありがとうございます。Office サポートの担当者におつなぎいたします。

×