“Giai đoạn bị bỏ qua” có nghĩa là gì trong giao diện người dùng web Apache Spark?


Câu trả lời:


123

Thông thường, nó có nghĩa là dữ liệu đã được tìm nạp từ bộ nhớ cache và không cần phải thực thi lại giai đoạn nhất định. Nó nhất quán với DAG của bạn, cho thấy rằng giai đoạn tiếp theo yêu cầu xáo trộn ( reduceByKey). Bất cứ khi nào có xáo trộn liên quan, Spark sẽ tự động lưu trữ dữ liệu được tạo vào bộ nhớ cache :

Shuffle cũng tạo ra một số lượng lớn các tệp trung gian trên đĩa. Kể từ Spark 1.3, các tệp này được giữ nguyên cho đến khi các RDD tương ứng không còn được sử dụng nữa và được thu gom rác. Điều này được thực hiện để các tệp xáo trộn không cần phải được tạo lại nếu dòng dõi được tính toán lại.


21
Câu trả lời chính xác. Nếu bạn muốn tìm hiểu cách thêm về ngữ nghĩa của "bỏ qua" và "chờ" giai đoạn trên giao diện web, hãy kiểm tra github.com/apache/spark/pull/3009 , yêu cầu kéo mà lần đầu tiên giới thiệu các khái niệm. Bài PR đó cũng là một bài đọc thú vị nếu bạn tò mò về cách các giai đoạn bị bỏ qua / đang chờ xử lý tương tác với các thanh tiến trình cấp công việc.
Josh Rosen

1
Nếu tôi đang làm theo đúng, Spark bỏ qua những điều này có nghĩa là chúng không xảy ra và chúng có thể bị xóa khỏi mã cùng nhau? hoặc mã rất hiệu quả với bộ nhớ cache nên để nó? @ zero323
SparkleGoat

1
@SparkleGoat Không. Có nghĩa là các giai đoạn này đã được đánh giá trước đó và kết quả có sẵn mà không cần thực hiện lại.
10465355 nói Hãy phục hồi Monica vào

một câu hỏi khác, bộ nhớ đệm và bỏ qua các giai đoạn có thể làm cho dữ liệu đầu ra khác nhau không?
SparkleGoat

@SparkleGoat, không có bộ nhớ đệm (và bỏ qua vì điều đó) là một tối ưu hóa tia lửa nội bộ và không thay đổi dữ liệu đầu ra theo bất kỳ cách nào.
Ravi Sanwal
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.