Я хотел бы знать, сколько задач создано для простого задания по подсчету слов для приведенного ниже сценария.
Итак, сначала я объясню сценарий с моим пониманием
rdd=sc.textFile("/user/pathirippilly/sample_data_mr/wordCount.txt",5) # so RDD with 5 partitions
pipeRDD=rdd.map(lambda x : x.split(" ")).flatMap(lambda words : map(lambda word : (word,1),words)).reduceByKey(lambda a,b:a+b)
pipeRDD.collect()
Если вы считаете DAG этапа для приведенного выше кода, у нас есть
stage1:
rdd.map(lambda x : x.split(" ")).flatMap(lambda words : map(lambda word : (word,1),words))
stage2:
reduceByKey(lambda a,b : a+b)
pipeRDD.collect()
Теперь скажите, что во время выполнения spark submit я попросил 512 Мб памяти исполнителя и двух исполнителей.
Также предположим, что у меня есть 10 узлов кластера с каждым рабочим узлом, имеющим минимум 32 ГБ ОЗУ
Таким образом, Cluster Manager (YARN) наверняка выделит один рабочий узел, поскольку я запрашиваю только 2 контейнера JVM с объемом кучи 512 МБ.
Теперь мои вопросы
1.В соответствии с архитектурой, сколько существует разделов, сколько существует задач. Итак, если мы увидим, я могу понять,
stage1 (который включает в себя только узкие преобразования) должны быть применены
на каждом разделе. Так что здесь весь этап 1 будет формировать одну задачу или
в самой stage1 он будет разбит на несколько задач?
2.Позволяет сказать, что executor1 обрабатывает 3 раздела, а executor2 - это 2 раздела handlind. Это означает, что на executor1 3 этапа 1
а 3 этапа2 задачи выполнены? Для executor2 simlary 2 stage1 задачи
и 2 этапа2 задачи выполнены?
3. Скажите, что у меня есть 5 разделов в 5 узлах. Так что на этапе перетасовки или сортировки данные в этих разделах обязательно должны быть
взаимозаменяемыми. Как искра достигает этого? Есть ли что-то хорошее
Пояснение или видео ссылка доступна для этого?