【问题标题】:Store Hadoop output to local mongodb将 Hadoop 输出存储到本地 mongodb
【发布时间】:2019-03-11 16:27:27
【问题描述】:

我看到了有关将 hadoop HDFS 输出存储到 MongoDB 的问题,但我还没有看到如何将本地 hadoop 输出存储到本地数据库。 我知道我需要从这里使用 mongodb 连接器:https://github.com/mongodb/mongo-hadoop

我已将依赖项添加到我的 POM.xml 文件中:

<dependency>
    <groupId>org.mongodb.mongo-hadoop</groupId>
    <artifactId>mongo-hadoop-core</artifactId>
    <version>1.5.1</version>
</dependency>

这是我的班级来运行这项工作:

    public static void main(String[] args)
            throws IOException, ClassNotFoundException, InterruptedException, InvalidDataException {

        Job job = new Job();

        job.setJarByClass(hadoop.TwitterJob.class);
        job.setJobName("Inverted Index for Twitter Data");

        FileInputFormat.addInputPath(job, new Path(args[0]));
        FileOutputFormat.setOutputPath(job, new Path("src/output/")); // change this to output to mongodb

        job.setMapperClass(InvertedIndexMapper.class);
        job.setReducerClass(hadoop.InvertedIndexReducer.class);

        job.setOutputKeyClass(Text.class);
        job.setOutputValueClass(Text.class);

        job.waitForCompletion(true);
    }
}

有谁知道我如何在本地直接输出到 mongodb?谢谢

【问题讨论】:

    标签: java mongodb hadoop


    【解决方案1】:

    来自https://github.com/mongodb/mongo-hadoop/blob/master/README.md

    以 .bson 格式写入数据,然后可以将其导入到任何 带有 mongorestore 的 MongoDB 数据库

    来自https://github.com/mongodb/mongo-hadoop/wiki/Using-.bson-Files

    要将作业的输出写入 .bson 文件,请设置 mongo.job.output.format 到 com.mongodb.hadoop.BSONFileOutputFormat 或 利用 MongoConfigUtil.setOutputFormat(com.mongodb.hadoop.BSONFileOutputFormat.class)

    这个看起来很简单的例子,你可以测试一下

    https://github.com/mongodb/mongo-hadoop/blob/master/examples/sensors/src/main/java/com/mongodb/hadoop/examples/sensors/Devices.java

    【讨论】:

      猜你喜欢
      • 2012-10-13
      • 1970-01-01
      • 1970-01-01
      • 2015-10-10
      • 2021-09-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-01
      相关资源
      最近更新 更多