Tôi muốn hiểu nội bộ của chế độ lập lịch FAIR của Spark. Cái này là nó dường như không công bằng như người ta mong đợi theo official Spark documentation:Cách bật Trình lên lịch công bằng trong Spark?
Bắt đầu từ năm Spark 0.8, nó cũng có thể cấu hình chia sẻ công bằng giữa công việc. Theo chia sẻ công bằng, Spark phân công nhiệm vụ giữa các công việc theo kiểu “vòng tròn”, để tất cả các công việc có được một lượng tài nguyên cụm ngang nhau. Điều này có nghĩa là các công việc ngắn được gửi trong khi một công việc dài đang chạy có thể bắt đầu nhận tài nguyên ngay lập tức và vẫn nhận được thời gian phản hồi tốt, mà không phải đợi công việc lâu dài để hoàn thành. Chế độ này là tốt nhất cho cài đặt nhiều người dùng.
Có vẻ như công việc không được xử lý như nhau và thực sự được quản lý theo thứ tự năm mươi.
Để cung cấp thêm thông tin về chủ đề:
Tôi đang sử dụng Spark trên YARN. Tôi sử dụng API Java của Spark. Để bật chế độ công bằng, Mã là:
SparkConf conf = new SparkConf();
conf.set("spark.scheduler.mode", "FAIR");
conf.setMaster("yarn-client").setAppName("MySparkApp");
JavaSparkContext sc = new JavaSparkContext(conf);
Tôi có bỏ lỡ điều gì đó không?
Trong công việc mặc định của hồ bơi chạy song song, nếu chúng được gửi qua các chủ đề khác nhau, tôi đã thấy nó chạy song song. Đừng nghĩ rằng chúng ta cần tạo ra các hồ bơi chỉ để làm việc song song. "mỗi nhóm nhận được một phần bằng nhau của cụm (cũng bằng chia sẻ cho mỗi công việc trong nhóm mặc định)" từ http://spark.apache.org/docs/latest/job-scheduling.html#default-behavior-of -pools – spats
Đó là chính xác nếu # CPU> # nhiệm vụ từ các giai đoạn không liên quan. –