2016-03-29 6 views
1

У меня есть некоторый вопрос при использовании AWS EMR сегодня.Как изменяет размер AWS EMR

EMR обеспечивает очень простой способ для изменения размера кластера, добавив удаление некоторых узлов.

В apache hadoop мы можем изменить файл slaves, чтобы изменить добавление или удаление узлов. Но я нашел slaves файл в EMR содержит только localhost, и я не могу найти другую конфигурацию, указывающую, где находятся ведомые устройства.

Как EMR добавлять или удалять узлы из кластера, даже не перезагружая процесс в главном узле?

ответ

1

Файлы master и slaves используются только командами shell, такими как start -all.sh, start-dfs.sh и т. Д. Эти файлы не используются какой-либо другой функцией в hadoop. С точки зрения кластеров хаоап, местоположение, где этименовые, вторичные namenode, рабочие узлы не определены этими файлами. EMR не использует эти сценарии оболочки для запуска кластера. Свойство fs.default.name или fs.defaultFS в файле core-site.xml определяет узловое имя узла. Все datanodes, которые начинаются с этой конфигурации, будут сообщать о назначении и добавляться в кластер. Точно так же узел resourcemanager определен в узле yarn-site.xml всех узлов.

Нам не нужно перезапускать какой-либо процесс в кластере для добавления новых узлов. Как только datanode встанет, он будет сообщать о назначении, и таким образом узел будет вносить вклад в HDFS. Аналогично, как только nodemanager встанет, он сообщит диспетчеру ресурсов кластера, и он внесет вклад в уровень обработки.

В EMR у нас есть 3 типа узлов.

  • Мастер узел
  • Основного узел
  • Задача узел

Для кластера ОГО мастера-узлы будут только один. Этот узел является узлом, который имеет namenode и все основные сервисы, такие как Resourcemanager, HBase Master и т. Д.

Основной узел - это узел с памятью, а также возможность обработки, что означает, что у него есть datanode и nodemanager. Мы можем увеличить количество основных узлов, но мы не можем уменьшить число, потому что это приведет к потере данных.

Узлы задач - это узлы, которые имеют только возможности обработки. Это в основном для обслуживания переходных нагрузок. У этого есть только nodemanager. С этим узлом не связан ни один datanode. Мы можем увеличить или уменьшить количество узлов задачи.

При изменении размера кластера существующий кластер не нарушается. Такие сценарии, как start -all.sh, stop-all.sh, не вызываются в EMR. Он запускает отдельные службы и создает кластер. Таким образом, записи в главном и подчиненном файлах не рассматриваются.

0

Вы можете развернуть/сжать кластер через консоль AWS. enter image description here

Используйте параметр изменения размера, чтобы изменить размер вашего кластера.

Вы также можете добавить узлы «задачи» в кластер, а также через консоль.

0

Использование Autoscaling на AWS EMR позволяет масштабировать и масштабировать узлы кластера. Действие Scale out может быть вызвано с использованием показателей Cloudwatch (YARNMemoryAvailablePercentage и ContainerPendingRatio). Политика образца ниже

"AutoScalingPolicy": 
{ 
"Constraints": 
    { 
    "MinCapacity": 10, 
    "MaxCapacity": 50 
    }, 

"Rules": 
[ 
    {"Name": "Compute-scale-up", 
    "Description": "Scale out based on ContainerPending Mterics", 
    "Action": 
    { 
    "SimpleScalingPolicyConfiguration": 
     {"AdjustmentType": "CHANGE_IN_CAPACITY", 
     "ScalingAdjustment": 1, 
     "CoolDown":0} 
    }, 
    "Trigger": 
    {"CloudWatchAlarmDefinition": 
     {"AlarmNamePrefix": "compute-scale-up", 
     "ComparisonOperator": "GREATER_THAN_OR_EQUAL", 
     "EvaluationPeriods": 3, 
     "MetricName": "ContainerPending", 
     "Namespace": "AWS/ElasticMapReduce", 
     "Period": 300, 
     "Statistic": "AVERAGE", 
     "Threshold": 10, 
     "Unit": "COUNT", 
     "Dimensions": 
     [ 
      {"Key": "JobFlowId", 
      "Value": "${emr:cluster_id}"} 
     ] 
     } 
    } 
    }, 
    {"Name": "Compute-scale-down", 
    "Description": "Scale in", 
    "Action": 
    { 
     "SimpleScalingPolicyConfiguration": 
     {"AdjustmentType": "CHANGE_IN_CAPACITY", 
     "ScalingAdjustment": -1, 
     "CoolDown":300} 
    }, 
    "Trigger": 
    {"CloudWatchAlarmDefinition": 
     {"AlarmNamePrefix": "compute-scale-down", 
     "ComparisonOperator": "GREATER_THAN_OR_EQUAL", 
     "EvaluationPeriods": 3, 
     "MetricName": "MemoryAvailableMB", 
     "Namespace": "AWS/ElasticMapReduce", 
     "Period": 300, 
     "Statistic": "AVERAGE", 
     "Threshold": 24000, 
     "Unit": "COUNT", 
     "Dimensions": 
     [ 
      {"Key": "JobFlowId", 
      "Value": "${emr:cluster_id}"} 
     ] 
     } 
    } 
    } 
] 
} 

Вы можете передать этот блог для более подробной информации https://aws.amazon.com/blogs/big-data/dynamically-scale-applications-on-amazon-emr-with-auto-scaling/

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