Trước hết yarn.nodemanager.resource.memory-mb
(Memory), yarn.nodemanager.resource.cpu-vcores
(vcore) là Nodemanager thuộc tính cấu hình daemon/dịch vụ và không thể được overriden trong các ứng dụng SỢI khách hàng. Bạn cần phải khởi động lại dịch vụ nodemanager nếu bạn thay đổi các thuộc tính cấu hình này.
Vì CPU là nút cổ chai trong trường hợp của bạn, Khuyến nghị của tôi là thay đổi chiến lược lập lịch YARN thành Fairscheduler với chính sách lập lịch DRF (Dominant Resource Fairness) ở cấp cụm sao cho bạn linh hoạt chỉ định vùng chứa ứng dụng kích thước về cả bộ nhớ và lõi cpu. Số lượng thùng chứa ứng dụng đang chạy (mapper/reducer/AM/tasks) sẽ dựa trên vcores có sẵn mà bạn xác định
Chính sách lập lịch biểu có thể được đặt ở mức hàng đợi/cấp độ công bằng lên lịch.
lập lịchPolicy: để đặt chính sách lập lịch của bất kỳ hàng đợi nào. Các giá trị cho phép là “FIFO”/“công bằng”/“DRF”
Xem this apache doc để biết thêm chi tiết -
Khi bạn đã tạo mới Hội chợ hàng đợi scheduler/hồ bơi với chính sách kế hoạch DRF, cả hai bộ nhớ có thể cpu lõi có thể được đặt trong chương trình như sau.
Cấu hình conf = new Configuration();
Cách xác định kích thước vùng chứa trong ứng dụng tạo bản đồ.
Configuration conf = new Configuration();
conf.set("mapreduce.map.memory.mb","4096");
conf.set(mapreduce.reduce.memory.mb","4096");
conf.set(mapreduce.map.cpu.vcores","1");
conf.set(mapreduce.reduce.cpu.vcores","1");
Reference - https://hadoop.apache.org/docs/r2.7.2/hadoop-mapreduce-client/hadoop-mapreduce-client-core/mapred-default.xml
Mặc định giá trị giao cpu.vcores cho mapper/giảm tốc sẽ là 1, Bạn có thể tăng giá trị này nếu đó là một ứng dụng chuyên sâu CPU. Hãy nhớ Nếu bạn tăng giá trị này, số nhiệm vụ bản đồ/giảm tốc chạy song song cũng sẽ bị giảm.
hmm, tôi nghĩ rằng toàn bộ nội dung với các bộ lập lịch không phải là mong muốn, nhưng cpu này.vcores thiết lập thực sự có thể giúp, bởi vì mặc dù số lượng RAM là khác nhau cho các nút, nhưng lõi CPU là như nhau, vì vậy tôi có thể thiết lập 2 vcores cho mapper và nó sẽ đẻ trứng cùng một số lượng bản đồ cho các nút khác nhau. Tôi sẽ thử nó – AdamSkywalker
Âm thanh tốt, có thể hoạt động, Nếu tổng số container đang chạy đạt dung lượng cụm của bạn. – sachin
Xin lỗi vì lỗi đánh máy trong nhận xét trước, Giới hạn vcores Cpu sẽ không được kiểm tra trong chính sách lập kế hoạch không phải là DRF. – sachin