Apache spark Hadoop/Spark:复制因子和性能是如何关联的?

Apache spark Hadoop/Spark:复制因子和性能是如何关联的?,apache-spark,hadoop,mapreduce,hdfs,distributed-computing,Apache Spark,Hadoop,Mapreduce,Hdfs,Distributed Computing,在不讨论所有其他性能因素(磁盘空间和名称节点对象)的情况下,replication factor如何提高MR、Tez和Spark的性能 例如,如果我们有5个datanade,那么执行引擎将复制设置为5是否更好?最好和最差的价值是什么 这对聚合、连接和仅映射作业有何好处?Hadoop的一个主要租户正在将计算转移到数据中 如果将复制因子设置为大约等于datanodes的数量,则可以保证每台计算机都能够处理该数据 但是,正如您所提到的,namenode开销非常重要,更多的文件或副本会导致请求速度变慢。

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

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


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

Hadoop的一个主要租户正在将计算转移到数据中

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

但是,正如您所提到的,namenode开销非常重要,更多的文件或副本会导致请求速度变慢。在一个不健康的群集中,更多的副本也会使您的网络饱和。我从未见过比5更高的数据,这只是针对公司最关键的数据。还有什么,他们只留下了两个复制品


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

数据局部性减少网络I/O感谢您的回复,这将如何影响加入,聚合和仅映射作业?它们都在同一个框架上运行,所以我不确定您到底想问什么,但这种方法是否改善了任何类型作业的性能,或者只是与洗牌相关?在我看来,更多副本会对性能产生负面影响。数据块仍然需要洗牌,因为您将过滤、连接和转换存在于其他块中的数据,而这些数据并不总是在同一台机器上