今天我在使用aws emr时有一些问题。emr为我们提供了非常简单的方法来调整集群的大小,添加和删除一些节点是很容易的。在apachehadoop中,我们可以修改 slaves 文件以更改添加或删除节点。但我发现 slaves emr中的文件只包含 localhost 我找不到任何其他的配置来显示奴隶的位置。emr如何在主节点中添加或删除节点而不重新启动进程?
slaves
localhost
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/
jexiocij2#
您可以通过aws控制台扩展/收缩集群。使用resize选项更改集群的大小。您还可以通过控制台向集群添加“任务”节点。
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中调用。它启动单个服务并启动集群。因此不考虑主文件和从文件中的条目。
3条答案
按热度按时间q8l4jmvw1#
使用aws emr上的自动缩放功能,可以在集群上向外扩展和向内扩展节点。可以使用cloudwatch度量(yarnmemoryavailablepercentage和containerpendingratio)触发横向扩展操作。下面的示例策略
你可以参考这个博客了解更多细节https://aws.amazon.com/blogs/big-data/dynamically-scale-applications-on-amazon-emr-with-auto-scaling/
jexiocij2#
您可以通过aws控制台扩展/收缩集群。
使用resize选项更改集群的大小。
您还可以通过控制台向集群添加“任务”节点。
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中调用。它启动单个服务并启动集群。因此不考虑主文件和从文件中的条目。