2016-05-03 6 views
2

Как искра запускает в памяти то, что означает выделение ресурсов в Spark при запуске на пряжу и как она отличается от распределения контейнера хауопа? Просто любопытно узнать, как данные и вычисления hadoop находятся на диске, где Spark находится в памяти.Что означает контейнер/распределение ресурсов в Hadoop и Spark при работе с пряжей?

ответ

3

Hadoop - это каркас, способный обрабатывать большие данные. Он имеет два слоя. Один из них - это уровень распределенной файловой системы, называемый HDFS, а второй - распределенный процессорный уровень. В hadoop 2.x, обрабатывающий уровень имеет архитектуру в общем виде, так что он также может использоваться для приложений, не относящихся к карте. Для выполнения любого процесса нам нужны системные ресурсы, такие как память, сеть, диск и процессор. Термин контейнер попал в hadoop 2.x. В hadoop 1.x эквивалентный термин был слотом. Контейнер представляет собой распределение или долю памяти и процессора. YARN - это общая структура управления ресурсами, которая позволяет эффективно использовать ресурсы в узлах кластера путем правильного распределения и совместного использования.

В процессе работы с памятью данные будут полностью загружены в память и обработаны без записи промежуточных данных на диск. Эта операция будет быстрее, поскольку вычисления происходят в памяти без больших операций ввода-вывода диска. Но для этого требуется больше памяти, потому что все данные будут загружены в память.

Пакетный процесс означает, что данные будут обрабатываться и обрабатываться партиями, промежуточные результаты будут сохранены на диске и снова будут переданы следующему процессу. Для этого также требуется память и процессор для обработки, но она будет меньше по сравнению с системами полной обработки в памяти.

Менеджер ресурсов YARN выступает в качестве центрального распределителя ресурсов для таких приложений, как mapreduce, impala (с llama), искра (в режиме пряжи) и т. Д. Поэтому, когда мы запускаем задание, он запрашивает у менеджера ресурсов требуемые ресурсы для выполнения. Менеджер ресурсов будет выделять ресурсы на основе доступности. Ресурсы будут выделены в виде контейнеров. Контейнер - это просто распределение памяти и процессора. Для одного задания может потребоваться несколько контейнеров. Контейнеры будут распределены по кластеру в зависимости от доступности. Задачи будут выполняться внутри контейнера.

Например, когда мы отправляем задание mapreduce, запускается мастер приложения MR, и он будет вести переговоры с менеджером ресурсов для получения дополнительных ресурсов. Карта и сокращение задач будут генерироваться в выделенных ресурсах.

Аналогично, когда мы отправляем искровое задание (режим YARN), запускается мастер применения искры, и он будет вести переговоры с менеджером ресурсов для получения дополнительных ресурсов. RDD будет генерироваться в выделенных ресурсах.

+0

Спасибо за подробный ответ. –

Смежные вопросы