aws emr如何调整大小

anauzrmj  于 2021-06-02  发布在  Hadoop
关注(0)|答案(3)|浏览(365)

今天我在使用aws emr时有一些问题。
emr为我们提供了非常简单的方法来调整集群的大小,添加和删除一些节点是很容易的。
在apachehadoop中,我们可以修改 slaves 文件以更改添加或删除节点。但我发现 slaves emr中的文件只包含 localhost 我找不到任何其他的配置来显示奴隶的位置。
emr如何在主节点中添加或删除节点而不重新启动进程?

q8l4jmvw

q8l4jmvw1#

使用aws emr上的自动缩放功能,可以在集群上向外扩展和向内扩展节点。可以使用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/

jexiocij

jexiocij2#

您可以通过aws控制台扩展/收缩集群。

使用resize选项更改集群的大小。
您还可以通过控制台向集群添加“任务”节点。

9rbhqvlz

9rbhqvlz3#

主文件和从文件仅由shell脚本(如start-all.sh、start-dfs.sh等)使用。这些文件不由hadoop中的任何其他函数使用。从hadoop集群的Angular 来看,namenode、secondary namenode和worker节点不由这些文件定义的位置。emr没有使用这些shell脚本来启动集群。core-site.xml中的属性fs.default.name或fs.defaultfs定义namenode主机。以此配置开头的所有datanode都将向namenode报告并添加到集群中。类似地,resourcemanager主机在所有节点的yarn-site.xml中定义。
我们不需要重新启动集群中的任何进程来添加新节点。一旦datanode启动,它将向namenode报告,并且以这种方式节点将贡献给hdfs。类似地,一旦nodemanager启动,它将向集群的resourcemanager报告,并将贡献给处理层。
在emr中,我们有3种类型的节点。
主节点
核心节点
任务节点
对于emr集群,主节点只有一个。此节点是具有namenode和所有主服务(如resourcemanager、hbase master等)的节点。
核心节点是具有存储和处理能力的节点,即具有数据节点和节点管理器。我们可以增加核心节点的数量,但不能减少核心节点的数量,因为这样会导致数据丢失。
任务节点是只有处理能力的节点。这基本上是为瞬时负载服务的。只有nodemanager。没有数据节点与此节点关联。我们可以增加或减少任务节点的数量。
调整集群大小时,现有集群不会受到干扰。像start-all.sh、stop-all.sh这样的脚本不会在emr中调用。它启动单个服务并启动集群。因此不考虑主文件和从文件中的条目。

相关问题