
Install the remote development extension kit in Visual Studio Code on Windows to enable remote ssh, wsl, and containers, and access files via ssh or wsl.
Review emr cluster configurations by inspecting overridden properties and json, noting glue data catalog for spark metastore, and troubleshoot via runtime overrides in the cluster dashboard.
Provision an elastic IP in AWS EC2 and map it to the EMR cluster master node for a stable public address, including allocation steps in the AWS console.
Provision an EMR cluster with a bootstrap script and Elastic IP, using EMR 6.6.0 with Hive, Jupyter Enterprise Gateway, and Spark 3.2.0, integrated with the Glue data catalog.
Troubleshoot aws emr bootstrap by cloning the cluster, removing bootstrap actions, and recreating it with a corrected bootstrap.sh using /usr/bin/pip3 and boto3, then verify master access.
Use boto3 to locate the EMR master instance id and its elastic IP allocation id, then associate the elastic IP with the master node using AWS EC2 APIs.
Install Pylance and Python extensions in the remote Visual Studio Code window to enable Python syntax highlighting and auto complete for EMR cluster development; validate boto3 and s3_client usage.
Create a modular spark session function in Python, supporting dev and prod yarn modes, using util.py and a main guard, then run with spark-submit to execute Spark SQL queries.
Partition data by year, month, and dayofmonth, coalesce to 16 files, and write the transformed dataframe to s3 in parquet format using spark's dataframe writer with append mode.
Clone and resize an emr cluster to deploy spark applications on non development clusters, configure uniform master/core/task nodes, enable autoscaling, and prepare a zip file on the master.
Learn how to deploy a spark application as a step on an existing EMR cluster using cluster mode and spark submit options, with artifacts stored in S3.
Learn to configure a state machine to delete multiple S3 objects at once by creating test files in cloud shell, copying them to S3, and validating with object listing.
Validate a spark application deployed as a step on an AWS EMR cluster by reviewing STD ERR logs and using aws s3 ls to confirm the target files.
Master how to manage AWS EMR with boto3 by setting up a Mac or WSL development environment in VS Code, and configuring AWS profiles for notebooks and S3 access.
Provision an AWS EMR cluster with Hadoop and Spark using the AWS web console and AWS CLI, configured for EMR 6.6.0 with one master and two core instances.
Learn to build an EMR cluster workflow with create cluster, add step, and terminate cluster using AWS Step Functions and Workflow Studio, including production considerations and run job flow details.
Learn to create an EMR cluster with AWS Step Functions by translating run job flow parameters into JSON for the create cluster action, including name, logUri, release label, and instances.
Attach the step function role with permissions to create an AWS EMR cluster, including service, job flow, and auto scaling roles, and attach needed policies.
Validate the successful execution of a step added to an aws emr cluster via step functions, review logs and s3 outputs, and plan termination handling in the next lecture.
Learn how boto3 APIs relate to AWS Step Functions and S3-based states, enabling state machines to manage and delete S3 objects using bucket and prefix parameters.
Learn to extract s3 object keys from list objects using a Step Functions map and pass with input path, then pass keys to s3 delete object.
Implement delete S3 object logic in the AWS step function state machine, replacing pass with S3 delete object, wiring bucket and key inputs, and noting lambda-assisted array augmentation.
Explore how map concurrency in AWS Step Functions enables parallel deletion of S3 objects, with practical guidance on setting maximum concurrency and validating parallel execution.
Integrate two AWS step functions state machines—an EMR-based ghactivity converter and a validate S3 target location—ensuring validation precedes EMR pipelines, with backups via copy-to-new and git versioning.
Learn to grant aws step functions permissions via iam roles for cross-state machine invocation, enabling emr spark jobs and s3 target location validation.
Propagate original input through the EMR and AWS Step Functions state machine to add a Spark step to the cluster, discarding output and routing input to downstream states.
Attach an inline policy to the state machine role to invoke the lambda function, then review and specify the function ARN and name to enable execution.
AWS Elastic Map Reduce (EMR) is one of the key AWS Services used in building large-scale data processing leveraging Big Data Technologies such as Apache Hadoop, Apache Spark, Hive, etc. As part of this course, you will end up learning AWS Elastic Map Reduce (EMR) by building end-to-end data pipelines leveraging Apache Spark and AWS Step Functions.
Here is the detailed outline of the course.
First, you will learn how to Get Started with AWS Elastic Map Reduce (EMR) by understanding how to use AWS Web Console to create and manage EMR Clusters. You will also learn about all the key features of Web Console and also how to connect to the master node of the cluster and validate all the important CLI interfaces such as spark-shell, pyspark, hive, etc as well as hdfs and aws CLI commands.
Once you understand how to get started with AWS EMR, you will go through the details related to Setting up Development Cluster using AWS EMR. There are quite a few advantages to using AWS EMR Clusters for development purposes and most enterprises do so.
After setting up a development cluster using AWS EMR, you will go through the Development Life Cycle of Spark Applications using AWS EMR Development Cluster. You will be using Visual Studio Code Remote Development on top of the AWS EMR Development Cluster to go through the details.
Once the development is done, you will go through the details related to Deploying Spark Application on AWS EMR Cluster. You will build the zip file and understand how to run using CLI in both clients as well as cluster deployment modes. You will also understand how you can deploy the spark application as a step on AWS EMR Clusters. You will also understand the details related to troubleshooting the issues related to Spark Applications by going through relevant logs.
Typically we run Spark Applications programmatically. After going through the details related to deploying spark applications on AWS EMR Clusters, you will be learning how to Manage AWS EMR Clusters using Python Boto3. You will not only learn how to create clusters programmatically but also how to deploy Spark Applications as Steps programmatically using Python Boto3.
End to End Data Pipelines using AWS EMR is built using AWS Step Functions. Once you understand how to manage EMR Clusters using Python Boto3 and also deploy Spark Applications on EMR Clusters using the same, it is important to learn how to Build EMR-based Workflows or Pipelines using AWS Step Functions. You will be learning how to create the cluster, deploy Spark Application as Step on to the cluster, and then terminate the cluster as part of a basic pipeline or State Machine using AWS Step Functions.
You will also learn how to perform validations as part of State Machines by Enhancing AWS EMR-based State Machine or Pipeline. You will check if the files specified already exist as part of the validations.
We can also build Data Processing Applications or Pipelines using Spark SQL on AWS EMR. First, you will learn how to design and develop solutions using Spark SQL Script, how to validate by using appropriate commands by passing relevant runtime arguments, etc.
Once you understand the development process of implementing solutions using Spark SQL on AWS EMR, you will learn how to deploy Data Pipeline using AWS Step Function to deploy Spark SQL Script on EMR Cluster. You will also learn the concept of Boto3 Waiters to make sure the steps are executed in a linear fashion.