1

我正在尝试使用 mongoDB hadoop 连接器运行一个基本的 Spark 示例。我正在使用 Hadoop 版本2.6.0。我正在使用1.3.1版的 mongo-hadoop。我不确定将这个 Hadoop 版本的 jar 放在哪里。以下是我尝试过的位置:

  • $HADOOP_HOME/libexec/share/hadoop/mapreduce
  • $HADOOP_HOME/libexec/share/hadoop/mapreduce/lib
  • $HADOOP_HOME/libexec/share/hadoop/hdfs
  • $HADOOP_HOME/libexec/share/hadoop/hdfs/lib

这是我用来将集合加载到 Hadoop 中的代码片段:

Configuration bsonConfig = new Configuration();
bsonConfig.set("mongo.job.input.format", "MongoInputFormat.class");
JavaPairRDD<Object,BSONObject> zipData = sc.newAPIHadoopFile("mongodb://127.0.0.1:27017/zipsdb.zips", MongoInputFormat.class, Object.class, BSONObject.class, bsonConfig);

无论罐子放在哪里,我都会收到以下错误:

Exception in thread "main" java.io.IOException: No FileSystem for scheme: mongodb
at org.apache.hadoop.fs.FileSystem.getFileSystemClass(FileSystem.java:2584)
at org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:2591)
at org.apache.hadoop.fs.FileSystem.access$200(FileSystem.java:91)
at org.apache.hadoop.fs.FileSystem$Cache.getInternal(FileSystem.java:2630)
at org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:2612)
at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:370)
at org.apache.hadoop.fs.Path.getFileSystem(Path.java:296)
at org.apache.hadoop.mapreduce.lib.input.FileInputFormat.addInputPath(FileInputFormat.java:505)
at org.apache.spark.SparkContext.newAPIHadoopFile(SparkContext.scala:774)
at org.apache.spark.api.java.JavaSparkContext.newAPIHadoopFile(JavaSparkContext.scala:471)

我在 hadoop 日志中没有看到任何其他错误。我怀疑我的配置中缺少某些内容,或者 Hadoop 2.6.0 与此连接器不兼容。任何帮助深表感谢。

4

0 回答 0