Apache Pig - Thực thi

Trong chương trước, chúng tôi đã giải thích cách cài đặt Apache Pig. Trong chương này, chúng ta sẽ thảo luận về cách thực thi Apache Pig.

Chế độ thực thi Apache Pig

Bạn có thể chạy Apache Pig ở hai chế độ, cụ thể là Local ModeHDFS mode.

Chế độ cục bộ

Trong chế độ này, tất cả các tệp được cài đặt và chạy từ máy chủ lưu trữ cục bộ và hệ thống tệp cục bộ của bạn. Không cần Hadoop hoặc HDFS. Chế độ này thường được sử dụng cho mục đích thử nghiệm.

Chế độ MapReduce

Chế độ MapReduce là nơi chúng tôi tải hoặc xử lý dữ liệu tồn tại trong Hệ thống tệp Hadoop (HDFS) bằng Apache Pig. Trong chế độ này, bất cứ khi nào chúng ta thực thi các câu lệnh Pig Latin để xử lý dữ liệu, một công việc MapReduce được gọi trong back-end để thực hiện một thao tác cụ thể trên dữ liệu tồn tại trong HDFS.

Cơ chế thực thi Apache Pig

Các tập lệnh Apache Pig có thể được thực thi theo ba cách, đó là chế độ tương tác, chế độ hàng loạt và chế độ nhúng.

  • Interactive Mode(Grunt shell) - Bạn có thể chạy Apache Pig ở chế độ tương tác bằng cách sử dụng Grunt shell. Trong trình bao này, bạn có thể nhập các câu lệnh Pig Latin và nhận kết quả (sử dụng toán tử Dump).

  • Batch Mode (Tập lệnh) - Bạn có thể chạy Apache Pig ở chế độ Batch bằng cách viết tập lệnh Pig Latin trong một tệp duy nhất với .pig sự mở rộng.

  • Embedded Mode (UDF) - Apache Pig cung cấp điều khoản xác định các chức năng của riêng chúng tôi (User Dtinh chế Fchú thích) bằng các ngôn ngữ lập trình như Java và sử dụng chúng trong tập lệnh của chúng tôi.

Gọi Vỏ Grunt

Bạn có thể gọi trình bao Grunt ở chế độ mong muốn (cục bộ / MapReduce) bằng cách sử dụng −x tùy chọn như hình dưới đây.

Chế độ cục bộ Chế độ MapReduce

Command −

$ ./pig –x cục bộ

Command −

$ ./pig -x mapreduce

Output -

Output -

Một trong hai lệnh này cung cấp cho bạn lời nhắc Grunt shell như được hiển thị bên dưới.

grunt>

Bạn có thể thoát khỏi trình bao Grunt bằng cách sử dụng ‘ctrl + d’.

Sau khi gọi shell Grunt, bạn có thể thực thi tập lệnh Pig bằng cách nhập trực tiếp các câu lệnh Pig Latin vào đó.

grunt> customers = LOAD 'customers.txt' USING PigStorage(',');

Thực thi Apache Pig ở chế độ hàng loạt

Bạn có thể viết toàn bộ tập lệnh Pig Latin trong một tệp và thực thi nó bằng cách sử dụng –x command. Giả sử chúng tôi có tập lệnh Pig trong một tệp có tênsample_script.pig như hình bên dưới.

Sample_script.pig

student = LOAD 'hdfs://localhost:9000/pig_data/student.txt' USING
   PigStorage(',') as (id:int,name:chararray,city:chararray);
  
Dump student;

Bây giờ, bạn có thể thực thi tập lệnh trong tệp trên như hình dưới đây.

Chế độ cục bộ Chế độ MapReduce
$ pig -x địa phương Sample_script.pig $ pig -x mapreduce Sample_script.pig

Note - Chúng ta sẽ thảo luận chi tiết về cách chạy tập lệnh Pig trong Bach mode và trong embedded mode trong các chương tiếp theo.