2016-02-22 14 views
5

Tôi đang có một công việc MR trong đó giai đoạn phát ngẫu nhiên kéo dài quá lâu.Giai đoạn xáo trộn kéo dài quá lâu Hadoop

Lúc đầu, tôi nghĩ rằng đó là vì tôi đang phát ra rất nhiều dữ liệu từ Mapper (khoảng 5GB). Sau đó, tôi đã khắc phục vấn đề đó bằng cách thêm một Combiner, do đó phát ra ít dữ liệu hơn cho Reducer. Sau giai đoạn xáo trộn đó không rút ngắn, như tôi đã nghĩ.

Ý tưởng tiếp theo của tôi là loại bỏ Combiner, bằng cách kết hợp trong chính Mapper. Ý tưởng đó tôi nhận được từ here, nơi mà nó nói rằng dữ liệu cần phải được tuần tự hóa/deserialized để sử dụng Combiner. Thật không may là giai đoạn shuffle vẫn như cũ.

Suy nghĩ duy nhất của tôi là có thể vì tôi đang sử dụng một Reducer duy nhất. Nhưng đây không phải là một trường hợp vì tôi không phát ra nhiều dữ liệu khi sử dụng Combiner hoặc kết hợp trong Mapper.

Dưới đây là số liệu thống kê của tôi:

enter image description here

Dưới đây là tất cả các quầy cho (sợi) việc Hadoop của tôi:

enter image description here

Tôi cũng nên nói thêm rằng điều này được chạy trên một cụm nhỏ gồm 4 máy. Mỗi bộ nhớ RAM có dung lượng 8GB (2GB) và số lõi ảo là 12 (2 lần đặt trước).

enter image description here

Đây là những máy ảo. Lúc đầu, tất cả chúng đều trên một đơn vị, nhưng sau đó tôi tách chúng 2-2 trên hai đơn vị. Vì vậy, họ đã chia sẻ HDD lúc đầu, bây giờ có hai máy trên mỗi đĩa. Giữa chúng là một mạng gigabit.

Và đây có nhiều số liệu thống kê:

Tổng số bộ nhớ được chiếm

enter image description here

CPU là liên tục chịu áp lực trong khi công việc đang chạy (hình ảnh cho thấy CPU cho hai chạy liên tiếp của cùng một công việc)

enter image description here

câu hỏi của tôi là - tại sao là thời gian xáo trộn quá lớn và ho w để sửa chữa nó? Tôi cũng không hiểu làm thế nào không có tăng tốc mặc dù tôi đã giảm đáng kể lượng dữ liệu phát ra từ Mapper?

+0

khó nói mà không nhận được nhiều con số hơn: kích thước chính xác của đầu ra bản đồ là bao nhiêu? liên kết mạng giữa máy chủ (băng thông) của bạn lớn đến mức nào? bạn có thể sử dụng nhiều hơn một bộ giảm tốc (do đó tránh được tắc nghẽn băng thông có thể) không? –

+0

Cảm ơn bạn đã bình luận của bạn, tôi đã chỉnh sửa câu hỏi của tôi. Tôi thực sự không biết tại sao nó lại quá chậm. Tôi chủ yếu phát triển trên một máy tính duy nhất, vì vậy tôi đang tìm hiểu về việc chạy các công việc trên cụm, nhưng tôi không thấy lý do nào cho vấn đề này. Nó sẽ rất khó (nếu không phải là không thể) để chia nhỏ, nhưng vấn đề là, tôi thấy không có việc làm cho nó. – Marko

+0

khó để nói lý do tại sao phải mất quá lâu cho 5mb, bất cứ điều gì bất thường bạn có thể thấy trong ambari? giống như một CPU chốt? bạn có thể đi đến các bản ghi của container giảm và tìm thấy bất cứ điều gì? –

Trả lời

0

Vài quan sát:

  1. Đối với một công việc là 30 phút, thời gian GC là quá cao (Cố gắng tái sử dụng đối tượng chứ không phải tạo ra một cái mới cho mỗi cuộc gọi trong bản đồ()/Giảm() phương pháp)
  2. Thời gian bản đồ trung bình là quá cao, 16 phút bạn đang làm gì trong bản đồ ur?
  3. Bộ nhớ YARN là 99%, điều này có nghĩa là bạn đang chạy quá nhiều dịch vụ trên cụm HDP và RAM của bạn không đủ để hỗ trợ nhiều dịch vụ đó.
  4. Vui lòng thiếu bộ nhớ chứa YAN, vui lòng cung cấp ít nhất 1 GB.Điều này có vẻ như một vấn đề cụm GC + được lên lịch
Các vấn đề liên quan