آپاچی هدوپ (Apache Hadoop) چیست؟

مدرس: مسعود کاویانی

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

فرض کنید، شما، یک وب سایت بزرگ دارید و مجموعه ای از ۱۰میلیون رکورد مختلف (مثلا رکوردهای ورود کاربران به سیستم از شهر های مختلف) را، در یک فایل متنی ذخیره می کنید. یعنی، هر کاربری که وارد سیستم شما (مثلا وب سایت شما) می شود، یک سطر جدید به این فایل متنی اضافه می شود، که حاوی اطلاعات کاربری و شهر ورود آن کاربر به سیستم است. فایل متنی میتواند به صورت زیر باشد (هر سطر، یک ورود کاربر را نمایش می دهد)

login, tehran, 200, 23:00
login, isfahan, 200, 13:32
login, tehran, 400, 13:23
login tehran, 200, 15:00
login tabriz, 200, 16:23
...

در فایل متنی بالا، اطلاعاتی مانند شهر، کد ورود صحیح یا خطا (۲۰۰ یا ۴۰۰) و تاریخ ورود ذخیره شده است.

حال، فرض کنید میخواهید از بین این ۱۰میلیون رکورد، در مدت زمانی کوتاه، تمامی کاربرانی را پیدا کنید که از شهر تهران، وارد سیستم شده اند. اگر بخواهید با استفاده از زبان ها برنامه نویسی معمولی (مانند PHP یا Python) و یا یک پایگاه داده (مانند Mysql یا SqlServer)، حتی با یک کامپیوتر بسیار سریع، احتمالاً چندین ساعت، بایستی منتظر اعلام نتیجه مورد نظر خود از سیستم باشید.

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

برای روشن تر شدن موضوع، تصویر زیر را نگاهی بیندازید:

در تصویر بالا، فایل بزرگ ما، به قسمت های کوچکی تقسیم شد (مثلا هر ۱۰۰هزار سطر، در یک گره یا همان Node (در اینجا یک سیستم کامپیوتری) ذخیره شد). هر کدام از گره ها، وظیفه پایش اطلاعات در تکه (Chunk) فایلی که به آن ها داده شده است را دارند. مثلا گره شماره ۱، وظیفه دارند، از میان ۱۰۰هزار سطری که به او داده شده است، فقط آن هایی را پیدا کند، که شامل شهر تهران است. همان طور که حدس میزنید، یک سیستم دیگر، وظیفه دارد، اطلاعات پردازش شده در هر گره را، دریافت و تجمیع کند. بعد از تجمیع اطلاعات دریافت شده از گره ها، این سیستم، پاسخ نهایی را به مقصد برمیگرداند.

با این فرآیند، ما ۱۰میلیون رکورد را به صورت قطعات ۱۰۰هزار تایی، با فرآیندی موازی (Parallel)، پردازش کردیم و اطلاعات مورد نیاز خود را به دست آوردیم.

هدوپ از مدل برنامه نویسی Map Reduce استفاده می کند. در تصویر بالا، هر گره، یک عملیات Map را انجام میدهد (همان فیلتر کردن کاربران شهر تهران)، سپس Reduce، تمامی اطلاعات موجود را از گره ها گرفته و نتیجه را (که طبیعتاً یک فایل کوچکتر است) بر میگرداند.

منابع این بحث و اطلاعات بیشتر

این صفحه از سایت techtarget

این صفحه از سایت iri

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

5 دیدگاه دربارهٔ «آپاچی هدوپ (Apache Hadoop) چیست؟»

  1. عالی، خیلی مفید بود، فقط ای کاش در مورد دنبال کننده کار و وظیفه هم به زبان ساده صحبت می کردین،

  2. سلام من تازه با سایت شما آشنا شده ام ولی در خصوص اطلاعاتی که نیاز داشتم مطالب مفید و قابل درکی آموختم.بسیار سپاسگذارم.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *