将HDFS复制因子减少到2(或仅一个)对HBase映射/降低性能的影响

时间:2019-02-10 15:49:32

标签: hadoop mapreduce hdfs hbase phoenix

将HDFS复制因子减少到2(或仅一个)对HBase映射/减少性能有何影响?我将Azure托管在HBase群集上,并将数据存储在Azure托管磁盘中。 Azure托管磁盘本身会保留3个数据副本以实现容错,因此考虑减少HDFS复制因子以节省存储开销。鉴于map reduce作业利用数据的本地可用性来避免通过网络进行数据传输,因此,如果只有一个可用的数据副本,想知道是否有人对map降低性能有任何了解吗?

1 个答案:

答案 0 :(得分:1)

这是一个很难回答的问题,因为它很大程度上取决于您运行的工作负载。

通过减少复制因子,由于可以将数据写入较少的DataNode,因此可以提高写入操作的性能。但是,正如您所指出的那样,您可能会减少局部性,因为找到具有副本且具有自由空间来执行任务的节点可能会更加困难。

仅保留单个副本可能会对单个节点故障的影响产生重大影响。如果单个节点死亡,则所有数据将不可用,直到您使用相同的Azure托管磁盘重新启动新节点。如果有多个HDFS副本,则始终保持数据可用性。

在Azure托管磁盘上运行HDFS DataNodes听起来有点不好。除了打破某些HDFS核心假设(“我的磁盘随时可能失败”)之外,如果将数据存储在三个副本中,则似乎不太可能具有真正的数据位置。我想知道您是否考虑过:

  • 使用非托管磁盘服务。 Azure是否提供使用未复制磁盘的方法?这更接近打算使用HDFS的方式。
    • 将数据存储在Azure存储(WASB或ADLS)而不是HDFS中。这是更“云原生”的运行方式。如果发现缺乏性能,则可以将HDFS用于中间数据,并且仅将最终数据存储在Azure中。 HDFS还提供了一种通过使用Provided Storage从外部存储系统缓存数据的方法。