2016-03-06 22 views
7

Tôi cần chạy chương trình phát tia lửa có lượng dữ liệu khổng lồ. Tôi đang cố gắng tối ưu hóa chương trình tia lửa và làm việc thông qua giao diện người dùng và cố gắng giảm phần Trộn.Sự khác biệt giữa cách đọc ngẫu nhiên và ghi ngẫu nhiên là gì?

Có một vài thành phần được đề cập, trộn và đọc ngẫu nhiên. Tôi có thể hiểu được sự khác biệt dựa trên thuật ngữ của họ, nhưng tôi muốn hiểu ý nghĩa chính xác của chúng và cái nào của một cú đánh ngẫu nhiên đọc/ghi làm giảm hiệu suất?

Tôi đã tìm kiếm trên internet, nhưng không thể tìm thấy chi tiết chuyên sâu về chúng, vì vậy muốn xem liệu có ai có thể giải thích chúng ở đây không.

+1

Mẹo tối ưu hóa một số trong Spark: cố gắng giảm số lần xáo trộn. – LiMuBei

Trả lời

2

Gần đây tôi đã bắt đầu làm việc với Spark. Tôi đã tìm kiếm câu trả lời cho cùng một loại câu hỏi.

Khi dữ liệu từ một giai đoạn được xáo trộn đến giai đoạn tiếp theo thông qua mạng, (các) người thi hành xử lý giai đoạn tiếp theo kéo dữ liệu từ quá trình của giai đoạn đầu tiên thông qua tcp. Tôi nhận thấy các chỉ số "ghi" và "đọc" của từng giai đoạn được hiển thị trong giao diện người dùng Spark cho một công việc cụ thể. Một giai đoạn cũng có khả năng có kích thước "đầu vào" (ví dụ: đầu vào từ HDFS hoặc quét bảng hive).

Tôi nhận thấy rằng kích thước ghi ngẫu nhiên từ một giai đoạn được đưa vào giai đoạn khác không phù hợp với các giai đoạn đó khi đọc kích thước đọc. Nếu tôi nhớ chính xác, có các hoạt động loại giảm tốc có thể được thực hiện trên dữ liệu trộn trước khi nó được chuyển sang giai đoạn/người thi hành tiếp theo dưới dạng tối ưu hóa. Có lẽ điều này góp phần vào sự khác biệt về kích thước và do đó sự liên quan của báo cáo cả hai giá trị.

+0

Hi @Dranyar, tôi không nghĩ rằng nó chỉ là truyền dữ liệu đến giai đoạn tiếp theo, shuffle xảy ra khi bạn thực hiện bất kỳ nhóm theo loại hoạt động để có được các địa phương dữ liệu. Tôi nghĩ rằng nó nên liên quan đến chuyển động dữ liệu qua mạng cho các hoạt động cụ thể .. Bạn nghĩ sao? – Srini

+0

Bạn có ý gì khi nói "nó" trong tuyên bố của bạn: "Tôi không nghĩ rằng nó chỉ chuyển dữ liệu đến giai đoạn tiếp theo"? Tôi có thể bị bối rối. Ngoài ra, tôi không chắc chắn ý của bạn là "lấy địa phương dữ liệu". Có vẻ như giao diện người dùng lịch sử spark chỉ ra nếu một nhiệm vụ xảy ra để chạy cục bộ đến vị trí của phân vùng hay không. – Dranyar

5

Từ tooltip UI

shuffle đọc

Tổng số byte ngẫu nhiên và ghi đọc (bao gồm cả dữ liệu đọc tại địa phương và các dữ liệu đọc từ Chấp hành từ xa

shuffle Viết

Byte và bản ghi được ghi vào đĩa để được đọc bằng cách trộn một giai đoạn tương lai

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