sahar ahsani
sahar ahsani
خواندن ۳ دقیقه·۳ سال پیش

معرفی Apache Kudu

آپاچی Kudu یک موتور ذخیره سازی منبع باز است که تحت نظارت بنیاد نرم افزار آپاچی اداره می شود. این فناوری برای پر کردن شکاف بین سیستم‌های ذخیره‌سازی با دسترسی متوالی با توان عملیاتی بالا مانند HDFS و سیستم‌های دسترسی تصادفی با تاخیر کم مانند HBase یا Cassandra طراحی و اجرا شده است.

آپاچی Kudu به گونه ای طراحی شده که با اکوسیستم هدوپ سازگار است و با سایر چارچوب های پردازش داده مانند Spark، Impala و MapReduce به راحتی ادغام می شود.

آپاچی Kudu از نقاط مثبت HBase و Parquet استفاده می کند. در دریافت داده ها به همان سرعت HBase است و وقتی صحبت از پرس و جوهای تحلیلی به میان می آید تقریباً به سرعت Parquet است.

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

در Kudu داده ها به صورت جدولی با شمای مشخصی ذخیره می شوند. در واقع مدل داده‌ در Kudu، مدل رابطه‌ای است. این فناوری به کاربران اجازه می‌دهد تا داده‌ها را به همان روشی که در یک پایگاه داده رابطه‌ای دستکاری می ­کنند مانند درج، به‌روزرسانی و حذف داده ها، عمل کنند. علاوه­ بر این جستجوی سریع داده ­ها را امکان پذیر می کند به همین خاطر بیشتر برای کارهای تحلیلی مورد استفاده قرار می­ گیرد.

معماری شبکه Kudu:

  • همانند مدل‌های سنتی پایگاه داده رابطه‌ای، در Kudu نیز هر جدول از تعدادی سطر تشکیل شده است که هر سطر یک کلید دستیابی منحصر به فرد دارد. ستون ها نیز نوع داده مشخصی دارند. یک جدول با کلید اصلی به بخش هایی به نام تبلت (Tablet) تقسیم می شود.
  • هر Tablet یک بخش پیوسته از یک جدول است که برای انعطاف پذیری بیشتر بر روی چندین Tablet Server تکثیر می شود. در حقیقت واحد توزیع و بازیابی داده­ ها درTablet ،Kudu می­ باشد.
  • در معماری Kudu یکی از نسخه ها به عنوان Leader Tablet در نظر گرفته می شود. عملیات خواندن و نوشتن داده ها توسط Leader Tablet ها انجام می‌شود اما نسخه­ های دیگر فقط می‌توانند عملیات خواندن داده ها را انجام دهند.
  • هرTablet Server وظیفه ذخیره و بازیابی Tabletها را بر عهده دارد. در واقع یک Tablet Server می‌تواند چندین Tablet را ارائه کند و یک Tabletمی‌تواند توسط چندین Tablet Server ارائه شود.
  • فرآیند Master وظیفه هماهنگی بین Tablet Server ها و مباحث تحمل خطا را برعهده دارد و تمام Tablet ها، Tablet Serverها، جداول و سایر موارد را کنترل و مدیریت می ­کند.

به طور کلی برای اینکه داده ها همیشه در دسترس باشند، Kudu از الگوریتم Raft Consensus برای تکرار عملیات استفاده می کند. این الگوریتم تضمین می­ کند که هیچ داده ای به دلیل خرابی دستگاه از بین نمی رود؛ بنابراین وقتی ماشینی از کار می‌افتد، کپی‌ها در عرض چند ثانیه خود را مجدداً پیکربندی می‌کنند تا دسترسی پذیری داده ها حفظ شود.

معماری شبکه Kudu
معماری شبکه Kudu

داده ها در Kudu به­ صورت ستونی (Columnar) ذخیره می شوند. ذخیره سازی ستونی امکان رمزگذاری و فشرده سازی هر یک از ستون ها را به صورت کارآمد فراهم می کند. علاوه ­بر این عمل جستجو بر اساس مقادیر یک ستون می­ تواند با سرعت بسیار بالایی انجام شود و همچنین مدل ذخیره سازی ستونی به طور چشمگیری زمان مراجعه به دیسک را برای پرس و جوهای تحلیلی کاهش می دهد.

به طور کلی Kudu برای انجام عملیات سریع در خواندن/نوشتن، دسترسی انبوه و تصادفی ایجاد شده است و سازگاری آن با موتورهای استاندارد SQL، استفاده از آن را به همراه بقیه اکوسیستم هدوپ آسان می کند.

و در آخر...

به یاد داشته باشید که Kudu قرار نیست جایگزین فناوری هایی مانند HDFS ،HBase یا موارد دیگر شود. هر یک از اینها موارد استفاده منحصر به فرد خود را دارند. با این حال انتخاب ابزار مناسب بر اساس نیازتان بر عهده شماست.




منابع:

https://kudu.apache.org/overview.html https://databricks.com/glossary/apache-kudu https://lewisdgavin.medium.com/apache-kudu-in-5-minutes-91e9371a4f8f https://www.linkedin.com/pulse/apache-kudu-storage-big-data-analytics-part1-balaji-rajagopalan/



big datahadoopapache kuduapache sparkRelational Model
کارشناسی ارشد مهندسی نرم افزار- علاقه مند به حوزه بیگ دیتا، علم داده و هوش مصنوعی
شاید از این پست‌ها خوشتان بیاید