1. Spark chạy trên cluster như thế nào?

Spark không chạy trên một máy đơn lẻ như Scala Collections. Thay vào đó, nó chạy trên một cụm máy tính (cluster) với cấu trúc như sau:

📌 Cấu trúc của một Spark Cluster:

  1. Driver Program (Master Node) 🧠
  2. Cluster Manager 🔗
  3. Worker Nodes (Executors) 💪

📌 Tóm tắt quá trình chạy một Spark Job: 1️⃣ Driver Program khởi tạo SparkContext.

2️⃣ SparkContext gửi yêu cầu đến Cluster Manager để cấp tài nguyên.

3️⃣ Worker Nodes (Executors) nhận dữ liệu & thực hiện tính toán.

4️⃣ Kết quả được gửi về Driver Program nếu cần.


2. Ví dụ thực tế: Điều gì xảy ra khi chạy Spark?

Giả sử ta có một tập dữ liệu chứa thông tin người dùng, được lưu dưới dạng một RDD.

scala
CopyEdit
case class Person(name: String, age: Int)

// Tạo một RDD chứa danh sách Person
val peopleRDD = sc.parallelize(List(Person("Alice", 30), Person("Bob", 25), Person("Charlie", 35)))

📌 Tình huống 1: Gọi foreach để in ra danh sách người dùng


peopleRDD.foreach(println)

Kết quả: Không in ra gì trên màn hình Driver!

💡 Lý do: