我新的火花......一些基本的东西要通过基本面的时候我不明白:星火基础
查询1.分发处理 - 可以激发无HDFS的工作 - 在群集上的Hadoop文件系统(如通过创建它自己的分布式文件系统),还是需要一些基本的分布式文件系统,如HDFS,GPFS等的必备条件。
查询2.如果我们已经有一个文件加载到HDFS中块) - 然后将再次将Spark转换为块并在其级别重新分配(用于分布式处理),或者将按照Haddop HDFS群集使用块分配。
查询3.除定义DAG外,SPARK还创建像MapReduce那样的分区并将分区拖动到Reducer节点以进行进一步计算? 我很困惑,因为直到创建DAG,很明显,在每个Worker节点上工作的Spark Executor将数据块加载为内存中的RDD,并且按照DAG应用计算....但是部件需要用于分区数据按照Keys的要求,并将它们带到Reducer任务将执行的其他节点(就像mapreduce),这是如何在内存中完成的?
感谢@Daniel回答所有三个问题,下次会更加清楚。 你是对的我的查询只与Shuffle有关....从你的回答中得到更多我假设参数:spark.shuffle.memoryFraction和spark.shuffle.spill都适用于映射器 - 当Shuffle创建块时使用。 Reducer节点会发生什么?它会直接在内存中获取混洗块,还是首先将块写入Reducer节点磁盘,然后加载到内存中进行计算。 – Kansingh
伟大的问题!我认为减速器也可能泄漏到磁盘。这些问题最好通过检查代码来解决,但洗牌代码的结构相当复杂。也许这是这个地方:https://github.com/apache/spark/blob/v1.4.1/core/src/main/scala/org/apache/spark/shuffle/hash/HashShuffleReader.scala#L55 –