【问题标题】:using HBase instead of HDFS in MapReduce在 MapReduce 中使用 HBase 而不是 HDFS
【发布时间】:2016-05-30 13:21:47
【问题描述】:

场景:

我分析 TB 的数据并在此基础上进行一些文本挖掘,并将数据存储到 HDFS 文件中。然后查询我们将这些数据导入 Hive 的数据。

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

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

我想知道这种方法的性能优缺点 与 HDFS 相比,使用 HBase 读/写和 MapReduce。

【问题讨论】:

    标签: hadoop mapreduce hbase hdfs


    【解决方案1】:

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

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

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

    • 您需要执行批量加载才能加载批量数据(tera 字节)在你的情况下。
    • 使用批量加载将跳过 WAL(存在数据丢失风险)。
    • 如果您不为数据加载执行批量加载,速度将 减少。

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

    【讨论】:

    • 除了这个答案之外,如果每次运行 mapreduce 作业时都使用 hdfs 中的所有数据,与 hfds txt 或 parquet 文件相比,每次从 hbase 读取所有数据都会很慢跨度>
    • @halil 你支持 hbase 还是 hdfs。你的评论有点模棱两可。
    • @RamPrasadG 我不支持两者中的任何一个,因为我不知道用例。如果您需要为 mapreduce 过滤数据,那么 hbase 可能会有所帮助,如果您读取所有数据或每天/每小时为每个 mapreduce 读取所有数据,那么与 hdfs 相比,从 hbase 读取所有数据会很慢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多