כמה מילים על - Hive and Pig

כלי גישה נתונים: MapReduce, Hive and Pig

נתחיל בהסבר כללי על כל כלי:

MapReduce – הוא framework לכתיבת אפליקציות לעיבוד big-data בצורה מקבילית ב-cluster שיכול להכיל הרבה מכונות, בצורה אמינה ו-fault tolerant

Apache Hive – הוא data warehouse שמאפשר שאילתות דומות ל-SQL בממשק נוח, עבור big-data שמאוחסן ב-HDFS

Apache Pig – כלי שמאפשר לכתוב סקריפטים לעבודה עם קבצי big-data. הוא מציע אלטרנטיבה ל-MapReduce (ששם הכתיבה ב-Java). סקריפטים של Pig מומרים בצורה אוטומטית ל-MapReduce ע"י ה-Pig engine


Apache Hive

נבנה ע"י פייסבוק ולאחר מכן הועבר ל-Apache כפרויקט קוד פתוח. Hive בנוי על גבי MapReduce והוא מאפשר לעשות פעילויות של data warehouse כמו ETL (ראשי תיבות של Extract, Transform, Load שזהו תהליך של העברת מידע מ-DB אחד לאחר), data summarization (תהליך שנותן מידע כללי על ה-data), שאילתות ואנליזות. Hive מאפשר גישה לקבצים ששמורים ב-HDFS ו-HBase ועובד רק עם structured data.

Hive מייצר את ה-DB והטבלאות ולאחר מכן מכניס לתוכם את ה-data כדי לאפשר ניהול ושאילתות על structured data.

ב-Hive יש שפה שדומה ל-SQL ונקראת HiveQL שמאפשרת הרצת שאילתות על big-data. יש לו ממשק command-line שאפשר להשתמש בו בשביל שאילתות ויצירת טבלאות.

מאחורי הקלעים Hive engine ממיר את השאילתות שנכתבו ב-HiveQL ל-MapReduce כדי להריץ אותם על Hadoop.

Hive בנוי משני חלקים:

HCatalog – מנהל את האיחסון ואת הטבלאות. הוא משמש כגשר בין כלי העיבוד לבין הנתונים, כך שהוא מאפשר למשתמשים בכלים אחרים כמו MapReduce או Pig לכתוב ולקרוא נתונים.

WebHCat – מספק service שמאפשר הרצת Jobs של Hadoop, YARN, Pig, Hive או פעולות של Hive metadata ע"י ממשק REST.


Apache Pig

נבנה ע"י Yahoo ולאחר מכן הועבר ל-Apache כפרויקט קוד פתוח. Pig מאפשר שימוש בשפה שהיא high level עבור אנליזות של Big data. הוא מאפשר כתיבה של אנליזות בשפה יחסית קלה בלי הצורך להשתמש ישירות ב-MapReduce שהוא יחסית מורכב.

Pig בנוי על גבי Apache Hadoop YARN ומשתמש ב-MapReduce ו-HDFS. הוא מורכב משני חלקים:

Pig Latin – שזו השפה לכתיבת סקריפטים. היא בנויה מרצף של פעולות וטרנספורמציות שנעשות על הנתונים כדי לקבל את הפלט הדרוש. ניתן גם להרחיב את הסקריפט ע"י כתיבת פונקציות ב-Java, Python, Ruby ושפות סקריפט נוספות, ולקרוא להם ישירות מ-Pig Latin.

Runtime Environment – שכולל parser, optimizer, קומפיילר ומנוע הרצה. הוא ממיר סקריפטים של Pig ל-MapReduce jobs ומריץ אותם על Hadoop MapReduce engine.

ל-Pig יש שתי צורות הפעלה:

Local mode  – ריצה על גבי JVM יחיד ושימוש במערכת הקבצים המקומית. שיטה זו מתאימה לריצה על כמויות מידע קטנות יחסית.

MapReduce mode – השאילתות מתורגמות ל- MapReduce jobs ורצות על Hadoop cluster. שיטה זו מתאימה לריצה על כמויות מידע גדולות.

מקובל להשתמש ב-Hive ו-Pig יחד, כאשר Pig מכין את המידע לשאילתות, ו-Hive מבצע את השאילתות.


אם אהבתם, תכתבו משהו למטה...