معرفی ابزار: Apache HCatalog

ابزار HCatalog یک لایه مدیریت جداول و ذخیره‌سازی برای هدوپ است که به کاربران با ابزارهای پردازش داده‌های مختلف مانند Pig و MapReduce امکان خواندن و نوشتن راحت‌تر داده‌ها در شبکه را فراهم می‌کند. توانایی استخراج و تلخیص جداول در HCatalog دیدی رابطه‌ای از داده‌ها را در سیستم فایل توزیع شده هدوپ (HDFS) به کاربران ارائه می‌کند و به مسائل ونگرانی کاربران درباره اینکه داده‌ها از کجا یا در چه قالبی ذخیره می‌شوند - قالب RCFile، فایل‌های متنی، SequenceFiles یا فایل‌های ORC – پاسخ می‌دهد.HCatalog از خواندن و نوشتن فایل‌ها در هر قالبی پشتیبانی می‌کند. به طور پیش فرض، HCatalog از فرمت‌های فایل RCFile ، CSV ، JSON، SequenceFile و ORC پشتیبانی می‌کند. برای استفاده از قالب سفارشی، باید InputFormat ، OutputFormat و SerDe را ارائه دهید.معماری HCatalogHCatalog بر روی ساختار داده‌ای Hive ایجاد شده و دستورات ایجاد و تغییر داده‌ها در Hive را پشتیبانی می‌کند. HCatalog رابط‌های خواندن و نوشتن داده‌ها در Pig و MapReduce را نیز فراهم می‌کند و از رابط خط فرمان Hive برای صدور دستورات تعریف داده و کشف متادیتا استفاده می‌کند.رابط HCatalog برای Pig از HCatLoader و HCatStorer تشکیل شده است که به ترتیب رابط بارگیری و ذخیره داده‌ها در Pig را پیاده‌سازی می‌کنند. HCatLoader جدولی را برای خواندن داده‌ها می‌پذیرد. می‌توانید مشخص کنید که کدام پارتیشن‌ها را اسکن کنید و بدنبال آن بلافاصله دستور load را با یک عبارت فیلتر پارتیشن مورد نظر بکار ببرید. HCatStorer جدولی را برای نوشتن انتخاب کرده و به صورت اختیاری مشخصات کلیدهای پارتیشن مورد نظر را برای ایجاد یک پارتیشن جدید می‌پذیرد.مدل دادهHCatalog دیدی رابطه‌ای از داده‌ها را ارائه می‌دهد. داده‌ها در جداول ذخیره می‌شوند و این جداول می‌توانند در پایگاه داده قرار گیرند. جداول همچنین می‌توانند بر روی یک یا چند کلید به صورت hash تقسیم شوند. یعنی برای یک مقدار مشخص از یک کلید (یا مجموعه‌ای از کلیدها) یک پارتیشن وجود دارد که شامل تمام ردیف‌های دارای آن مقدار (یا مجموعه‌ای از مقادیر) است. به عنوان مثال، اگر یک جدول بصورت توالی تاریخی تقسیم شده باشد و سه روز داده در جدول وجود داشته باشد، در این جدول سه پارتیشن وجود دارد. پارتیشن‌های جدید را می‌توان به یک جدول اضافه کرد یا می‌توان از یک جدول حذف کرد. جداول پارتیشن‌بندی شده در زمان ایجاد هیچ پارتیشنی ندارند. جداول تقسیم نشده به طور موثر دارای یک پارتیشن پیش فرض هستند که باید در زمان ایجاد جدول ایجاد شوند.مثالی از جریان داده‌هااین مثال ساده جریان داده را نشان می‌دهد که چگونه HCatalog می‌تواند به کاربران شبکه کمک کند داده‌ها را به اشتراک بگذارند و به آنها دسترسی پیدا کنند.داده ها را در شبکه کپی کنیددر دستیابی به داده‌ها از distcp برای وارد کردن داده ها به شبکه استفاده می‌کنید. همانطور که مشاهده می‌کنید با دستورdistcp فایل مورد نظر را به محیط فایل سیستم هدوپ کپی کرده و می‌توانید جداول مربوطه را ایجاد و تغییرات لازم را بر روی جداول اعمال کنیدhadoop distcp file:///file.dat hdfs://data/rawevents/20100819/datahcat "alter table rawevents add partition (ds='20100819') location 'hdfs://data/rawevents/20100819/data'"داده‌ها را آماده کنیدمثلا اگر بخواهید از Pig برای پاکسازی و آماده کردن داده‌ها استفاده کنید در صورتی که از HCatalog استفاده نکنید به هنگام بارگذاری داده‌ها باید منتظر باشید و اطمینان حاصل کنید که داده‌ها بارگذاری شده و در محیط هدوپ موجود هستند اما با استفاده ازHCatalog خود برنامه بعد از بارگذاری کامل داده‌ها یک پیغام اتمام ارسال کرده و Pig می‌تواند عملیات خود را آغاز کند.A = load 'rawevents' using org.apache.hive.hcatalog.pig.HCatLoader();B = filter A by date = '20100819' and by bot_finder(zeta) = 0;...store Z into 'processedevents' using org.apache.hive.hcatalog.pig.HCatStorer("date=20100819");تحلیل داده‌هافرض کنیم بخواهید از Hive برای تحلیل داده‌های مشتریان استفاده کنید. در اینصورت و بدون استفاده از HCatalog باید خود شما جداول مورد نظر را تغییر داده و پارتیشن‌های مورد نیاز را ایجاد کنید.alter table processedevents add partition 20100819 hdfs://data/processedevents/20100819/data select advertiser_id, count(clicks)from processedeventswhere date = '20100819'group by advertiser_id;اما با استفاده از HCatalog دیگر نیازی به این کار نداشته و فقط به تحلیل و کوئری زدن بر روی داده‌های خود می‌پردازید زیرا پارتیشن‌ها از قبل برای شما ایجاد شده‌اند.select advertiser_id, count(clicks)from processedeventswhere date = '20100819'group by advertiser_id;رابط کاربری تحت وب (HCatalog Web API)WebHCat یک رابط کاربری تحت وب است که امکان کار با محیط HCatalog را فراهم می‌کند. نام اصلی WebHCat تمپلتون بود. کار با این رابط کاربری بسیار آسان بوده و امکانات خوبی را فراهم می‌کند.www.bdbanalytics.ir@BigData_BusinessAnalyticshttps://www.instagram.com/dr.saeedrouhani