هادوپ

از ویکی‌پدیا، دانشنامهٔ آزاد
پرش به: ناوبری، جستجو
آپاچی هادوپ
Hadoop logo.svg
توسعه‌دهنده(ها) بنیاد نرم‌افزار آپاچی
انتشار پایدار ۲٫۴ / ۰۷ آوریل ۲۰۱۴؛ ۲۰۶ روز پیش[۱]
وضعیت توسعه فعال
نوشته‌شده به جاوا
سیستم‌عامل چندسکویی
گونه سامانه توزیع‌شده پرونده
پروانه اجازه‌نامه آپاچی نگارش دوم
وب‌گاه http://hadoop.apache.org/


آپاچی هادوپ یک چارچوب نرم‌افزاری است که از استفاده از داده‌ها برای برنامه‌های توزیع‌شده تحت نرم‌افزار آزاد حمایت می‌نماید.[۲] این سامانه قابلیت کار با هزاران گره و چندین پتابایت داده را داراست. هادوپ با الهام از نگاشت‌کاهش و مقالات مربوط به سامانهٔ پروندهٔ گوگل (به انگلیسی: Google File System) شرکت گوگل طراحی و پیاده‌سازی شده‌است.

هادوپ یک پروژهٔ سطح بالای آپاچی است که توسط گسترهٔ وسیعی از مشارکت‌کنندگان[۳] حمایت و استفاده می‌شود و از زبان برنامه‌سازی جاوا استفاده می‌نماید. شرکت یاهو به عنوان بزرگترین مشارکت‌کننده،[۴] از هادوپ به صورت گسترده در امور تجاری‌اش استفاده می‌کند.[۵]

هادوپ در ابتدا به‌عنوان یک زیرپروژهٔ موتورجستجویِ ناچ توسط داگ کاتینگ[۶] خلق شد.[۷]

معماری[ویرایش]

هادوپ، مشترکات هادوپ را شامل می‌شود که امکان دسترسی به سامانهٔ پرونده را، که توسط هادوپ پشتیبانی می‌شود، فراهم می‌آورد. بسته مشترکات هادوپ شامل فایل‌های جار (فایل اجرایی تولید شده توسط مترجم جاوا) و نیز اسکریپت‌هایی است که برای راه‌اندازی هادوپ لازم هستند. این بسته همچنین شامل کد منبع، مستندات و بخشی برای همکاری با پروژه‌های جامعهٔ هادوپ است.
خصوصیت کلیدی برای زمان‌بندی مؤثر کار، آن است که هر پروندهٔ سیستمی باید مکان خود را اعلان نماید: نام رَک (به صورت دقیقتر سویچ شبکه) همان جایی که گرهٔ کارگر قرار دارد. برنامهٔ کاربردی هادوپ از این اطلاعات برای اجرای کار بر روی گره‌هایی که داده‌ها در آنها قرار دارد (و در صورت عدم امکان روی همان رک یا سوئیچ) استفاده می‌کنند و بدین ترتیب از ترافیک در ستون فقرات شبکه (به انگلیسی: Backbone) می‌کاهند. فایل‌های سیستمی اچ‌دی‌اف‌اس از این روش برای ایجاد نسخ مختلفی از یک داده روی رک‌های متفاوت استفاده می‌نماید. هدف این است که فشار روی یک رک یا خطای سوئیچ کاهش پیدا کند تا حتی در صورت رخداد چنین حوادثی، داده کماکان قابل خواندن باشد.[۸]
یک خوشهٔ کوچک هادوپ شامل یک گرهٔ ارباب و چندین گرهٔ کارگر می‌باشد. گرهٔ ارباب از یک دنبال‌کنندهٔ کار (به انگلیسی: Jobtracker)، دنبال‌کنندهٔ وظیفه (به انگلیسی: Tasktracker)، گرهٔ نام (به انگلیسی: NameNode) و گرهٔ داده (به انگلیسی: DataNode)، و گرهٔ کارگر از یک گرهٔ داده و یک دنبال‌کنندهٔ وظیفه تشکیل شده‌اند. گره‌های کارگر همچنین می‌توانند تنها شامل داده یا تنها محاسباتی باشند. هادوپ برای اجرا نیاز به نسخهٔ JRE 1.6 یا بالاتر دارد و برای شروع و پایان استاندارد اسکریپت‌ها و ارتباط بین گره‌ها در خوشه وجود پوسته امن الزامی است.

فایل سیستم‌ها[ویرایش]

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

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

سایر فایل سیستم‌ها[ویرایش]

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

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

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

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

سایر برنامه‌های کاربردی[ویرایش]

فایل سیستمی اچ‌دی‌اف‌اس محدود به کارهای نگاشت/کاهش نمی‌شود. بلکه می‌تواند برای برنامه‌های دیگر بسیاری که در آپاچی در حال اجرا و توسعه هستند، از قبیل پایگاه دادهٔ 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 انجامید.[۲۴]

منابع[ویرایش]

  1. "Hadoop Releases". Hadoop.apache.org. Retrieved 2014-04-15. 
  2. "هادوپ چارچوبی است برای اجرایِ برنامه‌ها بر روی خوشه‌های بزرگ از سخت‌افزارها که چارچوب شفافی را برای انتقال داده‌ها و اطمینان به داده‌ها فراهم می‌آورد. هادوپ یک نمونهٔ محاسباتی به نام نگاشت/کاهش را پیاده‌سازی نموده‌است، که در آن درخواست‌ها به تعداد زیادی تکه‌های کوچک کار تقسیم شده و هرکدام روی گره‌ای از خوشه اجرا می‌شوند. به‌علاوه، هادوپ با استفاده از یک فایل سیستمی توزیع‌شده داده‌ها را روی گره‌های سرتاسر خوشه ذخیره کرده و درنتیجه پهنای باند بسیار بالایی ایجاد می‌کند. این فرایند نگاشت/کاهش و فایل سیستمی توزیع‌شده، هر دو طراحی شده‌اند تا شکست‌ها و خطاهای رخ‌داده در گره‌ها به صورت خودکار برطرف شوند." دیدکلی نسبت به هادوپ
  3. برنامه‌ها و سازمان‌هایی که از هادوپ استفاده می‌کنند
  4. اعتبارات هادوپ
  5. یاهو بزرگترین محصول هادوپ را راه‌اندازی می‌کند.
  6. خالق هادوپ به کلودرا پیوست
  7. "هادوپ محتوی سکویی‌است که سابفا بخشی از ناچ بوده که شامل سامانهٔ پروندهٔ توزیع‌شده (اچ‌دی‌اف‌اس) و پیاده‌سازی مروبوطه است" دربارهٔ هادوپ
  8. Hadoop DFS User Guide
  9. فایل سیستمی توزیع شدهٔ هادوپ: معماری و طراحی
  10. فایل سیستمی توزیع شدهٔ هادوپ: معماری و طراحی
  11. پیشرفت کارایی شروع به کار گرهٔ نامسناریوی پیش‌فرض برای ۲۰ میلیون فایل با حداکثر اندازهٔ هیپ جاوا (۱۴ گیگابایت): ۴۰ دقیقه. میزان‌کردن تنظیمات مختلف جاوا مانند سایز جوان، زباله‌جمع‌کن، سایز ابتدایی هیپ جاوا: ۱۴ دقیقه
  12. [۱]بالا بردن کارایی نگاشت/کاهش با قراردادن داده‌ها در خوشه‌های ناهمگن هادوپ آوریل ۲۰۱۰
  13. چگونه تشکیلات +۳۰ از هادوپ استفاده می‌کنند، درDBMS2
  14. یاهو بزرگترین محصول کاربردی هادوپ را راه‌اندازی می‌کند
  15. هادوپ و محاسبات توزیع شده در یاهو
  16. اپل هادوپ را در آغوش می‌گیرد!
  17. ساخته شدن یک چرخه داده یک ترابایتی در لینکد این با استفاده از هادوپ
  18. مطالعه موارد کاربرد هایو و هادوپ
  19. اچ بیس در StumbleUpon
  20. http://aws.typepad.com/aws/2008/02/taking-massive.htmlاجرای هادوپ روی آمازون ای سی ۲ و اس ۳
  21. گوتفرید، درک (۱ نوامبر 2007)ابرمحاسبات سرشکن شدهٔ جالب!نیویورک تایمز: ۴ مه ۲۰۱۰
  22. نسخهٔ بتای نگاشت/کاهش الاستیک آمازون
  23. مرکز انتشارات گوگل: گوگل و آی بی ام اعلام می‌کنند: مسابقات محاسبات کامپیوتری
  24. NFS، گوگل و آی بی ام CluE را تشکیل می‌دهند.

کتاب‌شناسی[ویرایش]

پیوند به بیرون[ویرایش]