2015-04-20 25 views
5

Chương trình của tôi, chương trình mà tôi đã chạy nhiều lần trên các cụm khác nhau đột nhiên dừng lại. Nhật ký:Apache Spark trên EC2 "Đã bị giết"

15/04/20 19:19:59 INFO scheduler.TaskSetManager: Finished task 12.0 in stage 15.0 (TID 374) in 61 ms on ip-XXX.compute.internal (16/24) 
15/04/20 19:19:59 INFO storage.BlockManagerInfo: Added rdd_44_14 in memory on ip-XXX.compute.internal:37999 (size: 16.0 B, free: 260.6 MB) 
Killed 

"Đã chết" có nghĩa là gì và tại sao điều đó xảy ra? Không có lỗi nào khác.

Trả lời

1

"Đã chết" thường có nghĩa là hệ điều hành đã chấm dứt quá trình bằng cách gửi tín hiệu SIGKILL. Đây là tín hiệu không thể bỏ chặn để chấm dứt một quy trình ngay lập tức. Nó thường được sử dụng như một kẻ giết người quá trình OOM (out-of-memory) - nếu hệ điều hành quyết định rằng tài nguyên bộ nhớ đang nhận được nguy hiểm thấp, nó có thể chọn một quá trình để giết để cố gắng giải phóng một số bộ nhớ.

Nếu không có thêm thông tin, không thể biết liệu quy trình của bạn đã bị giết vì vấn đề về bộ nhớ hay vì một lý do nào đó khác. Loại thông tin bạn có thể cung cấp để giúp chẩn đoán những gì đang xảy ra bao gồm: quá trình hoạt động trước khi nó bị giết bao lâu? bạn có thể kích hoạt và cung cấp đầu ra gỡ lỗi tiết hơn từ quá trình này không? là quá trình chấm dứt kết hợp với bất kỳ mô hình cụ thể nào của hoạt động giao tiếp hoặc xử lý?

+0

Quy trình đã chạy nhiều lần trong nhiều giờ. Bây giờ, tuy nhiên, nó dừng lại sau 20 giây. Nó nói rằng có khoảng 255Mb bộ nhớ miễn phí cho mỗi nút. Nếu tôi khởi động một cụm mới thì nó hoạt động tốt trở lại. – monster

0

có lẽ vấn đề vm

  1. đảm bảo bạn có phân vùng trao đổi.
  2. đảm bảo vm.swappiness không bằng không.
Các vấn đề liên quan