Design a Distributed Batch Compute System

Laten we beginnen. Het is Gratis
of registreren met je e-mailadres
Design a Distributed Batch Compute System Door Mind Map: Design a Distributed Batch Compute System

1. Introduction

1.1. Bài toán xử lý dữ liệu lớn với hệ thống phân tán

1.2. Tầm quan trọng: hiệu suất, độ tin cậy, khả năng mở rộng

2. Requirements

2.1. Functional

2.1.1. Framework xử lý tập dữ liệu lớn ở quy mô lớn

2.1.2. Cung cấp cả storage và processing

2.2. Non-Functional

2.2.1. Fault-tolerant (chịu lỗi phần cứng, mạng)

2.2.2. Data locality (xử lý tại nơi chứa dữ liệu)

2.2.3. Scalability: mở rộng đến hàng ngàn node, hàng TB dữ liệu

3. Example Workload

3.1. Xử lý log web 30 ngày (3TB)

3.2. Bài toán: thống kê top 100 IP mỗi ngày

4. Distributing the Workload

4.1. Chia nhỏ dữ liệu thành block (ví dụ: 256MB)

4.2. Gán các block cho node xử lý riêng biệt

4.3. Xử lý song song → tăng tốc độ

5. Distributed Storage

5.1. HDFS

5.1.1. Chia nhỏ file thành block

5.1.2. Replication: lưu nhiều bản trên node khác nhau

5.1.3. Metadata do NameNode quản lý

5.2. Fault Tolerance

5.2.1. Node chết: dùng bản sao từ node khác

5.2.2. Dữ liệu không bị mất

6. Distributed Processing

6.1. YARN

6.2. Resource manager

6.3. Quản lý job, phân task cho node xử lý

6.4. Đảm bảo tận dụng tài nguyên toàn cụm

7. Task Graphs

7.1. DAG (Directed Acyclic Graph)

7.2. Hệ thống như Spark, Dask sử dụng để tối ưu xử lý

7.3. Cho phép caching, tránh xử lý lặp

8. Existing Tools

8.1. Apache Hadoop: ổn định, phù hợp batch truyền thống

8.2. Apache Spark: in-memory, hiệu suất cao

8.3. Dask: Python-friendly, nhẹ, linh hoạt

8.4. AWS EMR: managed, dễ triển khai

8.5. GCP Dataflow: tích hợp tốt với BigQuery

9. Practical Example (AWS Stack)

9.1. Dữ liệu đầu vào lưu trên S3

9.2. Xử lý bằng AWS Glue hoặc EMR

9.3. Kết quả đẩy vào Athena hoặc Redshift

9.4. Visualization: dùng QuickSight hoặc BI tool

10. Conclusion

10.1. Batch Processing = xương sống phân tích dữ liệu

10.2. Phối hợp giữa storage, compute, orchestration

10.3. Yêu cầu: reliability, scalability, cost-effective

11. MapReduce

11.1. Stages: Map → Shuffle → Reduce

11.2. Áp dụng tốt cho các tác vụ batch đơn giản

12. Tài liệu tham khảo

12.1. Spark Docs

12.2. AWS EMR

12.3. Apache Hadoop