Skip to content

AWS EMR (Elastic MapReduce)

Amazon EMR (Elastic MapReduce) là dịch vụ Big Data Platform được AWS quản lý, cho phép bạn xử lý, phân tích và biến đổi dữ liệu khối lượng lớn bằng cách sử dụng các framework phổ biến như Apache Spark, Apache Hadoop, Apache Hive, Apache HBase, Apache Flink, Presto, Trino và nhiều công cụ khác.

Tại sao cần EMR?

Trong nhiều hệ thống, dữ liệu có thể lên tới Terabytes hoặc Petabytes, vượt quá khả năng xử lý của một server đơn lẻ. Lúc này cần một giải pháp Distributed Processing (xử lý phân tán) để chạy song song trên nhiều node.

Amazon EMR giúp bạn:

  • Chạy cluster Hadoop/Spark trên AWS chỉ trong vài phút.
  • Tận dụng EC2, EBS, S3 để lưu trữ và xử lý dữ liệu với chi phí thấp.
  • Tích hợp dễ dàng với hệ sinh thái AWS Analytics & AI/ML.

Thành phần chính của EMR

  1. Cluster

    • Bao gồm nhiều EC2 instances được chia làm 3 loại node:
      • Master node: Điều phối cluster, quản lý jobs.
      • Core node: Lưu trữ dữ liệu HDFS và chạy tasks.
      • Task node(optional): Chạy tasks nhưng không lưu dữ liệu.
  2. Frameworks

    • EMR hỗ trợ nhiều open-source frameworks:
      • Apache Spark: Xử lý dữ liệu phân tán, machine learning.
      • Apache Hadoop (MapReduce): Batch processing.
      • Hive, Presto, Trino: Query dữ liệu bằng SQL.
      • HBase: NoSQL database trên Hadoop.
      • Flink: Stream processing.
  3. Data Storage

    • Dữ liệu có thể lưu ở:
      • Amazon S3 (data lake, phổ biến nhất).
      • HDFS (Hadoop Distributed File System).
      • DynamoDB, Redshift, RDS, Kinesis.
  4. Cluster Management

    • Có thể tạo cluster tạm thời (transient) hoặc lâu dài (long-running).
    • Tích hợp với Auto Scaling để tối ưu chi phí.

Cách hoạt động của EMR

  1. Người dùng submit job (Spark, Hive, Presto…)
  2. Master node phân phối công việc đến Core & Task nodes.
  3. Các node xử lý dữ liệu song song (từ S3 hoặc HDFS).
  4. Kết quả được ghi lại vào S3, Redshift, RDS hoặc Elasticsearch để phân tích tiếp.

Use Cases của EMR

  • Data Lake Analytics: Query & phân tích dữ liệu khối lượng lớn từ S3.
  • ETL Pipelines: Xử lý dữ liệu raw → chuẩn hóa → load vào Redshift/S3.
  • Machine Learning: Train ML models trên Spark MLlib hoặc TensorFlow.
  • Streaming: Dùng Flink/Spark Streaming để xử lý dữ liệu real-time.
  • Log Analytics: Phân tích log web, ứng dụng, IoT logs.