Tôi muốn tự động xóa tất cả các công việc hadoop của mình khi mã của tôi gặp phải một ngoại lệ chưa được giải quyết. Tôi tự hỏi thực hành tốt nhất để làm điều đó là gì?làm thế nào để giết các công việc hadoop
Cảm ơn
Tôi muốn tự động xóa tất cả các công việc hadoop của mình khi mã của tôi gặp phải một ngoại lệ chưa được giải quyết. Tôi tự hỏi thực hành tốt nhất để làm điều đó là gì?làm thế nào để giết các công việc hadoop
Cảm ơn
Một ngoại lệ unhandled sẽ (giả sử nó lặp lại như dữ liệu xấu như trái ngược với đọc lỗi từ một nút dữ liệu cụ thể) cuối cùng thất bại trong công việc anyway.
Bạn có thể cấu hình số lần tối đa một bản đồ cụ thể hoặc giảm nhiệm vụ có thể thất bại trước khi toàn bộ công việc không thông qua các thuộc tính sau:
mapred.map.max.attempts
- Số lượng tối đa của những nỗ lực mỗi nhiệm vụ bản đồ. Nói cách khác, khuôn khổ sẽ cố gắng thực hiện một nhiệm vụ bản đồ nhiều lần này trước khi từ bỏ nó.mapred.reduce.max.attempts
- Tương tự như trên, nhưng đối với giảm nhiệm vụNếu bạn muốn thất bại trong công việc hiện tại thất bại đầu tiên, thiết lập giá trị này từ mặc định của nó từ 4 đến 1.
Tùy thuộc vào phiên bản, làm:
phiên bản < 2.3.0
Giết một công việc hadoop:
hadoop job -kill $jobId
Bạn có thể nhận được một danh sách các làm tất cả của jobId:
hadoop job -list
phiên bản> = 2.3.0
Giết một công việc hadoop:
yarn application -kill $ApplicationId
Bạn có thể nhận danh sách tất cả các ứng dụng của ApplicationId đang làm:
yarn application -list
Cũng được bản đồ hóa công việc -kill $ jobId –
Đơn giản chỉ cần giết ID quá trình, công việc hadoop cũng sẽ tự động bị giết. Sử dụng lệnh này:
kill -9 <process_id>
eg: process ID no: 4040 namenode
[email protected]:~$ kill -9 4040
Sử dụng folloing lệnh được khấu hao
hadoop job -list
hadoop job -kill $jobId
xem xét sử dụng
mapred job -list
mapred job -kill $jobId
Không hoạt động và dẫn đến lỗi sau: Ngoại lệ trong chuỗi "main" java.lang.IllegalArgumentException: Chuỗi JobId: application_1470941878165_0001 không được định dạng đúng – tribbloid
Run list
để hiển thị tất cả các công việc, sau đó sử dụng jobID/applicationID trong c thích hợp ommand.
Kill mapred công việc:
mapred job -list
mapred job -kill <jobId>
Kill việc làm sợi:
yarn application -list
yarn application -kill <ApplicationId>
Nhưng điều này cũng sẽ gây ra một công việc để thất bại nếu một nút chết và nhiệm vụ thất bại, thậm chí nếu không có ngoại lệ ném , đúng? Tuy nhiên, tôi tin rằng đây thực sự là giải pháp gần nhất với những gì OP muốn. – vefthym