2016-05-30 53 views
0

场景:使用HBase的,而不是在HDFS MapReduce的

我分析数TB的数据,做最重要的是一些文本挖掘和数据存储到HDFS文件。然后查询数据,我们将这些数据导入到Hive中。

但是我们还需要对增量数据执行一些更新操作。例如,如果新旧数据中存在相同的rowkey,则更新数据而不是插入。

目前我正在使用HDFS进行上述操作。现在我正考虑采用读/写操作进入HBase。

我想知道与HDFS相比,使用HBase读/写MapReduce的方法 的性能优劣。

回答

0

优点(使用HBase的数据存储):

  • 灵活的数据模型,使用和数据被行键索引。
  • 快速扫描表。
  • 低延迟访问来自大数据集 集内的少量数据。您可以从十亿行表中快速访问单行。
  • 对于小的更新是更好的,因为你可以扫描和更新,而不是追加(这是HDFS的情况) 。

缺点(使用HBase的数据存储):

  • 你需要为了你的情况来加载大量数据(兆兆字节 )进行批量装载。
  • 使用批量加载将跳过WAL(有数据丢失的风险)。
  • 万一您不执行批量加载数据加载,速度会减少 。

我希望我已经回答了您的问题。 如果我错了,请纠正我的错误

+0

除了这个答案,如果您在每次运行mapreduce作业时都使用hdfs中的所有数据,那么从hbase每次读取所有数据相比hfds txt或parquet文件 – halil

+0

@halil感谢您的宝贵意见。 –

+0

@halil您是否支持hbase或hdfs。你的评论有点模棱两可。 –