Tôi đang cố gắng tìm hiểu mối quan hệ của số lượng lõi và số lượng nhân viên thực thi khi chạy một công việc Spark trên YARN.
Môi trường thử nghiệm như sau:
- Số nút dữ liệu: 3
- Thông số máy nút dữ liệu:
- CPU: Core i7-4790 (# lõi: 4, # của luồng: 8)
- RAM: 32GB (8GB x 4)
- Ổ cứng: 8TB (2TB x 4)
Mạng: 1Gb
Phiên bản Spark: 1.0.0
Phiên bản Hadoop: 2.4.0 (Hortonworks HDP 2.1)
Luồng công việc Spark: sc.textFile -> bộ lọc -> bản đồ -> bộ lọc -> mapToPair -> lessByKey -> map -> saveAsTextFile
Dữ liệu đầu vào
- Loại: tệp văn bản duy nhất
- Dung lượng: 165GB
- Số dòng: 454,568,833
Đầu ra
- Số dòng sau bộ lọc thứ hai: 310.640.717
- Số dòng của tệp kết quả: 99.848.268
- Kích thước của tệp kết quả: 41GB
Công việc được chạy với các cấu hình sau:
--master yarn-client --executor-memory 19G --executor-cores 7 --num-executors 3
(người thực thi trên mỗi nút dữ liệu, sử dụng nhiều như lõi)--master yarn-client --executor-memory 19G --executor-cores 4 --num-executors 3
(Số lõi giảm)--master yarn-client --executor-memory 4G --executor-cores 2 --num-executors 12
(ít cốt lõi hơn, thực thi nhiều hơn)
Thời gian đã qua:
50 phút 15 giây
55 phút 48 giây
31 phút 23 giây
Thật ngạc nhiên, (3) nhanh hơn nhiều.
Tôi nghĩ rằng (1) sẽ nhanh hơn, vì sẽ có ít giao tiếp giữa các nhà điều hành khi xáo trộn.
Mặc dù số lõi của (1) nhỏ hơn (3), nhưng số lõi #of không phải là yếu tố chính vì 2) đã hoạt động tốt.
(Phần tiếp theo đã được thêm vào sau câu trả lời của pwilmot.)
Để biết thông tin, chụp màn hình hiệu suất màn hình như sau:
- Tóm tắt nút dữ liệu Ganglia cho (1) - công việc bắt đầu lúc 04:37.
- Tóm tắt nút dữ liệu Ganglia cho (3) - công việc bắt đầu lúc 19:47. Hãy bỏ qua biểu đồ trước thời gian đó.
Biểu đồ chia thành 2 phần:
- Thứ nhất: từ bắt đầu đến giảmByKey: CPU chuyên sâu, không có hoạt động mạng
- Thứ hai: sau khi giảmByKey: CPU giảm, I / O mạng được thực hiện.
Như biểu đồ cho thấy, (1) có thể sử dụng nhiều năng lượng CPU như đã được cung cấp. Vì vậy, nó có thể không phải là vấn đề về số lượng của các chủ đề.
Làm thế nào để giải thích kết quả này?