脚本:我分析数兆字节的数据,并在此基础上进行一些文本挖掘,然后将数据存储到hdfs文件中。然后,为了查询数据,我们将这些数据导入到配置单元中。但是,我们还需要对增量数据执行一些更新操作。例如,如果新数据和旧数据中存在相同的行键,则更新数据而不是插入。目前我正在使用hdfs进行上述操作。现在我正在考虑使用hbase进行读/写操作。我想知道与hdfs相比,将hbase读/写与mapreduce结合使用的这种方法的性能优缺点。
shstlldc1#
优点(使用hbase作为数据存储):灵活的数据模型和数据是由行键索引。快速扫描表格。从大数据集中访问少量数据的低延迟。您可以从十亿行表中快速访问单行。对于小的更新,这是更好的,因为你可以扫描和更新,而不是附加(这是hdfs的情况)。cons(使用hbase作为数据存储):您需要执行大容量加载,以便在您的案例中加载大容量数据(TB)。使用批量加载将跳过wal(有数据丢失的风险)。如果不执行批量加载以加载数据,则速度将降低。我希望我已经回答了你的问题。如果我错了,请纠正我
1条答案
按热度按时间shstlldc1#
优点(使用hbase作为数据存储):
灵活的数据模型和数据是由行键索引。
快速扫描表格。
从大数据集中访问少量数据的低延迟。您可以从十亿行表中快速访问单行。
对于小的更新,这是更好的,因为你可以扫描和更新,而不是附加(这是hdfs的情况)。
cons(使用hbase作为数据存储):
您需要执行大容量加载,以便在您的案例中加载大容量数据(TB)。
使用批量加载将跳过wal(有数据丢失的风险)。
如果不执行批量加载以加载数据,则速度将降低。
我希望我已经回答了你的问题。如果我错了,请纠正我