在将libs添加到hadoop文件夹后,甚至找不到BSONFileInputFormat

时间:2015-01-28 06:35:34

标签: java mongodb maven hadoop bson

我正在研究使用crcmnky存储库的电影推荐工作。 https://github.com/crcsmnky/mongodb-spark-demo 我编译了mongo-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)

可能出现什么问题?我正确地遵循了所有说明。

1 个答案:

答案 0 :(得分:2)

我有完全相同的问题,宙斯的儿子带我永远解决。试试这个:

  • 找到您的mongo-hadoop-core-1.4.1-SNAPSHOT.jar和mongo-java-driver-2.12.3.jar
  • 在你的--master和应用程序jar位置“之前”将它们添加到spark-submit命令中的--jars中。这是至关重要的一步。如果你在两者之后提到--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] < / p>