蒙戈 - Hadoop的。不处理mongodb文件删除

时间:2015-11-12 07:43:39

标签: mongodb hadoop hive mongodb-hadoop

我想同步mongodb和hadoop,但是当我从mongodb中删除文档时,不能在hadoop中删除此文档。

我尝试使用mongo-hadoop和hive。这是hive查询:

CREATE EXTERNAL TABLE SubComponentSubmission
(
  id STRING,
  status INT,
  providerId STRING,
  dateCreated TIMESTAMP,
  subComponentId STRING,
  packageName STRING
)
STORED BY 'com.mongodb.hadoop.hive.MongoStorageHandler'
WITH SERDEPROPERTIES('mongo.columns.mapping'=
                    '{"id":"_id", "status":"Status", 
                      "providerId":"ProviderId", 
                      "dateCreated":"DateCreated", 
                      "subComponentId":"SubComponentPackage.SubComponentId", 
                      "packageName":"SubComponentPackage.PackageName"}'
                    )
TBLPROPERTIES('mongo.uri'='mongodb://<host>:27017/<db name>.<collection name>');

此查询创建与同步mongodb集合同步的表。通过这个查询,mongo-hadoop也可以处理文件删除。

mongo-hadoop有没有选择,不处理文件删除? 或者,还有其他工具可以解决这个问题吗?

提前感谢。

1 个答案:

答案 0 :(得分:1)

如果您直接查询mongo,就像您正在做的那样,是的,您将会看到mongo中发生的所有文档突变。这就是像这样查询mongo的全部要点。如果你想要你的mongo数据的快照视图,你需要做一些像mongodump这样的事情并将bson文件放在某个地方的磁盘上(比如HDFS)。否则,您将始终查询实时变异数据。