آشنایی با Hadoop

آشنایی با Hadoop

تاریخچه

هادوپ توسط Doug Cutting خالق Lucene (کتابخانه پرکاربرد جستجوی متن) ساخته شد. هادوپ در پروژه Nutch (موتور جستجوی بازمتن وب) ریشه دارد که خود بخشی از پروژه Lucene بود.

ساخت موتور جستجوی وب از صفر هدفی بزرگ محسوب می‌شود چرا که از یک‌سو نوشتن نرم‌افزاری که در وب‌سایت‌ها بخزد و آن‌ها را نمایه‌سازی کند کاری پیچیده است و از دیگر سو اجرای آم بدون یک تیم عملیاتی تمام‌وقت اختصاصی چالش‌برانگیز است.

Nutch در سال ۲۰۰۲ آغاز شد و به سرعت یک خزنده‌ی وب و یک سامانه جستجو برای آن ساخته شد. تیم سازنده دریافتند که معماری آن‌ها برای میلیاردها صفحه روی وب گسترش‌پذیر نیست. چاپ مقاله‌ای در سال ۲۰۰۳ به آن‌ها کمک کرد که این مساله را حل نمایند. در این سال مقاله‌ای چاپ شد  که در آن معماری سیستم‌فایل توزیع‌شده گوگل یا همان GFS توضیح داده شده بود و این نیاز آن‌ها به ذخیره‌سازی فایل‌های بسیار بزرگی که از خروجی فرآیند خزیدن در وب و نمایه‌سازی آن ساخته شده بود را حل می‌کرد. در سال۲۰۰۴ آن‌ها آغاز به پیاده‌سازی نسخه‌ای بازمتن از آن کردند و آن را سیستم‌فایل توزیع شده ناچ (NDFS) نامیدند.
سال
۲۰۰۴ گوگل مقاله‌ی دیگری چاپ کرد که در آن MapReduce را به جهانیان معرفی کرد. اوایل سال ۲۰۰۵ سازندگانNutch  نسخه‌ی پیاده‌سازی شده از MapReduce را ساخته بودند و در میانه سال همه‌ی الگوریتم‌های اصلی Nutch برای کار با MapReduce  و NDFS  تغییر یافته بودند.

نسخه‌ی پیاده‌سازی شده از MapReduce  و NDFS  در Nutch برای کاربری‌هایی فراتر از جستجو نیز کاربرد داشت بنابراین در آغاز ۲۰۰۶ آن‌ها از Nutch  جدا ومستقل شده وHadoop  نام گرفتند.
تقریباً همزمان با این کار
Doug Cutting  به یاهو پیوست که تیم و منابع اختصاصی را برای کار بر روی هادوپ فراهم کرده بود تا آن را به سیستمی برای کار در مقیاس وب تبدیل کند.
در فوریه
۲۰۰۸ یاهو اعلام کرد که نمایه جستجوی آن توسط کلاستری از هادوپ با ۱۰۰۰۰هسته ساخته می‌شود.
در ژانویه
۲۰۰۸ هادوپ یک پروژه سطح بالای بنیاد آپاچی شد که نشان دهنده موفقیت، مقبولیت و جامعه کاربری فعال آن است.
تا این زمان هادوپ توسط شرکت‌های بسیاری دیگری جز یاهو نیز بکار گرفته شده است. از آن جمله‌اند
Last.fm، فیس بوک و نیویورک تایمز.
در یک کار جالب نییورک تایمز از سرویس ابری
EC2 آمازون استفاده کرد تا ۴  ترابایت صفحه اسکن شده را به PDF مناسب برای وب تبدیل نماید پردازش با استفاده از ۱۰۰سرور کمتر از ۲۴ ساعت زمان برد.

>>>>>>>>>>>>>>( واحدهای حافظه )


در آوریل
۲۰۰۸ هادوپ رکورد جهانی را شکست و تیدیل به سریع‌ترین سیستم مرتب‌سازی یک ترابایت داده شد. با اجرا روی کلاستری با ۹۱۰ گره، هادوپ یک ترابایت را در ۲۰۹ ثانیه (کمتر از ۳/۵ دقیقه) مرتب کرد و از رکورد سال پیش که ۲۹۷ ثانیه بود گذشت.
در نوامبر گوگل اعلام کرد که پیاده‌سازی
MapReduce  یک ترابایت را در ۶۸ ثانیه مرتب کرده است. در می ۲۰۰۹ یاهو اعلام کرد که توانسته یک ترابایت را با استفاده از هادوپ در۶۲ ثاتیه مرتب نماید.
در سال
۲۰۱۰ هادوپ با اقبال عمومی روبرو شده است.

  

هدوپ چیست ؟ 

 

Hadoop  یک چارچوب متن باز برای ذخیره سازی و پردازش داده های بزرگ است که در ابتداDoug Cutting در شرکت Apache آن را ارائه داد  و نام فیل اسباب بازی فرزندش را روی آن نهاد، هدف اصلی آنها از تولید این ابزار استفاده از آن در موتور جستجوی Apache به نامNutch بود که پس از آن بسیاری از شرکت های بزرگ مانند Facebook ، Google ، Yahoo و… از آن استفاده کردند. این تکنولوژی با ترکیب و توزیع داده به ذخیره سازی آن می پردازد و به زبان جاوا پیاده سازی شده است. بسیاری از داده هایی که سیستم های امروزی با آن سر و کار دارند داده های دارای ساختار هستند مانند یک فایل اکسل ، اما Hadoop کارایی تحلیل و پردازش داده های ساختارمند و غیر ساختارمند را نیز دارد.

برای نمونه علاوه بر پردازش و ذخیره سازی ، از Hadoop برای ذخیره اطلاعات ساخت نیافته یا شبه ساخت یافته در پایگاه داده های NoSql نیز استفاده می شود.از آنجاییکه پایگاه داده های رابطه ای پس از بزرگ شدن داده ها و پخش داده ها روی سرورهای مختلف کارایی بالای خود رو از دست می دهند حرکت به سوی پایگاه داده های NoSql آغاز شد و امروز Hadoop بستری برای NoSql می باشد.

   Hadoop DFS

   در شکل مولفه های سیستم فایل توزیع شده ی Hadoop نشان داده شده است. Hadoopبرای ذخیره سازی اطلاعات آنها را به تکه های کوچکتر تقسیم می کند و هر تکه را روی یک نود ذخیره کرده و آدرس آن را نگه داری می کند. اندازه ی بلاک ها یا همان تکه ها  بطور پیش فرض 64 مگابایت می باشد ولی قابل افزایش است، همچنین به طور پیش فرض هر بلاک روی سه ماشین ذخیره می شود که این عمل باعث افزایش کارایی پردازش ها و ذخیره مطمئن داده ها می شود[1]. در این بخش نود های سرور به دو نوع (Master and Slave) تقسیم می شوند که نود های Master وظیفه ی کنترل نودهای دیگر را بر عهده دارد و با نام NameNodeمشخص شده اند ، گاهی در یک سیستم دو NameNode خواهیم داشت که آنها داده ها را برای نودهای دیگر ارسال می کنند تا نودهای جانبی داده ها را ذخیره کنند. از وظایف دیگر آنها می توان به موارد زیر اشاره کرد :
1-    ذخیره و مدیریت داده های مربوط به
FS
2-    دریافت محل بلوکها از
DataNode ها
3-    نگهداری شماره و محل بلاکهایی که تشکیل یک فایل را می دهند
4-    مدیریت و ارسال مجدد بلاکهای گم شده
5-    کنترل نوع دسترسی(خواندن و نوشتن) به فایلها
نودهای
Slave با نام DataNode مشخص می شوند و تعداد آنها بیش از یک مورد خواهد بود و گاهی اوقات با توجه به توان و کارایی  سیستم به صدها و هزاران نود می رسد.وظیفه ی نود های Slave که در واقع همان  سرور های جانبی هستند  ذخیره سازی اطلاعات روی هارد دیسک خود می باشد.علاوه بر این آنها باید در مورد بلاکهایی که

در اختیار دارند به NameNode ها اطلاع دهند و به درخواست های خواندن و نوشتن روی داده ها پاسخ دهند.

 یکی از مکانیزم های دیگری که در HDFS برای افزایش تحمل خطا وجود دارد رونوشت داده ها  می باشد ، بطوریکه هر بلاک داده روی چندین سرور ذخیره می شود و اگر بلاکی گم شد یا سرور دچار مشکل شد امکان بازیابی آن وجود داشته باشد. با اعمال Data Replication  علاوه بر افزایش تحمل خطا و خرابی در سیستم ، نیازی به استفاده از تکنولوژی RAID نمی باشد و در استفاده از فضای دیسک صرفه جویی می شود.


MapReduce

نگاشت – کاهش یک مدل برنامه نویسی موازی جهت پردازش داده های موجود روی کلاسترها می باشد که از دو مرحله ی نگاشت و کاهش جهت پردازش داده ها تشکیل شده است.از استفاده های آن می توان به موارد زیر اشاره کرد :
ü    گوگل    : ایندکس کردن صفحات برای SE ، تحلیل ترجمه گوگل و…
ü    یاهو: جستجوی نقشه یاهو ، شناسایی هرزنامه ها
ü    فیسبوک: داده کاوی ، بهینه سازی تبلیغات و شناسایی هرزنامه ها

تعاریف :

1-    فاز نگاشت : نودهای Master داده ها را به بلاک هایی تقسیم می کنند و آنها را در اختیار نودهای Slave قرار می دهند، گاهی اوقات نود Slave نیز خود این کار را انجام می دهد.
2-    فاز کاهش : داده های تکه تکه شده پس از بر خوردن  در اختیار تابع کاهش قرار می گیرند و این تابع بر اساس مقدار کلید آنها داده های مربوط به یک فایل یا پردازش را با هم ترکیب می کند.

 علاوه بر موارد ذکر شده در نگاشت-کاهش به هر برنامه ی کامل یک Job و به اجرای هر یک از دو فاز مذکور Task گفته می شود.بنابراین یک Job روی نود Master و Task روی نودهای Slaveاجرا می شود.
اعمال موجود در نگاشت-کاهش:
1-
Job Tracker : در این تابع عملیات از کاربران دریافت می شود، سپس وظایف Map و Reduceدر قالب تابع Task Tracker به نودهای Slave  محول می شود. زمانبندی ، برنامه ریزی و مدیریت وظایف نیز در این بخش کنترل می شود و در صورت ایجاد مشکل در انجام یک وظیفه مجددا آن را فراخوانی و اجرا می کند.
2-
Task Tracker : این تابع وظایف نگاشت و کاهش محول شده توسط Job Tracker را اجرا میکند و پس از تولید نتایج آنرا برای بخش بعدی می فرستد.

 

تحمل خطا  در نگاشت-کاهش

1-    اگر یک Task با خطا مواجه شود : آن عمل روی نود دیگر تکرار می شود، بنابراین نگاشت با مشکلی مواجه نمی شود چون وابسته به نودها نمی باشد و همچنین کاهش نیز مشکلی نخواهد داشت چرا که خروجی ها در دیسک ها هستند.
2-    اگر یک نود با خطا مواجه شود : عمل کنونی این نود و همه ی نگاشت های انجام شده توسط آن روی نود دیگری مجددا اجرا می شوند.
3-    اگر یک
Task با سرعت اجرا نشود : یک کپی از آن عمل روی نود دیگری گرفته شده و اجرا می شود ، از نتیجه ی عملی که زودتر به پایان برسد استفاده شده و دیگری kill می شود.

 

سیستم بدین صورت عمل میکند که اطلاعات دریافت شده به صورت تکه تکه (بطور پیشفرض بلاک های ۶۴ مگابایتی) در آمده و هر تکه در یک سرور جداگانه ذخیره می شود. در تصویر بالا سرور Namenode در واقع همان سرور اصلی (Master) می باشد که وظیفه ی کنترل سرور های دیگر (Slave) را به عهده دارد. بخش Map Reduce نیز بر روی سرور اصلی اجرا می شود و بخش HDFS یا همان Hadoop Distributed File System بر روی سرورهای جانبی اجرا می شود. سرورهای جانبی وظیفه ی ذخیره سازی اطلاعات را بر روی هارد دیسک های خود به عهده دارند. یعنی زمانی که کاربر درخواست فراخوانی یک فایل را صادر می کند، سرور اصلی از طریق آدرس هایی که در اختیار دارد، بلاک های مورد نظر را از سرور های مختلف فراخوانی کرده و پس از سر هم کردن و تکمیل کردن فایل، آن را به کاربر تحویل می دهد.

امّا نکته ی جالب ماجرا مربوط به Data Replication می شود. الگوریتم این برنامه طوری نوشته شده است که چندین نسخه کپی از بلاک ها بر روی دیگر سرور ها قرار می گیرد و این امر دو مزیت بزرگ دارد: اول این که شما در مقابل خطاهای سخت افزاری از قبیل سوختن هارد دیسک، اشکالات سخت افزاری سرورها و … در امان هستید و در صورتی که هر یک از سرور ها به دلایلی از شبکه خارج شوند، اطلاعات مورد نظر از روی سرور های دیگر فراخوانی می شوند. مزیت دوم این قابلیت این است که شما دیگر نیازی به استفاده از تکنولوژی RAID ندارید و می توانید از حداکثر فضای هارد دیسک های خود استفاده کنید!!

 

هدوپ برای چه اهدافی کاربرد دارد؟

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

چه کسانی از هدوپ استفاده می کنند؟

اکثر کمپانی های بزرگ دنیا از قبیل AOL،Facebook،Yahoo،IBM و ….. از این تکنولوژی استفاده می کنند. برای مثال شرکت یاهو با بیش از ۱۰۰،۰۰۰ هسته ی CPU در بیش از۴۰،۰۰۰ سرور بزرگترین مجری سیستم هدوپ در دنیا محسوب می شود. بزرگترین کلاستر (Cluster) این شرکت شامل ۴۵۰۰ سرور می باشد که هر کدام دارای ۲ پردازشگر۴ هسته ای، ۴ هارد دیسک ۱ ترابایتی و ۱۶ گیگابایت حافظه ی رم می باشند! برای مشاهده ی لیست کامل این شرکت ها به این لینک مراجعه فرمایید.

چگونه فیسبوک داده های میلیون کاربر را در کسری از ثانیه پردازش میکند؟

 

 

 

آیا می دانید فیسبوک در هر ثانیه میلیون ها عکس را ذخیره می کند و میلیونها پست و کامنت را ثبت می کند؟
آیا می دانید پردازش داده های حجیم در محیط های ابری چگونه است؟

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

فایل سیستم توزیع‌شدهٔ هادوپ

اچ‌دی‌اف‌اس (به انگلیسی: Hadoop Distributed File System) یک فایل سیستم توزیع‌شده، قابل‌گسترش و قابل‌حمل است که در جاوا نوشته شده. هر گره در یک نمونهٔ هادوپ تنها یک گرهٔ داده دارد. هر گرهٔ داده با استفاده از یک پروتکل بلاک خاص اچ‌دی‌اف‌اس بلاک‌هایی از داده را در سرتاسر شبکه در اختیار می‌گذارد. این فایل سیستمی برای برقراری ارتباط از لایهٔ مجموعه پروتکل اینترنت استفاده می‌کند و کارگزارها (به انگلیسی: client) برای گفتگو با هم از RPC استفاده می‌کنند. اچ‌دی‌اف‌اس فایل‌های بزرگ (اندازهٔ مناسب برای یک فایل ضریبی از ۶۴ مگابایت است.[۹]) را در چندین ماشین ذخیره نموده و با تکرار کردن یک داده روی هاست‌های متفاوت قابلیت اطمینان را افزایش می‌دهد؛ و به همین دلیل نیازی به ذخیره‌سازی آرایه چندگانه دیسک‌های مستقل روی هاست‌ها ندارد. به صورت پیش‌فرض، داده روی سه گره، دو بار روی رک یکسان و یک بار روی رکی متفاوت ذخیره می‌شود. همچنین گره‌های داده می‌توانند با هم برای مواردی از قبیل متوازن‌سازی داده‌ها، انتقال کپی‌ها، و بالا نگه داشتن تعداد نسخ صحبت کنند. اچ‌دی‌اف‌اس چندان تابع پازیکس نیست، زیرا اصولاً اهداف یک فایل سیستمی POSIX با اهدافی که هادوپ دنبال می‌کند، متفاوت است؛ که نتیجهٔ این امر، کارایی بالا برای گذردهی داده‌هاست و اچ‌دی‌اف‌اس نه به هدف فراهم‌کردن دسترس‌پذیری بالا، بلکه برای پاسخگویی به فایل‌های بسیار بزرگ طراحی شده‌است.[۱۰]
یک نمونهٔ فایل‌سیستمی اچ‌دی‌اف‌اس به یک سرور منحصربه‌فرد، یعنی همان گرهٔ نام احتیاج دارد که تنها نقطهٔ خطای سیستم است. به این معنی که اگر گرهٔ نام با مشکل مواجه شود، فایل‌سیستمی قابل‌استفاده نخواهد بود و هرگاه دوباره برگردد، گرهٔ نام می‌بایست تمام عملیات ثبت‌نشده را تکرار کند. این فرایند تکرار ممکن است بیش از نیم ساعت برای یک خوشهٔ بزرگ به طول انجامد.[۱۱] این فایل‌سیستمی دارای یک گرهٔ نام ثانویه‌است که بسیاری را به این تصور اشتباه می‌اندازد که زمانی که گرهٔ نام اصلی از کار بیفتد، گرهٔ نام ثانویه جای آن را خواهدگرفت. در حقیقت، گرهٔ نام ثانویه مرتباً به گرهٔ نام اصلی وصل می‌شود و تصاویری لحظه‌ای از اطلاعات دایرکتوری آن گرفته و در دایرکتوری‌های محلی یا دوردست ذخیره می‌کند. این تصاویر می‌توانند برای راه‌اندازی مجدد یک گرهٔ نام اصلی که دچار خطا شده مورد استفاده قرار گیرند، بدون این که نیاز باشد تمام عملیات فایل‌سیستمی دوباره تکرار شود.
یک مزیت استفاده از فایل‌سیستمی اچ‌دی‌اف‌اس آگاهی از داده‌ها بین دنبال‌کنندهٔ کار و دنبال‌کنندهٔ وظیفه‌است. دنبال‌کنندهٔ کار، کارهای نگاشت/کاهش دنبال‌کنندهٔ وظیفه را با آگاهی از محل داده‌ها مدیریت می‌کند. فرض کنیم گرهٔ
A شامل دادهٔ (x,y،z) و گرهٔ Bشامل دادهٔ (a,b،c) باشد. دنبال‌کنندهٔ کار به این طریق مدیریت می‌کند که گرهٔ B را مسئول انجام کارهای نگاشت/کاهش روی (a,b،c) و گرهٔ A را موظف به انجام نگاشت/کاهش‌های روی (x,y،z) می‌کند. بدین‌ترتیب، حجم ترافیک روی شبکه کاهش پیدا می‌کند و از انتقال غیرضروری داده‌ها ممانعت به عمل می‌آید؛ که تاثیر قابل‌توجهی روی بهبود زمان اتمام کارها دارد. شایان ذکر است زمانی که هادوپ روی فایل‌سیستم‌های دیگر اجرا می‌شود، این مزیت همیشه وجود ندارد.[۱۲]

سایر فایل سیستم‌ها

تا مه ۲۰۱۱، فهرست فایل‌های سیستمی مورد پشتیبانی عبارت بود از:

هادوپ می‌تواند مستقیماً با هر فایل‌سیستمی توزیع‌شده‌ای که قابلیت نصب‌شدن روی سیستم‌های عامل سازگار را داشته‌باشد، به-آسانی با استفاده از یک آدرس //:file کار کند. هرچند که این با پرداخت هزینه‌ای صورت می‌گیرد: از دست رفتن محلیت. برای کاهش‌دادن ترافیک شبکه، هادوپ باید بداند که کدام سرور به داده نزدیکتر است و این اطلاعاتی است که فایل‌سیستم خاص هادوپ می‌تواند فراهم کند.

  دنبال‌کنندهٔ کار و دنبال‌کنندهٔ وظیفه: موتور نگاشت/کاهش

(Job Tracker & Task Tracker / Reduced Map )

بعد از فایل‌های سیستمی، موتور نگاشت/کاهش قرار دارد که از یک دنبال‌کنندهٔ کار تشکیل شده که برنامه‌های کارگزار روی آن کارهای نگاشت/کاهش را ثبت می‌کنند. این دنبال‌کنندهٔ کار، کار را به گره‌های دنبال‌کنندهٔ وظیفهٔ در دسترس خوشه می‌دهد و تلاش می‌کند کار را تا حدامکان نزدیک داده نگه دارد. با یک فایل‌سیستم آگاه از رک، دنبال‌کنندهٔ وظیفه می‌داند که هر گره چه داده‌هایی را شامل می‌شود و چه ماشین‌های دیگری در نزدیکی هستند. اگر امکان این وجود نداشته باشد که کار روی همان گره‌ای که شامل داده‌است، انجام شود، اولویت به گره‌هایی داده می‌شود که روی همان رک هستند. اگر یک دنبال‌کنندهٔ وظیفه دچار خطا شود یا زمانش تمام شود، آن بخش از کار دوباره زمان‌بندی می‌گردد. دنبال‌کنندهٔ وظیفه روی هر گره، یک پردازهٔ جدای ماشین مجازی جاواتولید می‌کند تا خود دنبال‌کنندهٔ وظیفه در صورت مشکل‌دار بودن کار در حال اجرا، از خطا مصون بماند. هر چند دقیقه یک ضربان از سوی دنبال‌کنندهٔ وظیفه به دنبال‌کنندهٔ کار فرستاده می‌شود تا وضعیتش بررسی شود. وضعیت و اطلاعات این دو دنبال‌کننده به وسیلهٔ بلنداسکله نمایش داده می‌شود و از طریق یک مرورگر وب می‌توان آن را مشاهده کرد.
در نسخهٔ هادوپ
۰٫۲۰ یا پایین‌تر، اگر دنبال‌کنندهٔ کار دچار خطا می‌شد، تمام کار در حال پیشرفت از دست می‌رفت. نسخهٔ ۰٫۲۱ هادوپ تعدادی نقطهٔ بررسی به این فرایند اضافه کرد. به این صورت که دنبال‌کنندهٔ کار، کاری که تا آن لحظه انجام داده را در فایل‌سیستمی ذخیره می‌کند. زمانی که یک دنبال‌کنندهٔ کار آغاز به کار می‌کند، به دنبال هر گونه از چنین داده‌ای می‌گردد و کار را از همان جایی که قبلاً رها کرده‌بود شروع می‌نماید.

سایر برنامه‌های کاربردی

فایل سیستمی اچ‌دی‌اف‌اس محدود به کارهای نگاشت/کاهش نمی‌شود. بلکه می‌تواند برای برنامه‌های دیگر بسیاری که در آپاچی در حال اجرا و توسعه هستند، از قبیل پایگاه دادهٔ HBase، سیستم یادگیری ماشینی Mahout آپاچی، و سیستم انبارهٔ دادهٔ Hiveآپاچی مورد استفاده قرار گیرند. هادوپ در واقع می‌تواند برای هر گونه کار که بیش ازreal-time بودن، batch-oriented باشد، استفاده شود و قادر است با بخش‌هایی از داده به صورت موازی کار کند. به طور مثال در اکتبر ۲۰۰۹، برنامه‌های تجاری هادوپ عبارت بودنداز[۱۳]:

  • ثبت وقایع و تحلیل کلیک‌استریم به انواع مختلف
  • تحلیل‌های بازاریابی (به انگلیسی: Marketing Analytics)
  • یادگیری ماشینی و/یا استخراج داده‌های پیچیده
  • پردازش تصویری
  • پردازش پیام‌های XML
  • خزندگی وب (به انگلیسی: Web Crawling) و/یا پردازش متن
  • بایگانی عمومی (به انگلیسی: General Archiving) شامل داده‌های رابطه‌ای و جدولی
  •  

استفاده‌کنندگان مهم

یاهو

در ۱۹ فوریه ۲۰۰۸، شرکت یاهو چیزی را شروع کرد که ادعا می‌کرد بزرگترین محصول کاربردی هادوپ در جهان است. نقشهٔ جستجوی یاهو یک برنامهٔ هادوپ می‌باشد که بیش از ۱۰۰۰۰ خوشهٔ هستهٔ لینوکس دارد و داده‌هایی را که اکنون در هر درخواست جستجوی یاهو استفاده می‌شود، تولید می‌کند.[۱۴] در یاهو چندین خوشهٔ هادوپ وجود دارند که هرکدام یک مرکز داده را اشغال می‌کنند. هیچ فایل‌سیستمی اچ‌دی‌اف‌اس یا کار نگاشت/کاهش‌ی بین مراکز دادهٔ مختلف تقسیم نمی‌شود؛ در عوض، هر مرکز داده یک فایل‌سیستمی و بارکاری جدا دارد. در ۱۰ ژوئن ۲۰۰۹، یاهو کد منبع نسخه‌ای از هادوپ را که در محصولاتش استفاده می‌کرد، عرضه کرد.[۱۵] یاهو تمام کاری را که روی هادوپ انجام می‌دهد، به جامعهٔ متن باز (به انگلیسی: Open Source) برمی‌گرداند و همچنین برنامه‌نویسان شرکت، اشکالات را رفع کرده و آن را پیشرفت می‌دهند و این کد منبع اصلاح‌شده را منتشر می‌کنند تا سایر کاربران هم از این تلاش‌ها بهره‌مند شوند.

 سایر استفاده‌ کنندگان

هادوپ روی سرویس‌های آمازون EC2/S3

می‌توان هادوپ را روی ابر محاسباتی الاستیک آمازون (به انگلیسی: EC2) و سرویس ذخیره‌سازی سادهٔ آمازون (به انگلیسی: S3)[۲۰] اجرا کرد. به عنوان مثال نیویورک تایمز۱۰۰ نمونهٔ آمازون ای سی ۲ و یک برنامهٔ هادوپ را برای پردازش ۴ ترابایت دادهٔ تصویری خام TIFF (ذخیره‌شده در اس ۳) به ۱۱ میلیون PDF در فضای ۲۴ ساعت با هزینهٔ حدود۲۴۰ دلار (بدون پهنای باند) به کار برد.[۲۱]
هادوپ فایل سیستمی اس
۳ را پشتیبانی می‌کند و تیم هادوپ بعد از هر انتشار تصاویر ماشین ای سی ۲ را تولید می‌کنند. مشاهدات نشان داده که هادوپ روی این دو سرویس اس ۳ و ای سی ۲ کارآمد نیست، چرا که اس ۳ یک فایل سیستمی دوردست می‌باشد و در ازای اینکه تضمین شود داده‌ها در هر عملیات نوشتن از بین نمی‌روند، تاخیری به سیستم تحمیل می‌کند؛ و این، مزیت محلیت هادوپ را که کار را نزدیک به داده نگه می‌داشت، قربانی می‌کند. در دوم آوریل ۲۰۰۹، آمازون انتشار نسخهٔ بتای یک سرویس جدید به نام نگاشت/کاهش الاستیک آمازون را اعلام کرد، با شعار “یک سرویس وب که به تجار، محققان، تحلیل‌گران داده و برنامه‌نویسان امکان پردازش آسان و بهینهٔ حجم عظیمی از داده را می‌دهد.”[۲۲]

هادوپ روی گوگل و آی‌بی‌ام

آی‌بی‌ام و گوگل در سال ۲۰۰۷ در یک ابتکار برای حمایت رشته‌های دانشگاهی در برنامه‌نویسی کامپیوتر توزیع‌شده اعلام آمادگی کردند.[۲۳]
در سال
۲۰۰۸، این موسسه، بنیاد پردازش ابری آکادمیک (به انگلیسی: ACCI)، با بنیاد ملی علوم برای حمایت تحقیقات آکادمیک در شاخهٔ برنامه‌های با حجم بالای داده شریک شد. این اقدام، به ایجاد برنامهٔ Cluster Exploratory انجامید.

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

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