Apache Pig - การดำเนินการ

ในบทที่แล้วเราได้อธิบายวิธีการติดตั้ง Apache Pig ในบทนี้เราจะพูดถึงวิธีการรัน Apache Pig

โหมดการดำเนินการ Apache Pig

คุณสามารถเรียกใช้ Apache Pig ได้ในสองโหมดคือ Local Mode และ HDFS mode.

โหมดท้องถิ่น

ในโหมดนี้ไฟล์ทั้งหมดจะถูกติดตั้งและเรียกใช้จากโลคัลโฮสต์และระบบไฟล์ภายในเครื่องของคุณ ไม่จำเป็นต้องมี Hadoop หรือ HDFS โดยทั่วไปโหมดนี้จะใช้เพื่อการทดสอบ

โหมด MapReduce

โหมด MapReduce คือที่ที่เราโหลดหรือประมวลผลข้อมูลที่มีอยู่ใน Hadoop File System (HDFS) โดยใช้ Apache Pig ในโหมดนี้เมื่อใดก็ตามที่เราเรียกใช้คำสั่ง Pig Latin เพื่อประมวลผลข้อมูลจะมีการเรียกงาน MapReduce ในส่วนหลังเพื่อดำเนินการเฉพาะกับข้อมูลที่มีอยู่ใน HDFS

กลไกการดำเนินการ Apache Pig

สคริปต์ Apache Pig สามารถดำเนินการได้สามวิธี ได้แก่ โหมดโต้ตอบโหมดแบทช์และโหมดฝังตัว

  • Interactive Mode(Grunt shell) - คุณสามารถเรียกใช้ Apache Pig ในโหมดโต้ตอบโดยใช้ Grunt shell ในเชลล์นี้คุณสามารถป้อนคำสั่ง Pig Latin และรับเอาต์พุต (โดยใช้ตัวดำเนินการถ่ายโอนข้อมูล)

  • Batch Mode (Script) - คุณสามารถเรียกใช้ Apache Pig ในโหมด Batch ได้โดยการเขียนสคริปต์ Pig Latin ในไฟล์เดียวด้วย .pig ส่วนขยาย.

  • Embedded Mode (UDF) - Apache Pig ให้การกำหนดฟังก์ชันของเราเอง (Uเซอร์ Defined Functions) ในภาษาโปรแกรมเช่น Java และใช้ในสคริปต์ของเรา

การเรียกใช้ Grunt Shell

คุณสามารถเรียกใช้ Grunt shell ในโหมดที่ต้องการ (local / MapReduce) โดยใช้ไฟล์ −x ตามที่แสดงด้านล่าง

โหมดท้องถิ่น โหมด MapReduce

Command −

$ ./pig –x ในพื้นที่

Command −

$ ./pig -x mapreduce

Output -

Output -

คำสั่งอย่างใดอย่างหนึ่งเหล่านี้ให้พรอมต์เชลล์ Grunt ดังที่แสดงด้านล่าง

grunt>

คุณสามารถออกจากกระสุน Grunt โดยใช้ ‘ctrl + d’.

หลังจากเรียกใช้เชลล์ Grunt คุณสามารถเรียกใช้สคริปต์ Pig ได้โดยป้อนคำสั่ง Pig Latin ในนั้นโดยตรง

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

ดำเนินการ Apache Pig ในโหมดแบทช์

คุณสามารถเขียนสคริปต์ Pig Latin ทั้งหมดในไฟล์และดำเนินการโดยใช้ไฟล์ –x command. สมมติว่าเรามีสคริปต์ Pig ในไฟล์ชื่อsample_script.pig ดังแสดงด้านล่าง

Sample_script.pig

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

ตอนนี้คุณสามารถเรียกใช้สคริปต์ในไฟล์ด้านบนดังที่แสดงด้านล่าง

โหมดท้องถิ่น โหมด MapReduce
$ หมู -x ท้องถิ่น Sample_script.pig $ หมู -x mapreduce Sample_script.pig

Note - เราจะพูดถึงรายละเอียดวิธีเรียกใช้สคริปต์ Pig Bach mode และใน embedded mode ในบทต่อ ๆ ไป