2012-07-12 28 views
38

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

Trả lời

4

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.

+0

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

90

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 
+1

Cũng được bản đồ hóa công việc -kill $ jobId –

2

Đơ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 
16

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 
+0

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

9

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> 
Các vấn đề liên quan