EMR on EKS
让基础设施团队可以集中管理通用计算平台,以将 EMR 工作负载与其他基于容器的应用程序整合。
在上面可以使用常见的EKS 工具简化基础设施管理,并利用共享集群来处理需要不同版本开源框架的工作负载。 还可以通过自动化 Kubernetes 集群管理和操作系统修补来减少运营开销。
在上面借助Fargate,可以启用多个计算资源来满足性能、运营或财务要求。
EMR on EC2
和EMR on EKS
的对比如下图:
本节先介绍在EMR on EKS上提交任务
在Cloud 9上确认virtual cluster id
和EMR_ROLE_ARN
已经被设置到环境变量里:
source ~/.bash_profile
echo "VIRTUAL_CLUSTER_ID: $VIRTUAL_CLUSTER_ID" && echo "EMR_ROLE_ARN: $EMR_ROLE_ARN"
在EMR控制台上也能找到Virtual cluster的ID:
通过CLI提交任务(可以提交2-3次):
aws emr-containers start-job-run \
--virtual-cluster-id=$VIRTUAL_CLUSTER_ID \
--name=pi-2 \
--execution-role-arn=$EMR_ROLE_ARN \
--release-label=emr-6.9.0-latest \
--job-driver='{
"sparkSubmitJobDriver": {
"entryPoint": "local:///usr/lib/spark/examples/src/main/python/pi.py",
"sparkSubmitParameters": "--conf spark.executor.instances=1 --conf spark.executor.memory=2G --conf spark.executor.cores=1 --conf spark.driver.cores=1"
}
}'
在Cloud 9上检查任务的状态:
kubectl get po --namespace emr --watch
在EMR控制台上检查任务的状态: