sql >> Databáze >  >> RDS >> Mysql

Výjimka v hlavním vláknu java.lang.IncompatibleClassChangeError:Bylo nalezeno rozhraní org.apache.hadoop.mapreduce.JobContext, ale třída byla očekávána?

Sqoop a Sqoop2 mají binární distribuce které se liší podle verze Hadoop. Tento druh chyby lze vidět v Sqoop2, pokud je zkompilován s nesprávnou verzí Hadoop nebo pokud jsou ve vašem systému nesprávné knihovny hadoop. Věci, které můžete zkusit opravit:

  1. Hledejte staré nádoby hadoop, které se mohou dostat do třídy. find / -name 'hadoop*.jar' by mělo fungovat.
  2. Ujistěte se, že jste si stáhli binární distrubtion Sqoop. Pokud používáte Hadoop2, stáhněte si Sqoop2 pro Hadoop2. Pokud používáte Hadoop1, stáhněte si Sqoop2 pro Hadoop1.
  3. Explicitně nastavte classpath prostřednictvím vlastností tomcat v <server configuration directory>/catalina.properties . Sklenice lze explicitně přidat do common.loader .
  4. Pokud vše ostatní selže, obraťte se na seznam adresátů Sqoop .


  1. MySQL:Kolik místa zabírá pole NULL?

  2. Použijte textový výstup z funkce jako nový dotaz

  3. Len() vs datalength() v SQL Server 2005

  4. jak mohu porovnat dva řetězce, i když se liší o 1 znak?