本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用隨機最佳化磁碟
使用 Amazon EMR 7.1.0 版和更新版本,您可以在執行 Apache Spark 或 Hive 任務時使用隨機最佳化磁碟,以提高 I/O 密集型工作負載的效能。與標準磁碟相比,隨機播放最佳化磁碟可提供更高的 IOPS (每秒 I/O 操作),以加快資料移動速度,並降低隨機播放操作期間的延遲。隨機最佳化磁碟可讓您連接每個工作者最多 2 TB 的磁碟大小,以便您可以設定工作負載需求的適當容量。
主要優點
隨機最佳化磁碟提供下列優點。
開始使用
請參閱下列步驟,以在工作流程中使用隨機最佳化磁碟。
- Spark
-
-
使用以下命令建立 EMR Serverless 7.1.0 版應用程式。
aws emr-serverless create-application \
--type "SPARK" \
--name my-application-name \
--release-label emr-7.1.0 \
--region <AWS_REGION>
-
設定您的 Spark 任務以包含參數spark.emr-serverless.driver.disk.type
和/spark.emr-serverless.executor.disk.type
或使用隨機最佳化磁碟執行。視您的使用案例而定,您可以使用一個或兩個參數。
aws emr-serverless start-job-run \
--application-id application-id
\
--execution-role-arn job-role-arn
\
--job-driver '{
"sparkSubmit": {
"entryPoint": "/usr/lib/spark/examples/jars/spark-examples.jar",
"entryPointArguments": ["1"],
"sparkSubmitParameters": "--class org.apache.spark.examples.SparkPi
--conf spark.executor.cores=4
--conf spark.executor.memory=20g
--conf spark.driver.cores=4
--conf spark.driver.memory=8g
--conf spark.executor.instances=1
--conf spark.emr-serverless.executor.disk.type=shuffle_optimized"
}
}'
如需詳細資訊,請參閱 Spark 任務屬性。
- Hive
-
-
使用以下命令建立 EMR Serverless 7.1.0 版應用程式。
aws emr-serverless create-application \
--type "HIVE" \
--name my-application-name \
--release-label emr-7.1.0 \
--region <AWS_REGION>
-
設定 Hive 任務以包含參數hive.driver.disk.type
和/hive.tez.disk.type
或使用隨機最佳化磁碟執行。視您的使用案例而定,您可以使用一個或兩個參數。
aws emr-serverless start-job-run \
--application-id application-id
\
--execution-role-arn job-role-arn
\
--job-driver '{
"hive": {
"query": "s3://<DOC-EXAMPLE-BUCKET>
/emr-serverless-hive/query/hive-query.ql",
"parameters": "--hiveconf hive.log.explain.output=false"
}
}' \
--configuration-overrides '{
"applicationConfiguration": [{
"classification": "hive-site",
"properties": {
"hive.exec.scratchdir": "s3://<DOC-EXAMPLE-BUCKET>
/emr-serverless-hive/hive/scratch",
"hive.metastore.warehouse.dir": "s3://<DOC-EXAMPLE-BUCKET>
/emr-serverless-hive/hive/warehouse",
"hive.driver.cores": "2",
"hive.driver.memory": "4g",
"hive.tez.container.size": "4096",
"hive.tez.cpu.vcores": "1",
"hive.driver.disk.type": "shuffle_optimized",
"hive.tez.disk.type": "shuffle_optimized"
}
}]
}'
如需詳細資訊,請參閱 Hive 任務屬性。
設定具有預先初始化容量的應用程式
請參閱下列範例,以根據 Amazon EMR 7.1.0 版建立應用程式。這些應用程式具有下列屬性:
當此應用程式執行 Spark 任務時,它會先使用預先初始化的工作者,然後將隨需工作者擴展到 400 vCPU 和 1024 GB 記憶體的最大容量。或者,您可以省略 DRIVER
或 的容量EXECUTOR
。
- Spark
-
aws emr-serverless create-application \
--type "SPARK" \
--name <my-application-name>
\
--release-label emr-7.1.0 \
--initial-capacity '{
"DRIVER": {
"workerCount": 5,
"workerConfiguration": {
"cpu": "2vCPU",
"memory": "4GB",
"disk": "50GB",
"diskType": "SHUFFLE_OPTIMIZED"
}
},
"EXECUTOR": {
"workerCount": 50,
"workerConfiguration": {
"cpu": "4vCPU",
"memory": "8GB",
"disk": "500GB",
"diskType": "SHUFFLE_OPTIMIZED"
}
}
}' \
--maximum-capacity '{
"cpu": "400vCPU",
"memory": "1024GB"
}'
- Hive
-
aws emr-serverless create-application \
--type "HIVE" \
--name <my-application-name>
\
--release-label emr-7.1.0 \
--initial-capacity '{
"DRIVER": {
"workerCount": 5,
"workerConfiguration": {
"cpu": "2vCPU",
"memory": "4GB",
"disk": "50GB",
"diskType": "SHUFFLE_OPTIMIZED"
}
},
"EXECUTOR": {
"workerCount": 50,
"workerConfiguration": {
"cpu": "4vCPU",
"memory": "8GB",
"disk": "500GB",
"diskType": "SHUFFLE_OPTIMIZED"
}
}
}' \
--maximum-capacity '{
"cpu": "400vCPU",
"memory": "1024GB"
}'