2017-02-25 12 views
0

私はhadoopの新機能です。私はnetbeans環境でJavaコードからhadoopのtoolrunnerによって仕事を実行しようとしています。しかし、私はまだ問題を解決するための解決策を見つけることができません。java.lang.NoClassDefFoundError:javax/security/auth/kerberos/KeyTab

Exception in thread "main" java.lang.NoClassDefFoundError: javax/security/auth/kerberos/KeyTab at org.apache.hadoop.security.UserGroupInformation.(UserGroupInformation.java:609) at org.apache.hadoop.security.UserGroupInformation.loginUserFromSubject(UserGroupInformation.java:799) at org.apache.hadoop.security.UserGroupInformation.getLoginUser(UserGroupInformation.java:760) at org.apache.hadoop.security.UserGroupInformation.getCurrentUser(UserGroupInformation.java:633) at org.apache.hadoop.fs.FileSystem$Cache$Key.(FileSystem.java:2812) at org.apache.hadoop.fs.FileSystem$Cache$Key.(FileSystem.java:2802) at org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:2668) at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:371) at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:170) at org.enahang.mapreduce.utils.mrUtils.Test.run(Test.java:125) at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70) at org.enahang.mapreduce.utils.mrUtils.Test.main(Test.java:62)

私のプラットフォームは、私は多くのライブラリを追加したWindows 7の


です。まず第一に、私はその後、私は Javaee-api-7.0.jar java-rt-jar-stubs-1.5.0.jar ... 類似した他の多くのライブラリを追加 Apacheds-kerberos-codec-2.0.0-M15.jar を追加しました。しかし、私はエラーが発生しどこからか分かりません。

これは私がコードでKeytabのクラスを含めるために追加の.jarファイルの完全なリストである:事前に apacheds-i18n-2.0.0-M15.jar api-asn1-api-1.0.0-M20.jar api-util-1.0.0-M20.jar commons-cli-1.2.jar commons-codec-1.4.jar commons-collections-3.2.1.jar commons-configuration-1.6.jar jsp-api-2.1.jar hadoop-auth-2.7.0.jar

おかげ

+0

このエラーが発生する前に、私のhadoopコアはhadoop-core-1.2.1.jarでした。しかし、win7の読み込み/書き込みの許可の誤りやhadoop-0.20.2-core.jarの使用に関するヒントのため、最初のjarを削除してから2番目のjarを追加しました –

+0

私はこの問題を'hadoop-conf-kerberos-6.0.0.jar'を追加します。しかし、新しいエラーが発生します: "java.lang.IllegalArgumentException:Kerberos領域を取得できません" –

答えて

0

ええ、私はこの質問については研究が十分だと思います。答えは、hadoop-conf-kerberos-6.0.0.jarには、kerberosに関するhadoopの設定のためのいくつかのxmlとプロパティファイルが含まれています。 KeyTabのクラスを見つけるための私のプログラムの問題は、悪い設定の結果でした。 [hadoop-conf-kerberos-6.0.0.jar][1]には、core-site.xmlhdfs-site.xmlmapred-site.xmlなどの準備済み設定ファイルが含まれています。私のプログラムに追加したApacheds-kerberos-codec-2.0.0-M15.jarを補完しています。