آموزش Hive

آموزش Hive – معرفی

اصطلاح "داده های بزرگ" به مجموعه ای از داده های حجیم اطلاق میشه که حاوی حجم زیاد، سرعت بالا و انواع مختلفی از داده هایی هستن که روز به روز افزایش پیدا می کنن. پردازش داده های بزرگ با استفاده از سیستم های مدیریت داده ی معمولی سختِه. بنابراین مؤسسه ی نرم افزاری Apache، برای حل چالش مدیریت و پردازش داده های بزرگ، فریم ورکی به نامِ Hadoop را معرفی کرد.

Hadoop

Hadoop یک فریم ورک سورس باز برای ذخیره و پردازش داده های بزرگ در یک محیط توزیع شدَ ست. این فریم ورک دو ماژول داره؛ MapReduce و فایل سیستم توزیع شده ی Hadoop (HDFS).

  • MapReduce: یک مدل برنامه نویسی موازی برای پردازش حجم زیادی از داده های ساخت یافته، نیمه ساخت یافته و بدون ساختار در کلاسترهای بزرگ سخت افزارِ commodity است.
  • HDFS: فایل سیستم توزیع شده ی Hadoop، بخشی از فریم ورکِ Hadoop است که برای ذخیره و پردازش مجموعه داده ها استفاده میشه. این فایل سیستم، فایل سیستمی با قابلیت تحمل خطا، برای اجرا روی سخت افزارِ commodity ارائه میده.

اکوسیستمِ Hadoop حاوی پروژه های فرعی (ابزارها) مثل Sqoop، Pig و Hive است که برای کمک به ماژول های Hadoop به کار میرن.

  •  Sqoop: برای وارد (import) و خارج (export) کردن داده ها بین HDFS و RDBMS استفاده میشه.
  •  Pig: یک پلتفرمِ زبانِ ماژولارِه که برای ایجاد اسکریپت، برای عملیاتِ MapReduce به کار میره.
  •  Hive: پلت فرمیِه که برای توسعه ی اسکریپت های از نوعِ SQL، جهت انجام عملیات های MapReduce به کار میره.

نکته: راه های مختلفی برای اجرای عملیاتِ MapReduce وجود داره:

  •  در روش معمولی برای داده های ساخت یافته، نیمه ساخت یافته و بدون ساختار، از برنامه ی Java MapReduce استفاده میشه.
  • روش اسکریپت نویسی برای اجرای عملیاتِ MapReduce جهت پردازش داده های ساخت یافته، نیمه ساخت یافته و بدون ساختار با استفاده از Pig است.
  • زبانِ Hive Query (HiveQL  یا  HQL) برای اجرای عملیاتِ MapReduce جهت پردازش داده های ساخت یافته، نیمه ساخت یافته و بدون ساختار با استفاده از Pig است.

Hive چیست؟

Hive یک ابزار زیرساختیِ انبار داده ست برای پردازش داده های ساخت یافته در Hadoop. Hive، بالای Hadoop قرار داره، داده های سنگین را خلاصه می کنه و ایجاد کوئری و انجام کارهای تجزیه و تحلیل را آسان می کنه.

در اصل ابتدا فیسبوک، Hive را طراحی کرد، ولی بعداً مؤسسه ی نرم افزاریِ Apache، آن را گرفت و بعنوان یک نرم افزار سورس باز با نام Apache Hive توسعه داد. شرکت های مختلفی از این نرم افزار استفاده می کنن. برای مثال، آمازون در Amazon Elastic MapReduce از این نرم افزار استفاده می کنه.

Hive شامل موارد زیر نیست:

  •  یک پایگاه داده ای
  •  یک طراحی برای پردازش تراکنش های آنلاین (OLTP)
  •  زبانی برای کوئری های زمان-واقعی (real-time) و به روز رسانی های سطحِ row.

آینده ی Hive

  •  Hive، شَما را در پایگاه داده ذخیره کرده و داده ها را به HDFS پردازش می کنه.
  •  برای OLAP طراحی شده.
  •  برای انجام کوئری ها، نوعی زبانِ SQL به نام HiveQl یا HQL ارائه میده.
  •  آشنا، سریع، مقیاس پذیر و قابل گسترشِه.

معماریِ Hive

نمودار کامپوننت زیر، معماریِ Hive را نشان میده:

hive architecture

این نمودار کامپوننت، از واحدهای مختلفی تشکیل شده. این واحدها در جدول زیر شرح داده شدن:

نام واحد

عملکرد

User Interface

Hive یک نرم افزار زیرساختیِ انبار داده ایِه که تعامل بین کاربر و  HDFS را برقرار می کنه. رابط های کاربری که Hive از آن ها پشتیبانی می کنه، رابط کاربریِ وبِ Hive، خط فرمانِ Hive و Hive HD Insight هستن (در ویندوز سرور).

Meta Store

Hive، برای ذخیره ی شَما یا متادیتای جدول ها، پایگاه داده ها، ستون های جدول، انواع داده ای و HDFS mapping، دیتابیس سرورهای مربوطه را انتخاب می کنه.

HiveQL Process Engine

HiveQL، از لحاظ ایجاد کوئری از اطلاعاتِ شَما در MetaStore، شبیه به SQL عمل می کنه. HiveQL یکی از جایگزین های روش معمولیِ برنامه ی MapReduce است. می توانیم بجای این که برنامه های MapReduce را با جاوا بنویسیم، برای کارِ MapReduce یک کوئری نوشته و آن را پردازش کنیم.

Execution Engine

قسمت عطفِ موتور پردازشِ HiveQL (HiveQL process Engine) و MapReduce، موتور اجرایِ Hive (Hive Execution Engine) است.

HDFS or HBASE

فایل سیستم توزیع شده ی Hadoop یا HBASE، تکنیک های ذخیره سازیِ ذخیره ی داده ها در فایل سیستم هستن.

طرز کارِ Hive

جریان کاری میان Hive و Hadoop در نمودار زیر نشان داده شده.

how hive works

جدول زیر نحوه ی تعاملِ Hive با فریم ورکِ Hadoop را نشان میده.

شماره مرحله

عملیات

1

اجرای کوئری

رابط ِ Hive (مثل خط فرمان یا رابط کاربری وب) کوئری را برای اجرا به درایور (هر نوع دیتابیس درایوری مثل JDBC، ODBC و ...) میفرسته.

2

گرفتن طرح

درایور، برای تجزیه و تحلیل کوئری از نظر شکل دستوری و طرحِ کوئری یا احتیاجات کوئری، از کوئری کامپایلر کمک میگیره.

3

گرفتنِ متادیتا

کامپالر، درخواست متادیتا را به Metastore (هر پایگاه داده ای) میفرسته .

4

فرستادن متادیتا

Metastore، متادیتا را بعنوان پاسخ به کامپالر ارسال می کنه.

5

ارسال طرح

کامپایلر احتیاجات را بررسی کرده و دوباره طرح را برای دریافت کننده ارسال می کنه. تا این جا تجزیه و تحلیل و کامپایل کوئری تکمیل شده.

6

اجرای طرح

درایور، طرح اجرایی را برای موتور اجرایی (execution engine) ارسال می کنه.

7

اجرای کار

فرآیند اجرای کار، بصورت داخلی، یک کارِ MapReduce است. موتور اجرایی، کار را به JobTracker که در Name node قرار داره ارسال می کنه و Name node این کار را به TaskTracker که در Data node قرار داره تخصیص میده. به این ترتیب کوئری، کارِ MapReduce را اجرا می کنه.

7.1

عملیات های متادیتا

موتور اجرایی می تواند هنگام انجام عملیات اجرایی، عملیات های متادیتا را همراه با MetaStore اجرا کنه.

8

نتایج واکشی

موتور اجرایی، نتایج را از nodeهایِ Data دریافت می کنه.

9

ارسال نتایج

موتور اجرایی، مقادیرِ نتایج را برای درایور ارسال می کنه.

10

ارسال نتایج

درایور، نتایج را به رابط هایِ Hive ارسال می کنه.

در صورتی که سوال و یا نظری دارید، از بخش نظرات با ما در میان بگذارید.

خبـرنــامه

Newsletters

در خبــرنـامه سافت اسکیل عضو شویــد تا جدیدترین هـای سایت را بلافاصله در ایمیل خـود دریافت کنیـد

شما چه نظر و یا سوالی درباره این نوشته دارید؟

مبحث آموزشی

آموزش Hive

Learn Hive

پرســیدن سؤال جدید

سؤال های تخصصی خود را از ما بپرسید

دنبال کردن تلگرام کانال سافت اسکیل

https://telegram.me/softskill_ir

عملیات کاربران

خبـرنــامه

Newsletters

در خبــرنـامه سافت اسکیل عضو شویــد تا جدیدترین هـای سایت را بلافاصله در ایمیل خـود دریافت کنیـد

کلیک کنید و سوالات خود را از ما بپرسید
لطفا فرم سوال را پر کنید

سوال شما با موفقیت ثبت شد. برای اینکه بتوانیم به شما اطلاع رسانی کنیم، موارد زیر را وارد کنید:

لطفا چند لحظه منتظر بمانید ...