gpt4 book ai didi

mongodb - 多个集合作为hadoop mapreduce作业的mongodb的输入

转载 作者:行者123 更新时间:2023-12-02 21:51:06 26 4
gpt4 key购买 nike

我试图将多个集合作为执行映射减少hadoop工作的输入。
我发现1.2版中的MultiCollectionSplitBuilder具有此功能。以下示例发布在github上,该示例无法正常工作,不胜感激。

 MultiCollectionSplitBuilder mcsb = new MultiCollectionSplitBuilder();
mcsb.add(new MongoURI("mongodb://localhost:27017/mongo_hadoop.yield_historical.in"),
(MongoURI)null, // authuri
true, // notimeout
(DBObject)null, // fields
(DBObject)null, // sort
(DBObject)null, // query
false,
MultiMongoCollectionSplitter.class)
.add(new MongoURI("mongodb://localhost:27017/mongo_hadoop.yield_historical.in"),
(MongoURI)null, // authuri
true, // notimeout
(DBObject)null, // fields
(DBObject)null, // sort
new BasicDBObject("_id", new BasicDBObject("$gt", new Date(883440000000L))),
false, // range query
MultiMongoCollectionSplitter.class);

Configuration conf = new Configuration();
conf.set(MultiMongoCollectionSplitter.MULTI_COLLECTION_CONF_KEY, mcsb.toJSON());

最佳答案

感谢您指出这个问题。在示例中是错误的。 HADOOP-109已被归档以解决此问题。

我通过将所有输入集合的子拆分器类设置为null来解决此问题。参见this pull request

为了使它起作用,请确保将以下参数传递给Hadoop:

-D mongo.splitter.class=com.mongodb.hadoop.splitter.MultiMongoCollectionSplitter

此修复程序是一种解决方法。向您提供有关该问题的更多详细信息。通过设计,子拆分器类可以是 MultiMongoCollectionSplitter之外的任何拆分器类。但是存在一个 HADOOP-110错误,阻止了我们这样做。此问题将在将来的版本中很快得到解决。

关于mongodb - 多个集合作为hadoop mapreduce作业的mongodb的输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20877160/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com