2017-11-24 16 views
-1

を投げ、その作業罰金とOracleからデータを抽出することができるが、私はcrontabファイルに同じジョブをスケジュールするとき、それは、Kerberosセキュリティエラーがスローされます。Kerberosセキュリティはクーロンで働いていないとSqoop、私はエッジノードからsqoopジョブを実行する場合てGSSException

私は(リンクを参照してください)hortonworksサイトで報告された同じ問題を見つけましたが、任意の有効な答えを持っていません。

https://community.hortonworks.com/questions/61856/kerberos-ticket-error-in-a-cron-job.html

私は10時間のcronジョブを開始し、その前に有効な有効なKerberosチケットを持っているが、私は5分でcronジョブをスケジュールするとき、それは、Kerberosエラーを投げます。

示唆してください、手順はcronジョブでsqoopのインポートを開始する前に続いする必要がありますか。

17/11/23 11時24分17秒ERRORのtool.ImportTool:インポートジョブを実行するにIOExceptionが発生しました:にjava.io.IOException:ローカル例外に失敗しました:javaの下に

は、詳細なエラーメッセージです.io.IOException:javax.security.sasl.SaslException:

GSSが失敗[てGSSException起因する:有効な資格情報がありません(メカニズムレベル:任意のKerberos TGTが見つかりませんでした)]を開始。

ホストの詳細:ローカルホスト: "ps2pr028380.express-scripts.com/10.221.171.22";宛先ホスト: "ps2pr028377.express-scripts.com":8020; at org.apache.hadoop.net.NetUtils.wrapException(NetUtils.java:782) at org.apache.hadoop.ipc.Client.getRpcResponse(Client.java:1558) at org.apache.hadoop.ipc Client.call(Client.java:1498) at org.apache.hadoop.ipc.Client.call(Client.java:1398) at org.apache.hadoop.ipc.ProtobufRpcEngine $ Invoker.invoke(ProtobufRpcEngine.java: com.sun.proxyで233) 。sun.reflect.NativeMethodAccessorImpl.invoke0でorg.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolTranslatorPB.getDelegationTokenで$ Proxy11.getDelegationToken(不明なソース) (ClientNamenodeProtocolTranslatorPB.java:980) ( NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.hadoop.io.retry.RetryInvocationHandler.invokeMethod( (RetryInvocationHandler.java:183) (org.apache.hadoop.io.retry.RetryInvocationHandler.java:185) org.apache.hadoop.hdfs.DistributedFileSystem.getDelegationTokenでcom.sun.proxyで 。$ Proxy12.getDelegationToken(不明なソース)org.apache.hadoop.hdfs.DFSClient.getDelegationToken(DFSClient.java:1041)で ( DistributedFileSystem.java:1688) at org.apache.hadoop.fs.FileSystem.collectDelegationToke (FileSystem.java:549) at org.apache.hadoop.mapreduce.security.TokenCache.obtainTokensForNamenodesInternal(TokenCache.java:140) (org.apache.hadoop.mapreduce.security.TokenCache.obtainTokensForNamenodesInternal(TokenCache.java:100) 、org.apache.hadoop) mapreduce.security.TokenCache。(JobSubmitter.java:0)。 266) at org.apache.hadoop.mapreduce.JobSubmitter.submitJobInternal(JobSubmitter.java:139) at org.apache.hadoop.mapreduce.Job $ 10.run(Job.java:1290) at org.apache.hadoop .mapreduce.Job $ 10.run(Job.java:1287) java.security.AccessController.doPrivileged(ネイティブメソッド) at javax.security.auth.Subject.doAs(Subject.java:422) at org.apache .hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1866) at org.apache.hadoop.mapreduce.Job.submit(Job.java:1287)org.apache.sqoop.mapreduce.ImportJobBase.doSubmitJob(ImportJobBase.java:200) のorg.apache.hadoop.mapreduce.Job.waitForCompletionの(org.apache.sqoop.mapreduceの )。 (SqlManager.java:748)で をインポートします。 at org.apache.sqoop.manager.OracleManager.importQuery(OracleManager.java:454) at org.apache.sqoop.tool.ImportTool.importTable(ImportTool.java:509) at org.apache.sqoop.tool。 ImportTool.run(ImportTool.java:615) (org.apache.sqoop.Sqoop.run)(Sqoop.java:147) at org.apache.hadoop.util.ToolRunner.run ToolRunner.java:76) at org.apache.sqoop.Sqoop.runSqoop(Sqoop.java:183) at org.apache.sqoop.Sqoop.runTool(Sqoop.java:225) at org.apache.sqoop。 Sqoop.runTool(Sqoop.java:234) at org.apache.sqoop.Sqoop.main(Sqoop.java:243) 原因:java.io.IOException:javax.security.sasl.SaslException:GSSの開始に失敗しました[ GSSExceptionの原因:有効な資格情報がない(メカニズムレベル:Kerberos tgtを見つけることができませんでした)] at org.apache.hadoop.ipc.Client $ Connection $ 1.run(Client.java:720) at java.security.AccessController .doPrivileged(ネイティブメソッド) at javax.security.auth.Subject.doAs(Subject.java:422) at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1866) at org.apache.hadoop.ipc.Client $ Connection.handleSaslConnectionFailure(Client.java:683) at org.apache.hadoop.ipc.Client $ Connection.setupIOstreams(Client.java:770) at org.apache。 hadoop.ipc.Client $ Connection.access $ 3200(Client.java:397) at org.apache.hadoop.ipc.Client.getConnection(Client.java:1620) at org.apache.hadoop.ipc.Client.call (Client.java:1451) ... 43 more 原因:javax.security.sasl.SaslException:GSS開始が失敗しました[GSSExceptionによって発生しました:有効な資格情報がありません(メカニズムレベル:Kerberos tgtを見つけることができませんでした)] com.sun.security.sasl.gsskerb.GssKrb5Client.evaluateChallenge(GssKrb5Client.java:211) at org.apache.hadoop.security.SaslRpcClient.saslConnect(SaslRpcClient.java:413) at org.apache.hadoop.ipc.Client $ Connection.setupSaslConnection(Client.java:595) at org.apache.hadoop.ipc.Client $ Connection.access $ 2000(Client.java:397) at org.apache .hadoop.ipc.Client $ Connection $ 2.run(Client.java:762) at org.apache.hadoop.ipc.Client $ Connection $ 2.run(Client.java:758) at java.security.AccessController.doPrivileged (ネイティブメソッド) at javax.security.auth.Subject.doAs(Subject.java:422) at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1866) at org.apache.hadoop。 ipc.Client $ Connection.setupIOstreams(Client.java:757) ...46 more 原因:GSSException:有効な資格情報がありません(メカニズムレベル:Kerberos tgtを見つけることができませんでした) at sun.security.jgss.krb5.Krb5InitCredential.getInstance(Krb5InitCredential.java:147) at sun.security.jgss sun.security.jgss.GSSManagerImpl.getMechanismContextでsun.security.jgss.krb5.Krb5MechFactory.getMechanismContext(Krb5MechFactory.java:187) で.krb5.Krb5MechFactory.getCredentialElement(Krb5MechFactory.java:122) (GSSManagerImpl.java:224 com.sun.security.sasl.gsskerb.GssKrb5Clientでsun.security.jgss.GSSContextImpl.initSecContext sun.security.jgss.GSSContextImpl.initSecContextで(GSSContextImpl.java:212) (GSSContextImpl.java:179) で) .evaluateChallenge(GssKrb5Client.java:192) ... 55 more

+1

以下、他のソリューションのリンクを見つけてください:私は私のスクリプトでのコメントの下に追加sqoopを開始する前にこれを呼び出しました。 kinit -kt /home/userName/userName.keytab [email protected] –

+0

これを「回答」として追加します。その後、それを自己受け入れるために2日間で戻ってきてください。 –

+0

ご意見ありがとうございました –

答えて

1

私は自分の質問を解決しました:スクリプトの中に以下のコメントを追加して、これをsqoop startの前に呼び出しました。

kinit -kt /home/userName/userName.keytab [email protected] 

我々はhortonworkクラスタを使用しているので、彼らはこの問題の別の解決策を持って、私は自分の質問を解決し

https://community.hortonworks.com/questions/149168/sqoop-with-kerberos-security-not-working-in-cron-t.html

+0

あなたの回答を自己採択して緑色にして、検索結果でこれを偶然見つけられる可能性のある人に強調してください。 –

+1

お知らせいただきありがとうございます。私は答えを受け入れた –

関連する問題