【问题标题】:Hadoop/Spark : How replication factor and performance are related?Hadoop/Spark:复制因子和性能有什么关系?
【发布时间】:2018-07-03 12:14:58
【问题描述】:

在不讨论所有其他性能因素、磁盘空间和名称节点对象的情况下,复制因素如何提高 MR、Tez 和 Spark 的性能。

如果我们有例如 5 个数据节点,执行引擎将复制设置为 5 是否更好?什么是最好和最差的价值?

这对聚合、连接和仅映射作业有什么好处?

【问题讨论】:

  • 数据局部性减少网络 I/O

标签: apache-spark hadoop mapreduce hdfs distributed-computing


【解决方案1】:

Hadoop 的主要租户之一是将计算转移到数据中。

如果您将复制因子设置为大约等于数据节点的数量,则可以保证每台机器都能够处理该数据。

但是,正如您提到的,namenode 开销非常重要,更多的文件或副本会导致请求缓慢。在不健康的集群中,更多的副本也会使您的网络饱和。我从未见过高于 5 的任何东西,这仅适用于公司最关键的数据。其他的,他们留下了 2 个副本

除了在大多数情况下 Tez/Spark 的性能优于 MR 之外,执行引擎并不重要,但更重要的是文件的大小和它们的存储格式 - 这将是执行性能的主要驱动力

【讨论】:

  • 感谢您的回复,这对联接、聚合和仅地图作业有何影响?
  • 它们都在同一个框架上运行,所以我不确定你想问什么
  • 绝对是,但是这种方法是否可以提高任何类型工作的性能,还是仅与洗牌有关?
  • 在我看来,更多的副本对性能有负面影响。仍然需要对数据块进行混洗,因为您将过滤、连接和转换存在于其他块中的数据,而不是总是在同一台机器上
猜你喜欢
  • 2015-09-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-15
  • 1970-01-01
  • 1970-01-01
  • 2019-11-15
  • 2015-05-26
相关资源
最近更新 更多