[Spark и не только]
Сегодня начал просмотр материалов по Spark. Узнал немного историю создания и некоторую базу.
Apache Spark ™ — это многоязычный движок для выполнения обработки данных в локальном или кластерном режимах со встроенными модулями для SQL, потоковой передачи, машинного обучения и обработки графов.
В кластерном режиме приложения Spark выполняются как независимые наборы процессов, координируемые объектом SparkContext в основной программе (называемым программой-драйвером).
Об этой архитектуре следует отметить несколько полезных вещей:
1) Каждое приложение получает свои собственные процессы-исполнители, которые работают на протяжении всей работы приложения и выполняют задачи в нескольких потоках. Преимущество этого заключается в изоляции приложений друг от друга как со стороны планирования (каждый драйвер планирует свои собственные задачи), так и со стороны исполнителя (задачи из разных приложений выполняются в разных JVM). Однако это также означает, что данные не могут совместно использоваться различными приложениями Spark (экземплярами SparkContext) без их записи во внешнюю систему хранения.
2) Spark не зависит от базового менеджера ресурсов. Поскольку он может создавать процессы-исполнители и они взаимодействуют друг с другом, его относительно легко запустить даже в менеджере ресурсов, который также поддерживает другие приложения (например, YARN/Kubernetes).
3) Программа-драйвер должна прослушивать и принимать входящие соединения от своих исполнителей на протяжении всего своего существования (например, см. spark.driver.port в разделе конфигурации сети). Таким образом, программа-драйвер должна иметь сетевую адресацию с рабочих узлов.
4) Поскольку драйвер планирует задачи в кластере, его следует запускать рядом с рабочими узлами, желательно в той же локальной сети. Если вы хотите отправлять запросы в кластер удаленно, лучше открыть RPC для драйвера и заставить его отправлять операции поблизости, чем запускать драйвер далеко от рабочих узлов.
———
По распределенной вычислительной модели знакомился с:
- вопросом безопасности распределенных систем;
- общей схемой разработки распределенного приложения;
———
"Операционные системы. Основы и принципы" Х. Дейтел — 2,5%
Post #537
438
- 🔥 3