Hive یک ابزار تجزیه و تحلیل داده های بزرگ در تجارت است که به طور گسترده مورد استفاده قرار می گیرد، و اگر در Big Data تازه کار هستید، مکانی فوق العاده برای شروع است. این درس Apache Hive به اصول Apache Hive، چرایی ضروری بودن کندو، ویژگیهای آن، و هر چیز دیگری که باید بدانید میپردازد.
بیایید ابتدا چارچوب Hadoop را که Apache Hive بر اساس آن ساخته شده است، درک کنیم.
آپاچی هادوپ
آپاچی هدوپ رایگان و منبع باز بستری برای ذخیره و پردازش مجموعه داده های بزرگ در اندازه های مختلف از گیگابایت تا پتابایت. Hadoop به جای نیاز به یک کامپیوتر بزرگ برای ذخیره و تجزیه و تحلیل داده ها، امکان خوشه بندی کامپیوترهای متعدد را برای تجزیه و تحلیل مجموعه داده های عظیم به صورت موازی فراهم می کند.
MapReduce و Hadoop Distributed File System دو مؤلفه هستند:
- MapReduce – MapReduce یک تکنیک برنامهنویسی موازی برای مدیریت حجم عظیمی از دادههای سازمانیافته، نیمه ساختاریافته و بدون ساختار در خوشههای سختافزاری کالا است.
- HDFS – HDFS (Hadoop Distributed File System) یک جزء چارچوب Hadoop است که داده ها را ذخیره و پردازش می کند. این یک سیستم فایل مقاوم در برابر خطا است که روی سخت افزار استاندارد اجرا می شود
پروژههای فرعی (ابزار) مختلف در اکوسیستم Hadoop، از جمله Sqoop، Pig و Hive، برای کمک به ماژولهای Hadoop استفاده میشوند.
- کندو – Hive چارچوبی برای نوشتن اسکریپت های به سبک SQL است که محاسبات MapReduce را انجام می دهد.
- خوک – Pig یک زبان برنامه نویسی رویه ای است که ممکن است برای ایجاد یک اسکریپت برای فرآیندهای MapReduce استفاده شود.
- اسکوپ – Sqoop ابزاری برای وارد کردن و صادرات داده بین HDFS و RDBMS است.
چه شده است آپاچی کندو?
Apache Hive یک منبع باز است انبار داده برنامه ای برای خواندن، نوشتن و مدیریت مجموعه داده های عظیمی که مستقیماً در سیستم فایل توزیع شده Apache Hadoop (HDFS) یا سایر سیستم های ذخیره سازی داده مانند Apache HBase ذخیره می شوند.
توسعه دهندگان SQL ممکن است از Hive برای ایجاد عبارت Hive Query Language (HQL) برای پرس و جو و تجزیه و تحلیل داده استفاده کنند که با عبارات SQL معمولی قابل مقایسه باشد. این برنامه برای تسهیل برنامه نویسی MapReduce با حذف نیاز به یادگیری و نوشتن کد طولانی جاوا ایجاد شده است. در عوض، میتوانید درخواستهای خود را در HQL بنویسید و Hive نقشه را میسازد و توابع را برای شما کاهش میدهد.
رابط SQL مانند Apache Hive به استاندارد طلایی برای انجام جستجوهای ad-hoc، خلاصه کردن و تجزیه و تحلیل داده های Hadoop تبدیل شده است. وقتی در ابر گنجانده شود شبکه های محاسباتی، این راه حل به ویژه مقرون به صرفه و مقیاس پذیر است، به همین دلیل است که بسیاری از شرکت ها، از جمله Netflix و Amazon، به توسعه و بهبود Apache Hive ادامه می دهند.
تاریخچه
جویدیپ سن سارما و آشیش توسوو در طول مدتی که در فیس بوک بودند، Apache Hive را ایجاد کردند. هر دوی آنها متوجه شدند که برای استفاده حداکثری از Hadoop، باید چند کار نسبتاً پیچیده Java Map-Reduce ایجاد کنند. آنها متوجه شدند که نمی توانند به تیم های مهندسی و تحلیلی که به سرعت در حال گسترش هستند مهارت هایی را که برای استفاده از Hadoop در سراسر شرکت نیاز دارند آموزش دهند. مهندسان و تحلیلگران اغلب از SQL به عنوان یک رابط کاربری استفاده می کردند.
در حالی که SQL می تواند اکثر نیازهای تجزیه و تحلیل را برآورده کند، توسعه دهندگان همچنین قصد داشتند قابلیت برنامه ریزی Hadoop را در نظر بگیرند. Apache Hive برخاسته از این دو هدف بود: یک زبان اعلامی مبتنی بر SQL که همچنین به توسعه دهندگان این امکان را می داد که اسکریپت ها و برنامه های خود را در زمانی که SQL کافی نبود وارد کنند.
همچنین برای نگهداری ابرداده های متمرکز (مبتنی بر Hadoop) در مورد همه مجموعه داده های موجود در شرکت ایجاد شد تا ساخت سازمان های مبتنی بر داده را آسان تر کند.
Apache Hive چگونه کار می کند؟
به طور خلاصه، Apache Hive یک برنامه ورودی نوشته شده به زبان HiveQL (SQL مانند) را به یک یا چند کار Java MapReduce، Tez یا Spark تبدیل می کند. (همه این موتورهای اجرایی با Hadoop YARN سازگار هستند.) پس از آن، Apache Hive داده ها را در جداول سیستم فایل توزیع شده Hadoop HDFS مرتب می کند و وظایف را در یک خوشه برای دریافت پاسخ انجام می دهد.
داده ها
جداول Apache Hive به همان شکلی که جداول در یک پایگاه داده رابطهای سازماندهی شدهاند، با واحدهای دادهای از بزرگتر تا کوچکتر مرتب شدهاند. پایگاههای داده از جداولی تشکیل شدهاند که به بخشهایی تقسیم میشوند که بیشتر به سطلها تقسیم میشوند. HiveQL (Hive Query Language) برای دسترسی به داده ها استفاده می شود که می توان آنها را تغییر داد یا اضافه کرد. داده های جدول در هر پایگاه داده سریالی می شوند و هر جدول دایرکتوری HDFS خود را دارد.
معماری
اکنون در مورد مهمترین جنبه معماری Hive صحبت خواهیم کرد. اجزای Apache Hive به شرح زیر است:
متاستور - اطلاعات مربوط به هر جدول، مانند ساختار و مکان آن را ردیابی می کند. فراداده پارتیشن نیز در Hive گنجانده شده است. این به راننده اجازه می دهد تا پیشرفت مجموعه داده های مختلف را که در سراسر خوشه پخش شده اند، پیگیری کند. داده ها در قالب RDBMS معمولی ذخیره می شوند. ابرداده Hive برای راننده در حفظ ردیابی داده ها بسیار مهم است. سرور پشتیبان داده ها را به طور منظم کپی می کند تا در صورت از دست رفتن داده ها بازیابی شوند.
راننده - دستورات HiveQL توسط یک راننده دریافت می شود که به عنوان یک کنترل کننده عمل می کند. با ایجاد جلسات، راننده اجرای دستور را آغاز می کند. طول عمر و پیشرفت مدیران اجرایی را پیگیری می کند. در حین اجرای دستور HiveQL، درایور متادیتای مورد نیاز را ذخیره می کند. همچنین به عنوان نقطه جمع آوری داده یا نتیجه پرس و جو پس از فرآیند Reduce عمل می کند.
کامپایلر – کامپایل کوئری HiveQL را اجرا می کند. پرس و جو اکنون به یک برنامه اجرایی تبدیل شده است. وظایف در طرح ذکر شده است. همچنین شامل مراحلی است که MapReduce باید برای بدست آوردن نتیجه ترجمه شده توسط پرس و جو انجام دهد. پرس و جو توسط کامپایلر Hive (AST) به یک درخت نحو انتزاعی تبدیل می شود. AST را پس از بررسی سازگاری و خطاهای زمان کامپایل (DAG) به یک گراف غیر چرخه جهت دار تبدیل می کند.
بهینه ساز – DAG را با انجام تغییرات مختلف در برنامه اجرا بهینه می کند. این تغییرات را برای بهبود کارایی ترکیب می کند، مانند تبدیل خط لوله اتصالات به یک اتصال واحد. برای بهبود سرعت، بهینهساز ممکن است فعالیتها را تقسیم کند، مانند اعمال تبدیل به دادهها قبل از انجام عملیات کاهش.
مجری – زمانی که کامپایل و بهینه سازی تمام شد، مجری وظایف را اجرا می کند. کارها توسط مجری خط لوله انجام می شود.
CLI، UI و سرور Thrift – رابط خط فرمان (CLI) یک رابط کاربری است که به کاربر خارجی اجازه می دهد با Hive ارتباط برقرار کند. سرور صرفهجویی Hive، مشابه پروتکلهای JDBC یا ODBC، به مشتریان خارجی اجازه میدهد تا از طریق شبکه با Hive ارتباط برقرار کنند.
دوربین های مداربسته
Apache Hive با امنیت Hadoop یکپارچه شده است که از Kerberos برای احراز هویت متقابل مشتری-سرور استفاده می کند. HDFS مجوزهایی را برای فایلهای تازه تولید شده در Apache Hive دیکته میکند و به شما امکان میدهد توسط کاربر، گروه و دیگران تأیید شود.
ویژگی های کلیدی
- Hive از جداول خارجی پشتیبانی می کند که به شما امکان می دهد داده ها را بدون ذخیره در HDFS پردازش کنید.
- همچنین تقسیم بندی داده ها را در سطح جدول برای افزایش سرعت فعال می کند.
- Apache Hive به خوبی نیاز رابط سطح پایین Hadoop را برآورده می کند.
- Hive خلاصه کردن، پرس و جو و تجزیه و تحلیل داده ها را آسان تر می کند.
- HiveQL به هیچ مهارت برنامه نویسی نیاز ندارد. درک ساده پرس و جوهای SQL کافی است.
- ما همچنین می توانیم از Hive برای انجام پرس و جوهای موقت برای تجزیه و تحلیل داده ها استفاده کنیم.
- مقیاس پذیر، آشنا و سازگار است.
- HiveQL به هیچ مهارت برنامه نویسی نیاز ندارد. درک ساده پرس و جوهای SQL کافی است.
مزایا
Apache Hive امکان گزارش های پایان روز، ارزیابی تراکنش های روزانه، جستجوهای موقت و تجزیه و تحلیل داده ها را فراهم می کند. بینش جامع ارائه شده توسط Apache Hive مزیت های رقابتی قابل توجهی را ارائه می دهد و پاسخگویی به تقاضاهای بازار را برای شما آسان تر می کند.
در اینجا برخی از مزایای داشتن چنین اطلاعاتی به راحتی در دسترس است:
- سهولت استفاده - با زبان SQL مانند آن، درک داده های پرس و جو ساده است.
- درج سریع داده ها - از آنجایی که Apache Hive طرحواره را بدون تأیید نوع جدول یا تعریف طرحواره می خواند، لازم نیست داده ها در قالب داخلی پایگاه داده خوانده، تجزیه و سریال شوند. در مقابل، در یک پایگاه داده معمولی، داده ها باید هر بار که اضافه می شوند اعتبار سنجی شوند.
- مقیاس پذیری، انعطاف پذیری و مقرون به صرفه بودن برتر - از آنجایی که داده ها در HDFS ذخیره می شوند، Apache Hive می تواند 100 پتابایت داده را در خود جای دهد، که آن را به گزینه ای بسیار مقیاس پذیرتر از یک پایگاه داده معمولی تبدیل می کند. Apache Hive، به عنوان یک سرویس Hadoop مبتنی بر ابر، به مشتریان اجازه میدهد تا به سرعت سرورهای مجازی را بالا و پایین کنند تا با حجم کاری در حال تغییر مواجه شوند.
- ظرفیت کاری گسترده - مجموعه داده های بزرگ ممکن است تا 100,000 پرس و جو را در ساعت پاسخ دهد.
محدودیت ها
- به طور کلی، کوئری های Apache Hive تأخیر بسیار بالایی دارند.
- پشتیبانی فرعی محدود است.
- پرس و جوهای بلادرنگ و تغییرات در سطح ردیف در Apache Hive در دسترس نیستند.
- هیچ پشتیبانی برای دیدگاه های مادی وجود ندارد.
- در کندو، اقدامات به روز رسانی و حذف پشتیبانی نمی شود.
- برای OLTP (فرایند انتقال آنلاین) در نظر گرفته نشده است.
شروع کار با Apache Hive
Apache Hive یک شریک قوی Hadoop است که گردش کار شما را ساده و ساده می کند. برای استفاده حداکثری از Apache Hive، یکپارچه سازی یکپارچه ضروری است. اولین قدم رفتن به سایت اینترنتی.
1. نصب کندو از یک انتشار پایدار
با دانلود جدیدترین نسخه پایدار Hive از یکی از آینه های دانلود آپاچی شروع کنید (نگاه کنید به انتشارات کندو). سپس تاربال باید از بسته بندی باز شود. این یک زیرپوشه به نام hive-xyz (که xyz شماره انتشار است) ایجاد می کند:
متغیر محیطی HIVE_HOME را طوری تنظیم کنید که به دایرکتوری نصب اشاره کند:
در نهایت، $HIVE_HOME/bin را به خود اضافه کنید PATH
:
2. اجرای کندو
Hive از Hadoop استفاده می کند، بنابراین:
- شما باید Hadoop را در مسیر خود داشته باشید
3. عملیات DLL
ایجاد جدول کندو
جدولی به نام pokes با دو ستون ایجاد می کند که اولی یک عدد صحیح و دومی یک رشته است.
مرور جداول
فهرست کردن همه جداول
تغییر و حذف جداول
نام جدول را می توان تغییر داد و ستون ها را می توان اضافه یا جایگزین کرد:
شایان ذکر است که REPLACE COLUMNS جایگزین تمام ستون های موجود می شود در حالی که فقط ساختار جدول را تغییر می دهد و نه داده ها را. یک SerDe بومی باید در جدول استفاده شود. REPLACE COLUMNS همچنین می تواند برای حذف ستون ها از طرح جدول استفاده شود:
جداول رها کردن
بسیاری از عملیات و ویژگی های اضافی در Apache Hive وجود دارد که می توانید با مراجعه به وب سایت رسمی در مورد آنها اطلاعات کسب کنید.
نتیجه
تعریف Hive یک رابط برنامه داده برای پرس و جو و تجزیه و تحلیل مجموعه داده های عظیمی است که در بالای Apache Hadoop ساخته شده اند. حرفه ای ها آن را به برنامه ها، ابزارها و نرم افزارهای دیگر ترجیح می دهند زیرا عمدتاً برای داده های گسترده Hive طراحی شده است و استفاده از آن ساده است.
امیدواریم این آموزش به شما کمک کند تا با Apache Hive شروع کنید و گردش کار خود را کارآمدتر کنید. در نظرات به ما اطلاع دهید.
پاسخ دهید