براساس گزارش IDC، حجم دادههاي دیجیتالی که در سال 2011 تولید شدهاند، ده برابر سال 2006 بوده است: 1800 اگزابایت! و این رقم در سال 2015 به 1 زتابایت!! رسیده است. بخش اعظم این دادهها، دادههاي بیساختار و پیچیدهاي خواهند بود که برای مدیریت شدن با سیستمهاي رابطهاي سنتی اصلاً مناسب نیستند. این دادههاي بیساختار شامل هر چیزی هستند: از فایلهاي متنی، اطلاعات حسگرها، دادههاي تولیدشده توسط کاربران، پیامهاي متنی، صدا، عکس و بسیاری از موارد دیگر. حجم عظیم دادههاي پیچیده ميتواند چشماندازها و واقعیات بسیاری را بهصورت پنهان در خود داشتهباشد. در ادامه معرفی هدوپ و آشنایی با معماری آن را به طور کامل توضیح خواهیم داد
واقعیتهايي نظیر الگوهای خرید مشتریان در فروشگاههاي بزرگ، علاقهمندیهاي بازدیدکنندگان یک سایت و نمایش تبلیغاتی در زمینه علاقه آنها، امکان تشکیل یک ژن از به هم چسبیدگی مجموعهاي از نوکلئوتیدها، پیشبینی وضعیت بازار و تخمینهاي اقتصادی پیچیده و بسیاری دیگر از مفاهیم معنایی دشوار. مواجهه با دادههاي بزرگ و امکان واکاوی چنین واقعیتهايي تنها از سیستمهاي ذخیرهسازی ارزان قیمت و سیستمهاي نرمافزاری جدید برای تحلیل چنین دادههايي برميآید. این نیاز، دقیقاً زمينه تولد پروژه اپنسورسی با نام هدوپ است که شايد به یکی از مهمترین فریمورکهاي تحلیل دادههاي عظیم روی کلاسترهای ساختهشده از كامپيوترهاي نه چندان گرانقیمت تبدیلشود. هدوپ، پروژهاي است که حتی مایکروسافت را نیز به خود علاقهمند کرده و دشمن دیرین جنبش اپنسورس، که زمانی آن را «سرطان» ميدانست، نیز به شایستگی خود متقاعد كرد.
هدوپ چیست؟
در بازهاي تقریباً دو ساله، هدوپ، یک نرمافزار اپن سورس رایگان، که از روی یک اسباب بازی نامگذاریشده بود، بسیاری از سایتهاي بزرگ و معروف دنیا را تسخیرکرد. این نرمافزار هماکنون موتورهای جستوجوی بزرگ را کنترل ميکند و درباره نمایش تبلیغات در کنار نتایج جستوجو تصمیم ميگیرد، مطالبی را که در صفحه نخست یاهو نمایش داده ميشوند، تعیین ميکند یا در یافتن دوستی بسیار قدیمی در یک شبکه اجتماعی نقشی اساسی ایفا ميكند. هدوپ چنین قدرتی را از طریق ارزان سازی و سادهسازی تحلیل حجم غیرقابل تصوردادههایی که در سطح اینترنت پراکندهاند، به دست آوردهاست. با فراهمشدن امکان نگاشت اطلاعات روی هزاران كامپيوتر ارزان و خلق روشهاي آسانتر برای نوشتن پرس و جوهای تحلیلی، مهندسان از شر چالشهاي بزرگ برای واکاوی دادهها خلاص شدهاند و به سادگی، سؤالشان را ميپرسند.
به زبان ساده، هدوپ یک فریمورک کلی پردازشی است که برای اجرای پرسوجوها و دیگر عملیات تکراری روی مجموعههاي دادهاي عظیم با حجمهای ترابایت و حتی پتابایتی طراحیشده است. در این نرمافزار، دادهها در یک سیستم فایلی مخصوص و توریع یافته با نام HDFS (سرنامHadoop Distributed File System) ذخیرهسازی و بارگذاری ميشوند.
این پروژه که هم اکنون یکی از پروژههاي سطح بالای آپاچی است، بر اساس مفهوم Map Reduce و GFS معرفی شده از طرف گوگل توسعه دادهشده است. هدوپ برای نخستينبار توسط فردی با نام دوگ کاتینگ (Doug Cutting) برای پشتیبانی از توزیعشدگی در پروژه موتور جست وجوی Nutch ایجاد شد. کاتینگ نام پروژه را از روی فیل عروسکی پسرش انتخاب کرد (شكل۱).
هم اکنون، تعداد بسیار زیادی از توسعه دهندگان در رشد و توسعه آن نقش دارند و در حوزه ذخیرهسازی و مدیریت دادههاي عظیم توجه زيادي به آن شده است. هماکنون، بزرگترین شرکت سهیم در توسعه هدوپ یاهو است که به طور گستردهاي از امکانات آن در تجارت خود استفاده ميكند.
معماری
بسیاری از ابزارهای مدیریتداده در سطح سازمانهاي بزرگ، از جمله پایگاههاي داده رابطهاي سنتی، طوری طراحی شدهاند که پرس و جوهای ساده را با سرعت اجرا كنند. آنها با استفاده از تکنیکهاي پیشرفتهاي مانند نشانهگذاری دادهها، به ارزیابی قسمت کوچکی از دادههاي موجود پرداخته و عملیات پرسوجو را به اتمام ميرسانند. در نقطه مقابل، هدوپ ابزار متفاوتی است که عملیات فوق را به روش دیگری انجام میدهد. هدوپ، مسائلی را هدف گرفته که یافتن پاسخ آنها، به تحلیل كل دادههاي موجود در سیستم نياز دارد. بهعنوان مثال، در تحلیل متن یا پردازش تصاویر نیاز است تا هر رکورد اطلاعاتی خوانده شده و براساس محتوای دیگر رکوردهای مشابه تفسیر شود. هدوپ عملیات روی دادههاي بسیار بزرگ و حجیم را با مقیاسدهی افقی (Scale Out) پردازشها روی تعداد بسیار زیادی از سرورها و با استفاده از روش MapReduce (توزیع و تجمیع) به انجام ميرساند. توجه به این مفهوم در چند سال اخیر به آن دلیل است که مقیاس پذیری عمودی (Scale Up) یا استفاده از یک سرور منفرد اما بسیار قوی، بسیار پر هزینه و محدود کننده است. در اصل، در حال حاضر و آینده قابل پیش بینی ما، هیچ سرور منفرد مناسبی برای پردازش حجمهاي بسیار زیادي از دادهها در زمان قابل قبول وجود ندارد و به همین دلیل، تمام توجهها به سمت شکستن سربار عملیات پردازش روی ماشینهاي کوچکتر، ارزانتر و با قابلیت نگهداری بالاتر جلب شده است. با استفاده از این مفهوم، ميتوان با افزایش یا کاهش تعداد سرورهای فعال در یک مجموعه توانپردازشی را به میزان دلخواه کم یا زیادكرد و همچنين، از امکان جایگزینی ماشینهاي معیوب با ماشینهاي سالم نیز بهره برد. استفاده از این قابلیت، اما به قابلیت مقياسدهی افقی پردازشهاي موردنظر و امکان اجرای موازی آنها نیزبستگی دارد. با استفاده از روش توزیع و تجمیع، هدوپ یک پردازش را شکسته و پردازشهاي کوچکتر را به سرورهای مختلف ارسال ميکند تا هر کدام پردازش مربوط به خود را به اتمام برسانند. سپس، هدوپ نتایج هر کدام را دریافت کرده و در فایلهایی مينویسد که ممکن است بهعنوان ورودی به پلههاي جدیدی از توزیع و تجمیع ارسال شوند. تکنیک توزیع و تجمیع در آغاز توسط دو تن از مهندسان گوگل و برای ایندکس کردن در کاربردهای مربوط به جستوجوی وب معرفی شد و بعدها توسط بسیاری از پروژهها مورد استفاده قرارگرفت. در بحث جستوجو، تابع Map پارامترهای جستوجو پذیر هر صفحه وب را پیدا کرده و تابع Reduce این داده ها را بهعنوان ورودی دریافت کرده و تعداد بارهایی را که پارامترهای مذکور در این صفحه استفاده شدهاند، به دست ميآورد.
فرآیند توزیع و تجمیع از دو بخش اصلی تشکیل شده است: فرآیند توزیع که در طی آن، کار بین نودهای شبکه توزیع می شود و فرآیند تجمیع که نتایج هر نود به صورت چندمرحله ای، جمع آوری شده و نهایتا نتیجه اصلی را تولید می کند.
در هدوپ، مفهوم توزیع و تجمیع بهصورت Master/Slave اجرا ميشود. در این مجموعه، یک سرور Master وجود دارد که با نام Job Tracker شناخته ميشود و تعدادی سرور Slave که با نام Task Tracker مشخص ميشوند و به ازای هر نود در یک کلاستر، یکی از آنها وجود دارد. ماشین Job Tracker نقطه برقراری ارتباط کاربر و کل فریمورک است. در این سیستم، کاربر وظایف توزیع و تجمیع خود را به ماشین Job Tracker تحویل داده و این ماشین وظایف را براساس تکنیک نخستين ورودی/اولین اجرا شونده، روی صفی از وظایف منتظر اجرا قرار داده و به ماشینهاي slave ميفرستد. ماشین Job Tracker مدیریت و نحوه تخصیص عملیات توزیع و تجمیع به Task Tracker ها و همچنین مبادلات دادهاي میان آنها و میان عمليات دوگانه توزیع و تجمیع را بر عهده دارد. توجه كنيد که به دلیل عدم انجام عملیات به روز رسانی و پردازش تراکنشها، هدوپ را نمیتوان یک پایگاه داده به شمار آورد. همچنين، هدوپ از کاربردهای پایهاي مانند ایندکسکردن یا رابطهاي SQL پشتیبانی نمیکند، اما در این زمینه، چند پروژه اپنسورس برای فعالسازی این امکانات در هدوپ آغاز شده است.
توجه به این نکته ضروری است که قدرت عملیاتی هدوپ تنها در محیطهایی به ثمر مينشیند که با استفاده از تعداد بسیار زیادی از سرورها در یک سرور فارم، به جمع آوری و نگهداری از دادهها پرداختهميشود. هدوپ ميتواند پرسوجوهای دادهاي را بهصورت وظایف بزرگ پس زمینه در مجموعه سرورها اجرا کند. این قابلیت، اجازه میدهد تا کاربر قادر باشد بهجای خرید سختافزارهای گران قیمت، از مجموعهاي از سختافزارهای ارزان استفاده کند. همچنين، این روشها باعث ميشوند تا حجم عظیم دادهها که بارگذاری آنها برای پردازش الزامی است، قابل پردازش باشند زيرا با توجه به حجم آنها و محدودیتهاي امروزی، انجام چنین کارهایی با سختافزارهای منفرد غیر ممکن خواهد بود. توجه داشته باشید که قابلیت تبدیل پردازشها به پردازشهاي کوچکتر در موفقیت این روش نقشی اساسی دارد و شکست پردازشها یکی از بزرگترین چالشهاي موجود بر سر راه عملیات به شمار ميرود.
HDFS، نقطه قوت هدوپ
همانطور که در بخش قبل گفته شد، در هادوپ از یک سیستم فایلی پیشرفته توزیع شده و مقاوم در برابر خطا استفاده شده که به HDFS معروف است. این سیستمفایلی قابلیت ذخیره حجم عظیمی از دادهها را فراهم ميكند، امکان افزایش مقیاس حجم ذخیرهسازی را داشته و بدون از دست دادن دادهها، در برابر خطاها و اشکالات در تجهیزات اصلی ذخیرهسازی مقاومت میکند. سیستم فایلی HDFS، حجم ذخیرهسازی را روی کلاستر ساخته شده از كامپيوترهاي ارزان قیمت، با شکستن فایلهاي ورودی به بلوکهاي کوچکتر مدیریت کرده و هر بلوک را بهصورت تکراری روی مخزنی از سرورها ذخیره ميکند. در حالت معمول، سیستم فایلی HDFS سه نسخه کامل از هر فایل را با کپیکردن بلوکهاي مختلف روی سرورهای مختلف در مخزن خود نگهداری ميکند.
همانطور که در شكل 3 مشهود است، در صورتی که دو سرور در مجموعه سرورها دچار اختلال شوند، کل فایل مورد نظر باز هم قابل دستیابی است. در این حالت، HDFS از وجود چنین مشکلی آگاه شده و کپیهاي جدیدی از دادههاي قبلی ایجاد ميكند.
به این دلیل که کپیهاي مختلفی از بلوکها روی یک کلاستر توسط HDFS ایجاد ميشود، کلاینتهاي بیشتری ميتوانند بدون ایجاد گلوگاه به دادههاي سیستم دسترسی داشته باشند.
البته اکنون نیز، تکنیکهاي بسیاری برای تکراریسازی دادهها، به خصوص راهبردهاي استفادهشده در RAID وجود دارند. پس واقعاً به هادوپ و HDFS چه نیازی وجود دارد؟ مزیت HDFS نسبت به RAID در دو نکته خلاصه ميشود: نخست اینکه HDFS و هادوپ به سخت افزار خاصی نیاز ندارند و با استفاده از سرورهای آماده و موجود نیز قابل پیادهسازی و استفاده هستند و دوم اینکه قابلیت مقاومت در برابر خطاهای بیشتری از جمله خطاهای دیسک، نود، شبکه و رابط شبکه را دارند. با این حال، یک نکته منفی درباره استفاده از HDFS، استفاده سه برابری فضای ذخیرهسازی به دليل نگهداری سه نسخه (البته این مقدار قابل تنظیم است) از دادهها است؛ که در بسیاری از موارد و با توجه به مزایای موجود در استفاده از HDFS، امری مقرون به صرفه است.
کاربردها
بسیاری از ایدههاي موجود در پس زمینه ایجاد و توسعه پروژه هدوپ ایدههايي است که مبداء آنها به جامعه موتورهای جستوجو به خصوص گوگل و ياهو بازمیگردد. درواقع، این غولهای جستوجو بودند که برای نخستينبار، با استفاده از تعداد بسیار زیادی از سرورهای ارزان قیمت، به كنكاش روی وب پرداختند و نتایج را روی فایلهاي محلی ذخیرهکردند تا با استفاده از پرسوجوهای موازی، ایندکسهایی را برای فراهمکردن امکان جستوجو به وجود آوردند. با اینکه الگوریتمهاي جستوجوی این شرکتها، الگوریتمهاي بسیار پیشرفته و بسیار محرمانهاي هستند، اما از یک مفهوم کلی با نام توزیع و تجمیع استفادهميکنند که هم اکنون نیز برای کار با دادههاي بسیار بزرگ مورد استفاده قرار ميگیرد.
با استفاده از امکانات هدوپ ، سایتهاي بزرگ ميتوانند الگوهای کاری و گشت و گذار کاربران را برداشت کرده و مورد تحلیل قرار دهند. این دقیقاً همان کاری است که یاهو با استفاده از یک کلاستر ده هزار هستهاي لینوکس روی سيصد میلیون بازدید ماهیانه انجامميدهد تا محتوای مورد علاقه آنها و دادههاي مرتبط را واکاوی کرده و در صفحه آغازین خود نمایشدهد. نرمافزار مشابهی نیز در زمینه نمایش تبلیغات مرتبط با سليقههاي اشخاص در یاهو استفاده ميشود و هر تبلیغ مرتبط نمایشداده شده، درآمد بیشتری را عاید یاهو خواهد ساخت. در اصل یاهو سرمایهگذاری بسیاری برای توسعه نسخه اختصاصی هدوپ برای خود کرده بود و پس از دریافت نتیجه مناسب و گذشت زمانی اندک، تمام پیشرفتهاي حاصله را به جامعه اپنسورس توسعهدهنده هادوپ تقدیم کرد که هم اکنون نیز ادامه دارد.
جامعه علمی نیز با استفاده از امکانات هدوپ ميتوانند پردازشهاي علمی بسیار سنگینی مانند تحلیلهاي هواشناسی، اخترشناسی و تحلیل واکنشهاي ذرات اتمی و شکلگیریهاي پروتئینهاي زیستی را در زمانی بسیار کوتاه به انجام برسانند. همچنین تحلیلگران امنیتی ميتوانند با استفاده از این فناوری و از روی دادههايي مانند مبادلات تجاری، تماسهايکاربران و مسافرتهاي آنها، تهدیدهاي خرابکارانه و امنیتی را ردگیری و آشکار كنند. فیسبوک نیز از هدوپ برای مدیریت چهل میلیارد عکس ذخیره شده در آن استفاده ميکند. جف هامرباکر، یکی از مهندسان سابق این شبکهاجتماعی ميگوید: «این همان روشی است که این شبکه اجتماعی تشخیص ميدهد که افراد چقدر با دیگران ارتباط نزدیکی دارند.»
شرکت اتودسک نیز برنامهاي برای ایجاد یک کاتالوگ آنلاین از مدلهاي موردنیاز طراحان و سازندگان با استفاده از هادوپ دارد که هدف اصلی آن، تعیین آیتمهاي محبوب و فروش اطلاعات آنها به تولید کنندگان است. گوگل و آيبیام نیز برنامههايی اقتصادی برای آموزش هدوپ به دانشجویان در دانشگاهها در نظر گرفتهاند. موفقیت روزافزون هدوپ و همچنین اقبال شرکتهاي بزرگ و توسعه دهندگان مختلف به استفاده از آن باعث شده تا کریستوف بیس کیگلیا (از گوگل)، جف هامرباکر (از فیسبوک)، عمرو عواداله (از یاهو) و مایک اولسون (از اوراکل) به همراه یکی از مسئولان سابق اورا کل دور هم جمع شوند و یک استارتآپ با نام Cloudera را برای پشتیبانی تجاری از هادوپ تأسیس كنند. این شرکت قصد دارد تا با فراهمکردن پشتیبانی تجاری مناسب از هدوپ، در رشد و توسعه آن به خصوص در زمینههاي ژنتیک و تحلیلهاي مالی و اقتصادی نقش بهسزایی داشته باشد. اماجالبترین نکته در زمینه هدوپ، روی آوردن مایکروسافت و اوراکل به استفاده از آن و همچنین معرفی رقیبی جدی برای آن است.
در شکل چهار تعدادی از شرکتهای معروف ارائه دهنده سرویسهای تجاری هدوپ نمایش داده شده اند.
منبع: سایت BigData
گیگ بوی سایت آموزش شبکه به صورت فارسی و تصویری و دانلود نرم افزار
خیلی مطلب خوبی بود. ممنون
از به اشتراک گزاری.
خواهش میکنم