BSONFileInputFormat не найден даже после добавления libs в папку hadoop

Я работал над рекомендациями фильмов, используя репозиторий crcmnky. https://github.com/crcsmnky/mongodb-spark-demo Я скомпилировал монго -hadoop и mongo-java-driver и сохранили файлы jar: mongo-hadoop-core-1.3.2-SNAPSHOT и mongo-java-driver-2.13.3.jar. в папке $HADOOP_HOME/lib. После всего этого я собрал проект и запустил его в соответствии с инструкциями в файле README. Я получаю сообщение об ошибке:

Exception in thread "main" java.lang.NoClassDefFoundError: com/mongodb/hadoop/BSONFileInputFormat
at com.mongodb.spark.demo.Recommender.main(Recommender.java:59)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:483)
at org.apache.spark.deploy.SparkSubmit$.launch(SparkSubmit.scala:358)
at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:75)
at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)
Caused by: java.lang.ClassNotFoundException: com.mongodb.hadoop.BSONFileInputFormat
at java.net.URLClassLoader$1.run(URLClassLoader.java:372)
at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:360)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)

Что могло пойти не так? Я правильно выполнил все инструкции.


person AnishM    schedule 28.01.2015    source источник


Ответы (1)


У меня была точно такая же проблема, и сын Зевса взял меня навсегда, чтобы решить. Попробуй это:

  • Найдите файлы mongo-hadoop-core-1.4.1-SNAPSHOT.jar и mongo-java-driver-2.12.3.jar.

  • Добавьте их в --jars в команде spark-submit перед --master и местоположением jar приложения. Это решающий шаг. Если вы упомянете --jars после двух, то по какой-то безумной причине вы будете продолжать получать исключение BSONFileInputFormat. Таким образом, ваша команда spark-submit будет такой:

    ./bin/spark-submit --class com.mongodb.spark.demo.Recommender --jars /home/killshot/Downloads/mongo-hadoop/core/build/libs/mongo-hadoop-core-1.4.1-SNAPSHOT .jar,/home/killshot/Downloads/mongo-hadoop/work/mongodb-spark-demo/target/lib/mongo-java-driver-2.12.3.jar --master local[4]

person rhel.user    schedule 03.08.2015