Как распространять код
Это происходит, когда вы spark-submit
используете приложение Spark. Распределение может быть по ядру / потоку процессора или исполнителям. Вам не нужно кодировать это. Вот почему люди используют Spark, как это должно произойти (почти) автоматически.
conf.setMaster ( "местный [*]")
Это говорит о том, что вы используете одного исполнителя с таким количеством потоков, сколько у вас ядер ЦП. Это локальный дистрибутив.
Вам лучше удалить строку из кода и использовать вместо нее spark-submit --master
. Прочитайте официальную документацию, особенно Подача заявок .
... и набор данных в рабочие узлы?
val rawData = sc.textFile ("file: ///usr/local/spark/dataset/rating.csv")
В строке указано, как распределяется набор данных Movielens (rating.csv
). Это не имеет никакого отношения к Spark, поскольку Spark использует любой дистрибутив в файловой системе.
Другими словами, в Hadoop HDFS с размером блока 256 МБ ( split ) файл, вдвое превышающий размер блока, доступен в 2 частях. Это HDFS, чтобы сделать файл распределенным и отказоустойчивым.
Когда Spark считывает файл с двумя разделениями, распределенные вычисления (описанные с использованием RDD) будут использовать 2 раздела и, таким образом, 2 задачи.
HDFS - это файловая система / хранилище, поэтому выберите любое место и hdfs -put
набор данных. Думайте о HDFS как о любой файловой системе, к которой у вас есть удаленный доступ. Используйте местоположение в качестве входного параметра sc.textFile
, и все готово.