2015-07-11 22 views
6

Tôi đã đọc về RDD và cách biến đổi khác nhau bị ảnh hưởng bởi phân vùng và cách một số phép biến đổi ảnh hưởng đến phân vùng. Trong khi tôi hiểu điều này, tôi không thể liên kết nó với bức tranh lớn hơn về cách điều này phù hợp trong một cụm nơi chúng tôi có nhiều nút.mối quan hệ giữa RDD, phân vùng và nút

Có sự tương ứng một đến một giữa phân vùng và nút không? Tôi có nghĩa là nếu có một phân vùng duy nhất cho mỗi nút lý tưởng? Và nếu không, Spark quyết định bao nhiêu phân vùng cho một RDD cụ thể phải nằm trên cùng một nút?

Cụ thể hơn, tôi có thể nghĩ đến một trong các cách sau: -

1) Tất cả các phân vùng cho một RDD đưa ra trên cùng một nút 2) Tất cả các phân vùng của cùng RDD có thể cư trú trên các nút khác nhau (nhưng 3) Các phân vùng của cùng một nút nằm rải rác trên cụm, một số trong chúng trên cùng một nút, một số trong chúng trên các nút khác nhau (một lần nữa, cơ sở của phân phối này là gì?)

Ai đó có thể vui lòng giải thích hoặc ít nhất là chỉ cho tôi một số liên kết cụ thể mà trả lời chính xác điều này?

Trả lời

8
  • một RDD duy nhất có một hoặc nhiều phân vùng rải rác trên nhiều nút,
  • một phân vùng duy nhất được xử lý trên một nút duy nhất,
  • một nút duy nhất có thể xử lý nhiều phân vùng (với tối ưu 2-4 phân vùng mỗi CPU theo số official documentation)

Vì Spark hỗ trợ các chi tiết quản lý tài nguyên có thể nhúng phụ thuộc vào bạn sử dụng (Độc lập, Sợi, Messos).

+0

Tôi đã 'kết hợp (1)' trên một DataFrame và sau đó là 'foreachPartition' trên đó, và nhật ký của tôi cho thấy rằng nhiều hơn một nhân viên (4 thực sự) đang lặp trên cùng một phân vùng. Sao có thể như thế được ? Có lẽ vì nó quá lớn? – ericbn

+0

@ericbn Nhiều khả năng bạn thấy nhiệm vụ tương ứng với giai đoạn trước 'coalesce'. – zero323

Các vấn đề liên quan