بایگانی

استفاده از OpenStack Sahara برای ایجاد Hadoop

همانطور که می دانید OpenStack Sahara یک ابزار خط فرمان(command-line) است که  نصب و توسعه هادوپ و اسپارک(Hadoop and Spark) را با استریم کردن فرآیند و پیگیری جزییات پیچیده آسان‌تر می سازد. OpenStack یک سیستم عامل ابری است که برای ارائه ماشین های مجازی مورد استفاده قرار می گیرد. این در حالیست که OpenStack Sahara یک جزء افزودنی یا همان Add-on است که به مدیران  شبکه اجازه می دهد اسپارک و هادوپ را بر روی ماشین های مجازی توسعه دهند. به عبارت دیگر، شما می توانید از OpenStack Sahara به عنوان نقطه مرکزی استفاده کنید که از طریق آن قادر خواهید بود معماری هادوپ و اسپارک را برای انجام تجزیه و تحلیل بزرگ داده ها ایجاد نمایید.

خود  Sahara  برای توزیع کنندگان مختلف هادوپ و اسپارک افزونه هایی دارد:

  • Vanilla:Apache Hadoop;
  • Ambari:Hortonworks Hadoop
  • Spark:Apache Spark with Cloudera HDFS
  • MapR:MapR plugin and MapR File System
  • Cloudera:Cloudera Hadoop distribution

از لحاظ فنی، شما برای اجرای اسپارک نیازی به هادوپ ندارید اما از آنجایی که اسپارک برای اختصاص فضای ذخیره سازی در یک معماری توزیع شده طراحی شده است، هادوپ برای آن ایده آل خواهد بود. علاوه بر این، اسپارک مکانیسم ذخیره سازی در خود ندارد. از لحاظ معماری، Sahara بر روی نودهای کنترلر OpenStack اجرا می شود و  کلاسترهای هادوپ نیز بر روی نودهای محاسباتی OpenStack اجرا می گردد. البته باید به خاطر داشته باشید که روش های دیگری برای توسعه هادوپ وجود دارد. به عنوان مثال شما می توانید با استفاده از کانتینرهای داکر(Docker container) اینکار را به خوبی انجام دهید یا آن را به صورت دستی بر روی ماشین مجازی یا فیزیکی نصب کنید.  ابزارهایی همچون Ansible یا Puppet اینکار را ساده تر کرده است. همچنین گزینه های متعدد و ابزارهای کمکی دیگری همچون Cloudera و MapR نیز وجود دارد. علاوه بر این، شما می توانید هادوپ را در ابر با استفاده از فروشندگان مختلف ابری اجرا کنید. با این وجود استفاده از OpenStack Sahara یک نقطه مرکزی ایجاد می کند که از طریق آن توسعه و آغاز هادوپ و اختصاص نقش هادوپ به هر کدام از ماشین های مجازی راحت تر می گردد. از آنجایی که این یک محصول متن باز است، می توانید از پشتیبانی همکاران OpenStack همچون ردهت،اوبونتو، Suse، اچ پی، SAP ، اینتل و سایر گزینه ها استفاده کنید.

آغاز به کار:

شما می توانید OpenStack را بر روی دستگاه واحد نصب کنید تا قبل از انجام هر گونه عملی آن را به خوبی بررسی نمایید. روش های مختلفی برای انجام اینکار وجود دارد. شما می توانید از Packstack برای RHEL یا  سنت او اس استفاده کنید.  همچنین شما می توانید از DevStack  برای فدورا، اوبونتو و سنت او اس استفاده کنید.  اولین مرحله برای انجام کار، آپلود VM images برای OpenStack Glance است. شما می توانید از داشبورد Horizon یا  دستورات خط فرمان برای انجام اینکار استفاده کنید. در ماشین های مجازی؛ به یک Image نیاز خواهید داشت که در آن cloud-init در دسترس است. همانطور که می دانید cloud-init توسعه ابر را ساده تر می کند.

استفاده از Sahara:

همانند سایر کامپوننت های OpenStack، شما می توانید از رابط خط فرمان(command-line) یا داشبورد Horizon برای انجام کارهای خود استفاده کنید.  استفاده از داشبورد بسیار ساده است و نیاز به دانش خاصی ندارد. در هر دو روش،  باید Sahara را نصب کنید.  این فرایند کمی زمانبر است اما OpenStack دستورالعمل ها و راهنمایی را برای انجام آن ارائه می کند که می توانید از این موارد نیز بهره مند شوید.  مراحل اولیه و اصلی برای توسعه هادوپ با پیکربندی و توسعه ماشین های مجازی آغاز می شود. البته اینکار بعد از تعیین  نقش هادوپ در هر ماشین مجازی انجام می شود. نقش هادوپ ممکن است یکی از موارد زیر باشد:

  • Namenode: جزییات فایل سیستم توزیع شده هادوپ (HDFS) را ذخیره می کند و JobTracker را اجرا می کند.
  • Datanode: بخشی از HDFS است که Job ها را اجرا می کند.
  • Secondary name node: به عنوان بک اپ name node عمل می کند تا در صورت بروز هر گونه مشکل از آن استفاده شود.
  • Oozie: زمانبند جریان کاری است.
  • Resource manager( مدیریت کننده منابع): از آپاچی، Yarn یا Mesos برای تخصیص منابعی همچون حافظه و CPU استفاده می کند.
  • Node manager: نقش هر کدام از سرورها را در سیستم هادوپ هماهنگ می کند.
  • Job history server: تب ها را در حال اجرا نگه می دهد و در صورت نیاز کار آن ها را دوباره زمانبندی می کند.

خوب حالا برای اینکه بتوانید هادوپ را با OpenStack Sahara توسعه دهید باید یک Image از ماشین مجازی آپلود نمایید. سپس تصویری را با سفری  ثبت کنید و برچسبی را به آن اضافه نمایید. زمانی که می خواهید Sahara را به Horizon اضافه کنید، این گزینه در داشبورد در دسترس خواهد بود. همانند قالب های ماشین مجازی، گروه نودها نیز قالب هایی هستند که دارای مشخصه یکسانی از  رم و CPU می باشند.  در نهایت باید قالب گروه نودها را با  قالب کلاستر ترکیب کنید. بعد از اینکه همه این مراحل را پشت سر گذاشتید، یک instance( نمونه) در Horizon ایجاد کنید. بعد از انجام این مراحل باید master و worker نودهای هادوپ را تنظیم نمایید.  حالا instance های کلاستر را آغاز کنید. از همین جا می توانید Hadoop job را نیز بسازید.

اسپارک، هادوپ و Sahara:

OpenStack Sahara برای بهبود و ارتقای هادوپ یا اسپارک ایجاد نشده است. در عوض شما می توانید این گزینه را به عنوان یک ابزار گرافیکی یا خط فرمان ببینید که کار توسعه و ساخت سیستم های هادوپ و اسپارک را ساده تر می کند. این گزینه نه تنها در نصب این سیستم ها به شما کمک می کند بلکه می تواند عملکرد هر کدام از سرورها را نیز پیگیری کنید. یکی از مشکلات بزرگی که در نصب اسپارک یا هادوپ بدون استفاده از OpenStack Sahara وجود دارد این است که باید ماشین های مجازی را به صورت دستی نصب کنید. OpenStack Sahara به شما اجازه می دهد این مراحل را پشت سر بگذارید و هادوپ و اسپارک را بر روی آن نصب کنید. همچنین این گزینه به شما اجازه می دهد نقش هر کدام از سرورها را اختصاص دهید. بعد از اینکه تمامی این کارها را انجام دادید، می توانید فرایند را به منظور بالا بردن مقیاس سیستم ها دوباره تکرار کنید. شما قادر خواهید بود ایده های خود را به صورت قالب ذخیره کنید زیرا OpenStack پیکربندی های مختلف ماشین مجازی را به عنوان قالب در خود نگه می دارد و ذخیره می کند. همچنین باید به خاطر داشته باشید که OpenStack Sahara به شما کمک می کند  سایر جزییات پیچیده را پیگیری کنید و تصمیمات مناسبی اتخاذ نمایید. به عنوان مثال اصلی که در هادوپ وجود دارد این است که سه کپی از هر کدام از داده ها گرفته می شود. Sahara در این مورد نیز به شما کمک می کند زیرا اطلاعات خوبی در مورد پیکربندی رک دیتاسنتر خواهد داشت و می تواند این داده ها را کنار یکدیگر نگه دارد.

خوب همانطور که مشاهده کردید، Sahara نصب و توسعه هادوپ و اسپارک را برای افرادی که در حال حاضر از OpenStack استفاده می کنند ساده تر می‌سازد. البته باید به خاطر داشته باشید که شما می توانید از Puppet، Ansible یا داکر استفاده کنید اما هیچ کدام از این موارد سیستم عامل‌های ابری نیستند.

استفاده از OpenStack Sahara برای ایجاد Hadoop

امتیاز دهید

در صورت نیاز به سرور و خدمات مدیریت آن با ما در تماس باشید

۰۲۱۲۸۴۲۱۱۹۳
۰۹۱۲۹۷۲۶۳۴۳
۰۹۳۶۲۱۹۶۳۴۳
@omidahmadyani
@omid_ahmadyani