2016-11-12 2 views
0

Предположим, у нас есть файл на HDFS, имеющий 3 блока (по 64 Мб каждый). Когда мы создаем RDD, используя тот же файл с тремя разделами, каждый узел в кластере (предположим, что кластер имеет 3 узла данных) будет иметь дублированное содержимое файла (один блок из hdfs и раздел RDD)RDD Partitioning

+0

Является ли это истинным пониманием? Просьба уточнить. –

ответ

0

В HDFS блоки распределяются случайным образом (по умолчанию и если клиент, в который вы помещаете файл, не является частью кластера), поэтому вы не можете быть уверены, что каждый узел имеет 1 блок, если у вас нет реплики 3. В этом случае каждый блок будет размещен в трех узлах.

Что касается Spark, по умолчанию Spark пытается считывать данные в RDD из узлов, которые находятся рядом с ним, и пытается распространять rdd-разделы в кластере.

Ваше предположение не всегда верно, вам нужно рассмотреть распределение блоков HDFS с помощью стратегии размещения реплик, исполнителей искры и т. Д. Однако было бы правдой, если у вас есть реплика 3 в HDFS, и у вас есть Spark-кластер с 3 рабочих по одному в каждом узле кластера.