A Python skill for interacting with AWS EMR across three deployment modes: EMR Serverless, EMR on EC2, and EMR on EKS. Submit Spark and Hive jobs, manage clusters and applications, monitor job status, and retrieve logs.
Invoke this skill when the user mentions:
text
"Submit a Spark job on EMR"
"List EMR Serverless applications"
"Add a step to my EMR cluster"
"Get EMR job logs"
"Check EMR job status"
"Cancel running EMR job"
"List EMR clusters"
"Create an EMR on EKS virtual cluster"
"Submit PySpark to EMR Serverless"
"Get step logs from EMR cluster"
Any request involving EMR Serverless applications/jobs, EMR on EC2 clusters/steps, or EMR on EKS virtual clusters/job runs.
Python 3.8+ with boto3>=1.26.0:
bash
pip install boto3>=1.26.0
AWS credentials via boto3 default chain (env vars, config files, IAM roles).
Environment variables (all optional, validated at point of use): bash
export AWS_REGION="us-east-1"
# EMR Serverless
export EMR_SERVERLESS_APP_ID="00abcdef12345678"
export EMR_SERVERLESS_EXEC_ROLE_ARN="arn:aws:iam::123456789:role/emr-role"
export EMR_SERVERLESS_S3_LOG_URI="s3://my-bucket/emr-logs/"
# EMR on EC2
export EMR_CLUSTER_ID="j-XXXXXXXXXXXXX"
# EMR on EKS
export EMR_EKS_VIRTUAL_CLUSTER_ID="abc123def456"
export EMR_EKS_EXEC_ROLE_ARN="arn:aws:iam::123456789:role/emr-eks-role"
Fully managed serverless Spark/Hive execution. No infrastructure to manage.
scripts/on_serverless/emr_serverless_cli.py — 14 @tool functionsreferences/emr_serverless/application_guide.md — Application lifecyclereferences/emr_serverless/job_guide.md — Job submission, results, logsTraditional EMR clusters on EC2 instances. Submit work as Steps.
scripts/on_ec2/emr_on_ec2_cli.py — 10 @tool functionsreferences/emr_on_ec2/cluster_guide.md — Cluster lifecyclereferences/emr_on_ec2/step_guide.md — Step submission, logsSpark workloads on Amazon EKS via the emr-containers API.
scripts/on_eks/emr_on_eks_cli.py — 10 @tool functionsreferences/emr_on_eks/virtual_cluster_guide.md — Virtual cluster lifecyclereferences/emr_on_eks/job_run_guide.md — Job submission, logsScriptDescriptionscripts/on_serverless/emr_serverless_cli.pyEMR Serverless @tool functions (14 tools)scripts/on_ec2/emr_on_ec2_cli.pyEMR on EC2 @tool functions (10 tools)scripts/on_eks/emr_on_eks_cli.pyEMR on EKS @tool functions (10 tools)scripts/config/emr_config.pyUnified configuration managementscripts/client/boto_client.pyboto3 client factory
DocumentDescriptionreferences/emr_serverless/application_guide.mdEMR Serverless application management guidereferences/emr_serverless/job_guide.mdEMR Serverless job submission and management guidereferences/emr_on_ec2/cluster_guide.mdEMR on EC2 cluster management guidereferences/emr_on_ec2/step_guide.mdEMR on EC2 step submission and management guidereferences/emr_on_eks/virtual_cluster_guide.mdEMR on EKS virtual cluster management guidereferences/emr_on_eks/job_run_guide.mdEMR on EKS job run management guide
./tmp folder.sys.path.append(${emr_skill_root})This skill connects to:
emr-serverless.{region}.amazonaws.com)elasticmapreduce.{region}.amazonaws.com)emr-containers.{region}.amazonaws.com)s3.{region}.amazonaws.com) — for log and result retrieval