HBase不存储所有记录

时间:2013-08-27 07:28:04

标签: java mongodb hadoop hbase bigdata

我的 MongoDB 数据库中有1.2M记录。我想以编程方式将所有这些数据存储在 HBase 中。基本上我尝试将每个检索到的记录放入循环中的HBase。操作完成后,我在HBase上获得了仅39912 的记录。

以下是我尝试过的内容:

Configuration config = HBaseConfiguration.create();
String tableName = "storedtweet";
String familyName = "msg";
String qualifierName = "msg";
HTable table = new HTable(config, tableName);
// using Spring Data MongoDB to interact with MongoDB
List < StoredTweet > storedTweetList = mongoDAO.getMongoTemplate().findAll(StoredTweet.class);
for (StoredTweet storedTweet: storedTweetList) {
    Put p = new Put(Bytes.toBytes(storedTweet.getTweetId()));
    p.add(Bytes.toBytes(familyName), Bytes.toBytes(qualifierName), Bytes.toBytes(storedTweet.getMsg()));
    table.put(p);
    table.flushCommits();
}

1 个答案:

答案 0 :(得分:2)

如果存在某个行键并再次输入,HBase Put将覆盖前者。我认为有些记录在您的数据中具有相同的推文ID(您将其设置为行键)。这就是有些记录消失的原因。