2014-10-24 5 views
3

Я новичок в hadoop, и я еще не знаком с его конфигурацией.Каков максимальный контейнер (контейнеры) в одноузловом кластере (hadoop)?

Я просто хочу спросить максимальный контейнер на узел.

Я использую один узел кластера (6GB оперативной памяти ноутбук)

и ниже мой mapred и пряжи конфигурации:

**mapred-site.xml** 
map-mb : 4096 opts:-Xmx3072m 
reduce-mb : 8192 opts:-Xmx6144m 

**yarn-site.xml** 
resource memory-mb : 40GB 
min allocation-mb : 1GB 

выше установка может работать только от 4 до 5 рабочих мест. и максимум 8 контейнеров.

ответ

9

Максимальные контейнеры, которые работают на одном NodeManager (hadoop worker), зависят от множества факторов, таких как количество памяти для NodeManager, а также зависит от конкретных требований приложения.

По умолчанию для yarn.scheduler.*-allocation-*: 1 ГБ (минимальное размещение), 8 ГБ (максимальное выделение), 1 ядро ​​и 32 ядра. Таким образом, минимальное и максимальное распределение влияет на количество контейнеров на узел.

Итак, если у вас есть 6GB ОЗУ и 4 виртуальных ядра, вот как конфигурация ПРЯЖА должна выглядеть следующим образом:

yarn.scheduler.minimum-allocation-mb: 128 
yarn.scheduler.maximum-allocation-mb: 2048 
yarn.scheduler.minimum-allocation-vcores: 1 
yarn.scheduler.maximum-allocation-vcores: 2 
yarn.nodemanager.resource.memory-mb: 4096 
yarn.nodemanager.resource.cpu-vcores: 4 

Приведенная выше конфигурация говорит Hadoop использовать atmost 4 Гб и 4 виртуальных ядер и что каждый контейнер может иметь от 128 МБ до 2 ГБ памяти и от 1 до 2 виртуальных ядер, с этими настройками вы можете запускать до 2 контейнеров с максимальными ресурсами за раз.

Теперь для MapReduce конкретной конфигурации:

yarn.app.mapreduce.am.resource.mb: 1024 
yarn.app.mapreduce.am.command-opts: -Xmx768m 
mapreduce.[map|reduce].cpu.vcores: 1 
mapreduce.[map|reduce].memory.mb: 1024 
mapreduce.[map|reduce].java.opts: -Xmx768m 

При такой конфигурации, вы можете теоретически иметь до 4 картографов/редукторы, работающих одновременно в 4 1GB контейнеров. На практике мастер приложения MapReduce будет использовать контейнер размером 1 ГБ, поэтому фактическое количество одновременных карт и редукторов будет ограничено до 3. Вы можете играть с ограничениями памяти, но для их поиска может потребоваться некоторое экспериментирование.

Как правило, вы должны ограничить размер кучи примерно до 75% от общей доступной памяти, чтобы обеспечить бесперебойную работу.

Вы также можете установить память на контейнер, используя свойство yarn.scheduler.minimum-allocation-mb.

Для более подробной конфигурации для производственных систем используйте этот document от hortonworks в качестве ссылки.

+0

Существует один главный узел с 8 ГБ оперативной памятью и 8VCPU ядрами и 10 подчиненными узлами с 2 ГБ оперативной памяти и 1VCPU ядром на каждом из моих кластеров Hadoop 2.5.2. Для приложения MapReduce создаются 5 входов. Один контейнер работает только на одном подчиненном узле. Какое доверие позволит моему applciaton использовать все/masx slave ndoes. Я хочу запустить приложение с 50 подчиненными ndoes. – Tariq