Я новый Спарк ... некоторые основные вещи я не ясно, когда происходит через основы:Спарк Основы
запроса 1. Для распределения обработки - Может Спарк работать без HDFS - файловой системы Hadoop на кластере (например, создавая собственную распределенную файловую систему), или требуется какая-то базовая распределенная файловая система на месте, такая как HDFS, GPFS и т. д.
Запрос 2. Если у нас уже есть файл, загруженный в HDFS (как распределенный блоков), то Spark снова преобразует его в блоки и перераспределяет на своем уровне (для распределенной обработки) или просто будет использовать распределение блоков в соответствии с кластером HADDOP HDFS.
Запрос 3. Помимо определения DAG, SPARK также создает такие разделы, как MapReduce, и перетаскивает разделы в узлы редуктора для дальнейшего вычисления? Я смущен тем же, что и до создания DAG, ясно, что Spark Executor, работающий над каждым узлом Worker, загружает блоки данных в виде RDD в память, а вычисление применяется в соответствии с DAG .... но где же эта часть требуется для разбиения данных в соответствии с ключами и перенося их на другие узлы, где будет выполняться задача редуктора (так же, как mapreduce), как это делается в памяти?
Спасибо @ Даниэль за ответ на все три, попытается быть более ясным в следующий раз. Вы правы мой запрос был связан только с Shuffle .... дальше от вашего ответа Я предполагаю Параметры: spark.shuffle.memoryFraction & spark.shuffle.spill оба будут применимы к Mappers - используются, когда Shuffle создает блок. Что происходит в узле Reducer, он извлекает перетасованные блоки непосредственно в память или блоки сначала записываются на диск узла редуктора, а затем загружаются в память для вычисления. – Kansingh
Отличный вопрос! Я _think_ редукторы также могут разливаться на диск. На эти вопросы лучше всего ответить, проверив код, но код тасования структурирован довольно сложным образом. Возможно, это место: https://github.com/apache/spark/blob/v1.4.1/core/src/main/scala/org/apache/spark/shuffle/hash/HashShuffleReader.scala#L55 –