Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Ausnahme im Hauptthread java.lang.IncompatibleClassChangeError:Schnittstelle org.apache.hadoop.mapreduce.JobContext gefunden, aber Klasse wurde erwartet?

Sqoop und Sqoop2 haben binäre Distributionen die sich je nach Hadoop-Version unterscheiden. Diese Art von Fehler kann in Sqoop2 auftreten, wenn es mit der falschen Version von Hadoop kompiliert wurde oder wenn sich die falschen Hadoop-Bibliotheken auf Ihrem System befinden. Dinge, die Sie versuchen können, dies zu beheben:

  1. Suchen Sie nach alten Hadoop-Jars, die es möglicherweise in den Klassenpfad schaffen. find / -name 'hadoop*.jar' sollte funktionieren.
  2. Stellen Sie sicher, dass Sie eine binäre Distribution von Sqoop heruntergeladen haben. Wenn Sie Hadoop2 verwenden, laden Sie Sqoop2 für Hadoop2 herunter. Wenn Sie Hadoop1 verwenden, laden Sie Sqoop2 für Hadoop1 herunter.
  3. Setzen Sie den Klassenpfad explizit über die Tomcat-Eigenschaften in <server configuration directory>/catalina.properties . Jars können explizit zu common.loader hinzugefügt werden .
  4. Wenn alles andere fehlschlägt, wenden Sie sich an die Sqoop-Mailingliste .