Установка PySpark
PySpark Vs Spark
Python как основной язык разработки для Spark
Установка PySpark
1-Как установить PySpark?
Установка Анаконды для Linux
2-Как установить анаконду?
3-У Анаконды много программного обеспечения
4-Conda можно использовать для создания виртуальной среды в Anaconda.
5-Как просмотреть виртуальную среду, созданную Conda?
Установка PySpark
Настройки среды Jupyter
Страница мониторинга
бегущее пи
Обзор возможностей Hadoop
hadoop jar xxxx.jar 100
yarn jar xxxx.jar 1000
Выполнение задачи мистера
В Spark также есть соответствующий код для отправки задач.
spark-submit Отправьте код расчета для числа Пи */examples/src/main/python/pi.py*
Отправленная команда:
bin/spark-submit --master local[2] /export/server/spark/examples/src/main/python/pi.py 10 или
# Для решения числа Пи на основе метода Монте-Карло требуется параметр 10 или количество раз, представленное 100.
bin/spark-submit \
--master local[2] \
/export/server/spark/examples/src/main/python/pi.py \
10
Метод Монте-Карло для решения ПИ
Используемый способ метания дротиков в крайнем случае можно разделить на количество попаданий дротика в круг на количество попаданий дротика в квадрат.
hadoop jar /export/server/hadoop-3.3.0/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.0.jar pi 10 10
Первые 10, используемые в задачах отправки Hadoop, представляют задачу карты, а вторые 10 представляют количество бросков для каждой задачи карты.
Значение параметра 10, отправленного с помощью spark-submit, — это количество бросков.
Простой py-код
def pi(times): # раз означает, сколько раз он попадет в квадрат x_time = 0 for i in range(times): # Сколько попадает в круг x = random.random() y = random.random() if x * x + y * y <= 1: x_time += 1 return x_time / times * 4.0
print(pi(10000000))#3.1410412
Автономная архитектура
ролевой анализ
Главная роль, узел управления, Запустите процесс с именем Master, *Существует только один главный процесс*(HAкроме шаблона) Роль работника, Рабочий узел, запустите именованный Рабочий процесс., Рабочий процесс**** минимум 1, До неограниченного**** Главный процесс отвечает за управление ресурсами. И когда программа запущена, Создайте драйвер-менеджер для текущей программы. Драйвер: Драйверы, которые используют SparkCONtext для подачи заявки на ресурсы, называются драйверами. Они сообщают, сколько процессора или памяти требуется для задачи. Рабочий процесс отвечает за выполнение работы, Сообщить о статусе Мастеру, И следуйте инструкциям программы Драйвер и создайте Исполнителя для работы. В Работнике есть Исполнитель, и Исполнитель фактически выполняет работу.
Кластерное планирование
Кто Мастер, а кто Работник? узел1: мастер/работник узел2: раб/работник узел3: раб/работник
Установите Python3 для каждой машины
Процесс установки
тест
WebUi
(1)Spark-shell
bin/spark-shell --master spark://node1:7077
(2)pyspark
Предварительное условие: Anaconda должна быть установлена на всех трех компьютерах, а также должен быть установлен пакет PySpark3.1.2.
шаг:
Если вы используете crt для загрузки файлов, обычно используйте команду rz, yum install -y lrzsz
1- Подготовьте анаконду на 3 виртуальных машинах
2-Установить anaconda, sh anaconda.sh
3. Установите pyspark. Обратите внимание, что переменные среды не обязательно настраиваются. Вы также можете перейти непосредственно в папку.
4-тест
Вызов: bin/pyspark --master spark://node1:7077
(3)spark-submit
#Скрипт на основе Standalone
#driver применяется к ресурсам задания диспетчеру ресурсов кластера --master.
#Процесс выполнения вычислений находится в воркере У воркера много исполнителей (процессов), и под одним исполнителем находится множество задач (потоков).
bin/spark-submit \
--master spark://node1:7077 \
--driver-memory 512m \
--executor-memory 512m \
--conf "spark.pyspark.driver.python=/root/anaconda3/bin/python3" \
--conf "spark.pyspark.python=/root/anaconda3/bin/python3" \
/export/server/spark/examples/src/main/python/pi.py \
10
*полный
Архитектура приложения Spark
1) Когда пользовательская программа создает SparkContext, вновь созданный экземпляр SparkContext будет подключен к ClusterManager. Менеджер кластера выделит вычислительные ресурсы для этой отправки и запустит Исполнителя на основе информации о процессоре и памяти, установленной при отправке пользователем. 2) Драйвер разделит пользовательскую программу на разные этапы выполнения. Каждый этап выполнения состоит из набора одинаковых задач. Эти задачи действуют на разные разделы обрабатываемых данных. После завершения разделения этапов и создания Задания Водитель отправляет Задание Исполнителю; 3) После получения Задачи Исполнитель загрузит зависимости времени выполнения Задачи. После подготовки среды выполнения Задачи он начнет выполнение Задачи и сообщит Водителю о статусе выполнения Задачи; 4) Драйвер будет обрабатывать различные обновления статуса в зависимости от статуса выполнения полученной задачи. Задачи делятся на два типа: одна — Задача «Перетасовать карту», которая перетасовывает данные и сохраняет перетасованные результаты в файловую систему узла, где расположен Исполнитель, другая — Задача «Результат», отвечающая за генерацию данных результата; ; 5) Драйвер будет непрерывно вызывать Задачи, отправлять Задачи на исполнение Исполнителю и останавливаться, когда все Задачи выполняются корректно или лимит времени выполнения превышен, а выполнение по-прежнему не удалось;
Высокая доступность высокой доступности
Реализация высокой доступности на базе Zookeeper
запустить тест
spark-shell
pyspark
Искра-отправка #Скрипт на основе StandaloneHA бен/искра-отправка –master spark://node1:7077,node2:7077 –conf «spark.pyspark.driver.python=/root/anaconda3/bin/python3» –conf «spark.pyspark.python=/root/anaconda3/bin/python3» /export/server/spark/examples/src/main/python/pi.py 10