Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将数据从mongoDB复制到hdfs时发生hadoop jar错误_Java_Mongodb_Hadoop_Jar - Fatal编程技术网

Java 将数据从mongoDB复制到hdfs时发生hadoop jar错误

Java 将数据从mongoDB复制到hdfs时发生hadoop jar错误,java,mongodb,hadoop,jar,Java,Mongodb,Hadoop,Jar,我正在尝试使用HadoopMongodb连接器将集合从mongodb复制到hadoop 使用以下代码: 包装hdfs import java.io.*; import org.apache.commons.logging.*; import org.apache.hadoop.conf.*; import org.apache.hadoop.fs.Path; import org.apache.hadoop.io.*; import org.apache.hadoop.mapreduce.lib

我正在尝试使用HadoopMongodb连接器将集合从mongodb复制到hadoop 使用以下代码: 包装hdfs

import java.io.*;
import org.apache.commons.logging.*;
import org.apache.hadoop.conf.*;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.*;
import org.apache.hadoop.mapreduce.lib.output.*;
import org.apache.hadoop.mapreduce.*;
import org.bson.*;
import com.mongodb.hadoop.*;
import com.mongodb.hadoop.util.*;

public class ImportWeblogsFromMongo {
    private static final Log log = LogFactory.getLog(ImportWeblogsFromMongo.class);

    public static class ReadWeblogsFromMongo extends Mapper<Object, BSONObject, Text, Text> {
        public void map(Object key, BSONObject value, Context context) throws IOException, InterruptedException {
            System.out.println("Key: " + key);
            System.out.println("Value: " + value);
            String md5 = value.get("md5").toString();
            String url = value.get("url").toString();
            String date = value.get("date").toString();
            String time = value.get("time").toString();
            String ip = value.get("ip").toString();
            String output = "\t" + url + "\t" + date + "\t" + time + "\t" + ip;
            context.write(new Text(md5), new Text(output));
        }
    }

    public static void main(String[] args) throws Exception {
        final Configuration conf = new Configuration();
        MongoConfigUtil.setInputURI(conf,"mongodb://localhost:27017/clusterdb.fish");
        MongoConfigUtil.setCreateInputSplits(conf, false);
        System.out.println("Configuration: " + conf);
        @SuppressWarnings("deprecation")
        final Job job = new Job(conf, "Mongo Import");
        Path out = new Path("/home/mongo_import");
        FileOutputFormat.setOutputPath(job, out);
        job.setJarByClass(ImportWeblogsFromMongo.class);
        job.setMapperClass(ReadWeblogsFromMongo.class);
        job.setOutputKeyClass(Text.class);
        job.setOutputValueClass(Text.class);
        job.setInputFormatClass(MongoInputFormat.class);
        job.setOutputFormatClass(TextOutputFormat.class);
        job.setNumReduceTasks(0);
        System.exit(job.waitForCompletion(true) ? 0 : 1);
    }
    }
NB:clustedb是数据库名称及其集合 而hdfs.importwewBlogsFrommongo是package.class


请提供任何建议

我没有以这种方式解决问题,但我使用
Mongodump
找到了解决方案。通过将文件复制到
Hdfs
,下面的行可以帮助某人完成工作

   mongodump  --db clusterdb --collection CollectionName

   bsondump file.bson > file.json

   hadoop dfs -copyFromLocal /path/to/file/fish.json mongo

你试过hadoop jar/home/yass/importmongo.jar-libjars hadoop\u MONGODB\u jar hdfs.importwewBlogsFrommongo?是的,我在线程“main”java.lang.ClassNotFoundException:-libjarssory中得到了一个异常:-libjar,我的意思是
hadoop jar/home/yass/importmongo.jar hdfs.ImportWeblogsFromMongo-libjars hadoop\u MONGODB\u jar
。您可以查看或以了解使用-libjars的正确语法。
   mongodump  --db clusterdb --collection CollectionName

   bsondump file.bson > file.json

   hadoop dfs -copyFromLocal /path/to/file/fish.json mongo