这是一个难以回答的问题,因为它在很大程度上取决于您运行的工作负载。
通过降低复制因子,可以加快写入操作的性能,因为数据会写入较少的DataNode。但是,正如您所指出的,您可能已经减少了局部性,因为找到具有副本并具有可用空间来执行任务的节点会更加困难。
仅保留单个副本可能会对单个节点故障的影响产生强烈影响。如果单个节点终止,则在重新启动具有相同Azure托管磁盘的新节点之前,其所有数据都将不可用。如果有多个HDFS副本,则始终保持数据可用性。
在Azure托管磁盘上运行HDFS DataNodes听起来有点不错。除了打破HDFS的一些核心假设(“我的磁盘可能随时出现故障”)之外,如果您的数据存储在三个副本中,那么您似乎不太可能拥有真正的数据位置。我想知道你是否考虑过: