Một đối tượng công việc tạo thành các đặc điểm kỹ thuật của công việc và cung cấp cho bạn kiểm soát như thế nào công việc
được chạy. Khi chúng tôi chạy công việc này trên một cụm Hadoop, chúng tôi sẽ gói mã vào một JAR
file (mà Hadoop sẽ phân phối khoảng cluster). Thay vì chỉ định rõ
tên của tập tin JAR, chúng ta có thể vượt qua một lớp học trong phương pháp (), setJarByClass của công việc
mà Hadoop sẽ sử dụng để xác định vị trí các tập tin JAR có liên quan bằng cách tìm kiếm các tập tin JAR con-
TaiNing lớp này.
Sau khi xây dựng một công việc đối tượng, chúng tôi chỉ định đường dẫn đầu vào và đầu ra. Một con đường đầu vào
được xác định bằng cách gọi phương thức addInputPath tĩnh () trên FileInputFormat, và nó
có thể là một tập tin duy nhất, một thư mục (trong trường hợp này, các đầu vào tạo thành tất cả các tập tin trong đó vị trí Giám đốc
thổ), hoặc một mô hình tập tin. Như tên cho thấy, addInputPath () có thể được gọi là nhiều hơn
một lần để sử dụng đầu vào từ nhiều đường dẫn.
Các đường dẫn đầu ra (trong đó chỉ có một) được quy định bởi các tĩnh setOutput
phương pháp Path () trên FileOutputFormat. Nó chỉ định một thư mục nơi các tập tin đầu ra
từ giảm chức năng được viết. Các thư mục không nên tồn tại trước khi chạy các
công việc vì Hadoop sẽ phàn nàn và không chạy các công việc. Đề phòng này là để ngăn chặn
mất mát dữ liệu (nó có thể rất khó chịu vô tình ghi đè lên các sản phẩm của một công việc lâu dài với
đó của người khác).
Tiếp theo, chúng tôi xác định bản đồ và làm giảm các loại để sử dụng thông qua các setMapperClass () và
setReducerClass () phương pháp.
các setOutputKeyClass () và setOutputValueClass () phương pháp kiểm soát đầu ra
loại cho giảm chức năng, và phải phù hợp với những gì các lớp giảm sản xuất. Bản đồ
các loại sản lượng mặc định cho các loại tương tự, vì vậy họ không cần phải được thiết lập nếu các mapper
sản xuất các loại giống như bộ giảm (như trong trường hợp của chúng tôi). Tuy nhiên, nếu họ là
khác nhau, các loại đầu ra bản đồ phải được thiết lập bằng cách sử dụng setMapOutputKeyClass () và
setMapOutputValueClass () phương pháp.
Các loại đầu vào được kiểm soát thông qua các định dạng đầu vào, mà chúng tôi đã không rõ ràng thiết
bởi vì chúng ta đang sử dụng TextInputFormat mặc định.
Sau khi thiết lập các lớp học mà xác định bản đồ và giảm chức năng, chúng tôi đã sẵn sàng để chạy
công việc. Phương pháp waitForCompletion () vào việc trình công việc và đợi cho nó để
kết thúc. Các đối số duy nhất cho phương pháp này là một lá cờ chỉ có đầu ra dài
được tạo ra. Khi sự thật, công việc viết thông tin về sự tiến bộ của nó để giao diện điều khiển.
Các giá trị trả về của phương waitForCompletion () là một Boolean cho biết thành công
(true) hay thất bại (false), mà chúng tôi dịch sang mã lối ra của chương trình là 0 hoặc 1.
đang được dịch, vui lòng đợi..