Amazon ec2 在启动群集时,如何指定主节点的磁盘空间(卷大小)?
此文档显示了基于实例大小的默认卷大小: 我的问题是如何在启动集群时指定更大的卷大小 目前,我正在群集启动并运行后从EMR页面手动更改它:Amazon ec2 在启动群集时,如何指定主节点的磁盘空间(卷大小)?,amazon-ec2,amazon-emr,Amazon Ec2,Amazon Emr,此文档显示了基于实例大小的默认卷大小: 我的问题是如何在启动集群时指定更大的卷大小 目前,我正在群集启动并运行后从EMR页面手动更改它: 您可以指定volumspecificationJSON来完成此操作。我没有为主节点尝试此操作。我曾将其用于核心节点和任务节点,但我相信这个概念也可以扩展到主节点 VolumeSpecificationJSON中的字段是自解释的,因此我不在这里添加它们的解释。你可以在这里读 我正在添加一个代码片段,可以帮助您准确地使用此配置。 我在代码中使用标准的bot3库。
您可以指定
volumspecification
JSON来完成此操作。我没有为主节点尝试此操作。我曾将其用于核心节点和任务节点,但我相信这个概念也可以扩展到主节点
VolumeSpecification
JSON中的字段是自解释的,因此我不在这里添加它们的解释。你可以在这里读
我正在添加一个代码片段,可以帮助您准确地使用此配置。
我在代码中使用标准的bot3库
。我有一个生成EMR集群的lambda函数,但是有一个生成EMR的lambda函数是,不是必须的,,您可以选择自己的替代方案。
代码片段是:
from datetime import datetime
import boto3
'''
This code snippet is used to create an EMR cluster.
'''
def create_emr_cluster(event, context):
conn = boto3.client("emr")
today = datetime.today().strftime('%Y-%m-%d')
cluster_id = conn.run_job_flow(
Name='Your_EMR_name',
ServiceRole='EMR_DefaultRole',
JobFlowRole='EMR_EC2_DefaultRole',
VisibleToAllUsers=True,
LogUri='s3://your-s3-path-where-you-want-cluster-logs/%s/' % today,
ReleaseLabel='emr-5.17.0',
ScaleDownBehavior='TERMINATE_AT_TASK_COMPLETION',
Applications=[{'Name': 'Spark'},
{'Name': 'Hadoop'},
{'Name': 'Hive'},
{'Name': 'Hue'}]
Instances={
'KeepJobFlowAliveWhenNoSteps': False,
'Ec2KeyName': 'your-key-name-here',
'Ec2SubnetId': 'your-subnet-id',
'InstanceFleets': [
{'Name': 'Master Node',
'InstanceFleetType': 'MASTER',
'TargetOnDemandCapacity': 1,
'InstanceTypeConfigs': [{
'InstanceType': 'c4.xlarge'
}]
}, {
'Name': 'Core Node',
'InstanceFleetType': 'CORE',
'TargetOnDemandCapacity': 1,
'InstanceTypeConfigs': [{
'InstanceType': 'r5.2xlarge',
"EbsConfiguration": {
"EbsBlockDeviceConfigs": [
{
"VolumeSpecification": {
"SizeInGB": 64,
"VolumeType": "gp2"
},
"VolumesPerInstance": 1
}
]
}
}]
}, {
'Name': 'Task Nodes',
'InstanceFleetType': 'TASK',
'TargetSpotCapacity': 100,
'InstanceTypeConfigs': [{
'InstanceType': 'r5.2xlarge',
'BidPriceAsPercentageOfOnDemandPrice': 50,
'WeightedCapacity': 16,
"EbsConfiguration": {
"EbsBlockDeviceConfigs": [
{
"VolumeSpecification": {
"SizeInGB": 32,
"VolumeType": "gp2"
},
"VolumesPerInstance": 1
}
]
}
}, {
'InstanceType': 'r5.4xlarge',
'BidPriceAsPercentageOfOnDemandPrice': 50,
'WeightedCapacity': 40,
"EbsConfiguration": {
"EbsBlockDeviceConfigs": [
{
"VolumeSpecification": {
"SizeInGB": 64,
"VolumeType": "gp2"
},
"VolumesPerInstance": 1
}
]
}
}]
}]
}
)
return cluster_id['JobFlowId']