2017-02-25 1 views
0

: Ich bin in hadoop. Ich versuche, einen Job von toolrunner von hadoop aus Java-Code in Netbeans-Umgebung auszuführen. Aber ich kann immer noch keine Lösung finden, um das Problem zu beheben.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)

Meine Plattform ist Windows 7.


Ich habe viele Bibliotheken hinzugefügt. Zunächst einmal habe ich die Apacheds-kerberos-codec-2.0.0-M15.jar hinzugefügt Dann viele andere Bibliotheken ähnlich Javaee-api-7.0.jar java-rt-jar-stubs-1.5.0.jar ... Aber ich weiß nicht, von ich hinzugefügt, wo der Fehler auftritt.

Dies ist die komplette Liste der .jar-Dateien Ich habe Keytab Klasse im Code enthalten: 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

Vielen Dank im Voraus

+0

vor diesen Fehler mein hadoop Kern immer war hadoop-Core-1.2.1.jar. Aber wegen eines Fehlers von Lese-/Schreibberechtigung in Win 7 und einen Hauch über die Verwendung von Hadoop-0.20.2-core.jar, ich das erste Gefäß entfernt und dann habe ich das zweite Glas –

+0

Ich denke, beschloß ich, das Problem durch Hinzufügen von 'hadoop-conf-kerberos-6.0.0.jar'. Ein neuer Fehler tritt jedoch als solcher auf: "java.lang.IllegalArgumentException: kann Kerberos-Realm nicht abrufen" –

Antwort

0

Ok, ich denke für diese Frage reicht die Forschung aus; Die Antwort ist, dass hadoop-conf-kerberos-6.0.0.jar einige XML- und Eigenschaftendateien für die Konfiguration von hadoop in Bezug auf Kerberos enthält. Das Problem meines Programms, die Klasse von KeyTab zu finden, war das Ergebnis einer schlechten Konfiguration. [hadoop-conf-kerberos-6.0.0.jar][1] enthält vorbereitete Konfigurationsdateien ähnlich core-site.xml, hdfs-site.xml, mapred-site.xml usw. Es ergänzte die Apacheds-kerberos-codec-2.0.0-M15.jar, die ich zu meinem Programm hinzugefügt hatte.

Verwandte Themen