为什么当我们使用更多节点并且shuffle值保持相等时,spark UI上的输入值更少?

时间:2016-05-27 22:17:02

标签: apache-spark

我只用一个节点然后用4个节点对spark运行一些查询。在火花:4040 UI我看到一些我不理解的东西。例如,在执行具有4个节点的查询并在spark UI中检查结果后,在“input”选项卡中出现2,8gb,因此spark从hadoop读取2,8gb。

在本地模式下只有一个节点的hadoop上的相同查询出现7,3gb,火花从hadoop读取7,3GB。但这个价值不应该相等?例如,shuffle的值在一个节点中保持+ - 相等而不是4.为什么输入值不能保持相等?必须从hdfs读取相同数量的数据,所以我不理解。你知道吗?

单个节点:

enter image description here

在多节点的相同查询下面,你可以看到输入较少但是随机播放仍然是+ - icual,你知道为什么吗? enter image description here

2 个答案:

答案 0 :(得分:1)

我假设你在谈论工作中的输入标签。它可能是累积存储。请检查执行程序选项卡中的输入。与4节点一样,它将有更多的执行器,数据将被分发。

答案 1 :(得分:1)

输入是您的spark作业正在摄取的数据大小。例如,它可以是您可能已定义的每个地图任务正在使用的数据。

Shuffling意味着在多个Spark阶段之间重新分配数据。 " Shuffle Write"是传输之前所​​有执行者的所有书面序列化数据的总和(通常在阶段结束时)和#34; Shuffle Read"表示在阶段开始时所有执行程序上读取序列化数据的总和。