Tech

Hướng dẫn Apache Oozie

OOZIE là gì?

Apache Oozie là một bộ lập lịch quy trình làm việc cho Hadoop. Nó là một hệ thống chạy quy trình làm việc của các công việc phụ thuộc. Tại đây, người dùng được phép tạo  Mạch hở đồ thị có hướng của workflows , có thể chạy song song và tuần tự trong Hadoop.

Nó bao gồm hai phần:

  • Workflow engine: Trách nhiệm của Workflow engine là lưu trữ và chạy các dòng công việc bao gồm các công việc Hadoop, ví dụ: MapReduce, Pig, Hive.
  • Coordinator engine : Nó chạy các công việc quy trình làm việc dựa trên lịch trình xác định trước và tính sẵn có của dữ liệu.

Oozie có khả năng mở rộng và có thể quản lý việc thực hiện kịp thời hàng nghìn quy trình công việc (mỗi quy trình bao gồm hàng chục công việc) trong một cụm Hadoop.

Hướng dẫn Apache Oozie

Oozie cũng rất linh hoạt. Người ta có thể dễ dàng bắt đầu, dừng, tạm dừng và chạy lại công việc. Oozie giúp bạn rất dễ dàng chạy lại các quy trình làm việc bị lỗi. Người ta có thể dễ dàng hiểu được khó khăn như thế nào để bắt kịp các công việc bị bỏ lỡ hoặc thất bại do thời gian ngừng hoạt động hoặc thất bại. Thậm chí có thể bỏ qua một node bị lỗi cụ thể.

OOZIE hoạt động như thế nào?

Oozie chạy như một dịch vụ trong cụm và khách hàng gửi các định nghĩa quy trình làm việc để xử lý ngay lập tức hoặc sau đó.

Quy trình làm việc của Oozie bao gồm action nodes control-flow nodes .

action nodes  đại diện cho một tác vụ dòng công việc, ví dụ: di chuyển tệp vào HDFS, chạy công việc MapReduce, Pig hoặc Hive , nhập dữ liệu bằng Sqoop hoặc chạy tập lệnh shell của một chương trình được viết bằng Java.

Một  control-flow nodes  điều khiển kiểm soát việc thực thi quy trình công việc giữa các hành động bằng cách cho phép các cấu trúc giống như logic có điều kiện, trong đó các nhánh khác nhau có thể được tuân theo tùy thuộc vào kết quả của action nodes trước đó.

Start Node , End Node và  Error Node  thuộc danh mục các node này.

Start Node, chỉ định bắt đầu công việc quy trình làm việc.

End Node, báo hiệu kết thúc công việc.

Error Node  chỉ định sự xuất hiện của một lỗi và thông báo lỗi tương ứng sẽ được in.

Khi kết thúc quá trình thực thi quy trình công việc, lệnh gọi lại HTTP được Oozie sử dụng để cập nhật trạng thái quy trình làm việc cho máy khách. Việc vào hoặc ra khỏi một action nodes cũng có thể kích hoạt lệnh gọi lại.

Sơ đồ quy trình làm việc mẫu

Hướng dẫn Apache Oozie

Đóng gói và triển khai ứng dụng quy trình làm việc Oozie

Ứng dụng dòng công việc bao gồm định nghĩa dòng công việc và tất cả các tài nguyên liên quan như tệp MapReduce Jar, tập lệnh Pig, v.v. Các ứng dụng cần tuân theo cấu trúc thư mục đơn giản và được triển khai tới HDFS để Oozie có thể truy cập chúng.

Một cấu trúc thư mục mẫu được hiển thị bên dưới-

<name of workflow>/</name>

??? lib/

? ??? hadoop-examples.jar

??? workflow.xml

Cần phải giữ workflow.xml (tệp định nghĩa dòng công việc) trong thư mục cấp cao nhất (thư mục mẹ có tên dòng công việc). Thư mục Lib chứa các tệp Jar chứa các lớp MapReduce. Ứng dụng quy trình làm việc tuân theo bố cục này có thể được xây dựng bằng bất kỳ công cụ xây dựng nào, ví dụ Ant hoặc Maven.

Một bản dựng như vậy cần được sao chép sang HDFS bằng lệnh, ví dụ:

% hadoop fs -put hadoop -amples / target / <name of workflow dir> name of workflow

Các bước để chạy một công việc theo quy trình Oozie

Trong phần này, chúng ta sẽ xem cách chạy một công việc theo quy trình làm việc. Để chạy điều này, chúng tôi sẽ sử dụng công cụ dòng lệnh Oozie (một chương trình khách giao tiếp với máy chủ Oozie).

1. Xuất biến môi trường OOZIE_URL cho biết lệnh oozie mà máy chủ Oozie sẽ sử dụng (ở đây chúng tôi đang sử dụng một biến đang chạy cục bộ):

% export OOZIE_URL = “http: // localhost: 11000 / oozie”

2. Chạy công việc quy trình làm việc bằng-

% oozie job -config ch05 / src / main / resources / max-temp-workflow.properties -run

Tùy chọn -config đề cập đến tệp thuộc tính Java cục bộ chứa các định nghĩa cho các tham số trong tệp XML dòng công việc, cũng như oozie.wf.application.path, cho Oozie biết vị trí của ứng dụng dòng công việc trong HDFS.

Nội dung ví dụ của tệp thuộc tính:

nameNode=hdfs://localhost:8020

jobTracker=localhost:8021

oozie.wf.application.path=${nameNode}/user/${user.name}/<name of workflow>

3. Nhận trạng thái của quy trình công việc

Trạng thái công việc quy trình làm việc có thể được nhìn thấy bằng cách sử dụng lệnh con ‘job’ với tùy chọn ‘-info’ và chỉ định id công việc sau ‘-info’.

ví dụ:% oozie job -info <job id>

Đầu ra hiển thị trạng thái là một trong những CHẠY, GIẾT hoặc ĐÃ THÀNH CÔNG.

4. Kết quả của việc thực thi quy trình làm việc thành công có thể được nhìn thấy bằng cách sử dụng lệnh Hadoop 

% hadoop fs -cat <location of result>

Tại sao sử dụng Oozie?

Mục đích chính của việc sử dụng Oozie là quản lý các loại công việc khác nhau đang được xử lý trong hệ thống Hadoop.

Sự phụ thuộc giữa các công việc được chỉ định bởi người dùng dưới dạng Đồ thị theo chu kỳ được hướng dẫn. Oozie sử dụng thông tin này và quản lý việc thực hiện chúng theo đúng thứ tự như được chỉ định trong quy trình làm việc. Bằng cách đó, thời gian của người dùng để quản lý toàn bộ quy trình làm việc được tiết kiệm. Ngoài ra, Oozie còn có điều khoản quy định tần suất thực hiện một công việc cụ thể.

Đặc điểm của Oozie

  • Oozie có API ứng dụng khách và giao diện command line có thể được sử dụng để khởi chạy, kiểm soát và giám sát công việc từ ứng dụng Java.
  • Sử dụng các API dịch vụ web của nó, người ta có thể kiểm soát công việc từ mọi nơi.
  • Oozie có cung cấp để thực hiện các công việc được lên lịch chạy định kỳ.
  • Oozie có quy định gửi email thông báo sau khi hoàn thành công việc.

Back to top button
You cannot copy content of this page