本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用随机排序优化的磁盘
在 Amazon EMR 7.1.0 及更高版本中,您可以在运行 Apache Spark 或 Hive 作业时,使用随机排序优化的磁盘来提高 I/O 密集型工作负载的性能。与标准磁盘相比,随机排序优化的磁盘可提供更高的 IOPS(每秒 I/O 操作数),以加快数据移动速度,并减少随机操作期间的延迟。随机排序优化的磁盘允许为每个工作线程附加高达 2TB 的磁盘大小,让您可以根据工作负载要求配置适当的容量。
主要优势
随机排序优化的磁盘具有以下优势。
入门
要在工作流程中使用随机排序优化的磁盘,请参阅以下步骤。
- 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 和 1024GB 内存。您可以选择忽略 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"
}'