הארכיטקטורה הבאה מסבירה את זרימת הגשת השאילתה לתוך Hive.
לקוח כוורת
Hive מאפשר כתיבת יישומים בשפות שונות, כולל Java, Python ו-C++. זה תומך בסוגים שונים של לקוחות כגון:
- Thrift Server - זוהי פלטפורמת ספק שירות חוצת שפות המשרתת את הבקשה מכל אותן שפות תכנות התומכות ב-Thrift.
- מנהל התקן JDBC - הוא משמש ליצירת חיבור בין כוורת ליישומי Java. מנהל ההתקן JDBC קיים בכיתה org.apache.hadoop.hive.jdbc.HiveDriver.
- מנהל התקן ODBC - מאפשר לאפליקציות התומכות בפרוטוקול ODBC להתחבר ל-Hive.
שירותי כוורת
להלן השירותים הניתנים על ידי Hive:-
- Hive CLI - ה-Hive CLI (ממשק שורת הפקודה) הוא מעטפת שבה אנו יכולים לבצע שאילתות ופקודות של Hive.
- ממשק משתמש של Hive Web - ממשק המשתמש של Hive Web הוא רק אלטרנטיבה של Hive CLI. הוא מספק GUI מבוסס אינטרנט לביצוע שאילתות ופקודות של Hive.
- Hive MetaStore - זהו מאגר מרכזי המאחסן את כל מידע המבנה של טבלאות ומחיצות שונות במחסן. הוא כולל גם מטא-נתונים של עמודה ומידע מהסוג שלה, ה-serializers ו-de-serializers המשמשים לקריאה ולכתיבה של נתונים וקובצי HDFS המתאימים שבהם הנתונים מאוחסנים.
- שרת כוורת - הוא מכונה Apache Thrift Server. הוא מקבל את הבקשה מלקוחות שונים ומספק אותה ל-Hive Driver.
- מנהל התקן כוורת - הוא מקבל שאילתות ממקורות שונים כמו ממשק משתמש אינטרנט, CLI, Thrift ומנהל התקן JDBC/ODBC. זה מעביר את השאילתות לקומפיילר.
- כוורת מהדר - מטרת המהדר היא לנתח את השאילתה ולבצע ניתוח סמנטי על בלוקי השאילתה והביטויים השונים. זה ממיר הצהרות HiveQL למשרות MapReduce.
- Hive Execution Engine - Optimizer מייצר את התוכנית הלוגית בצורה של DAG של משימות הפחתת מפה ומשימות HDFS. בסופו של דבר, מנוע הביצוע מבצע את המשימות הנכנסות לפי סדר התלות שלהן.