مطلب ۲ : نگهداری داده و تحلیل
از آنجایی که ظرفیت ذخیره سازی هارد دیسک ها در سال های اخیر بصورت قابل توجهی افزایش یافته، اما سرعت دسترسی (مدت زمانی که به جهت خواندن داده از روی هاردیسک صرف می شود) آنها به آن اندازه رشد نکرده است.
یک هارد دیسک معمولی سال 1990 توانایی ذخیره سازی داده تا حدود 1,370 MB با سرعت دسترسی در حدود 4.4 MB/s را داشت. بنابراین تمامی داده آن در حدود پنج دقیقه واکشی می شد. با گذشت بیست سال، هاردیسک ها در حدود یک ترا بایت داده را با سرعت دسترسی در حدود 100 MB/s نگهداری می نمایند، که در این حالت کل داده در حدود دو ساعت و نیم واکشی می شود.
برای واکشی نمودن کل داده، این زمان بسیار زیادی می باشد که البته نوشتن همان حجم داده به مراتب زمان زیاد تری خواهد برد. یک راهکار ساده به منظور به حداقل رساندن زمان واکشی، استفاده از چند هاردیسک بصورت همزمان می باشد. برای مثال، اگر ما یک ترابایت داده را بین یک صد هاردیسک تقسیم کنیم، در کمتر از دو دقیقه می توانیم کل آن را واکشی نماییم.
تنها استفاده از یک صدم یک هاردیسک کار درستی نمی باشد. اما می توانیم به واسطه آن، یک صد مجموعه داده یک ترابایتی را به منظور دسترسی کاربران به اشتراک بگذاریم که این خود مدت زمان عملیات تحلیل را کوتاه تر خواهد کرد.
البته این راهکار جوابگوی برخی مسائل که فراتر از یک خواندن و نوشتن معمولی داده می باشد، نیز هست.
اولین مسئله، خرابی سخت افزار می باشد. هر اندازه تعداد سخت افزارها بیشتر باشد به همان اندازه درصد خرابی آنها بیشتر می شود. یک راه برای مقابله با از دست رفتن داده، تکثیر آن می باشد: بنابراین زمانی که مثلا یک هاردیسک خراب شد این امکان وجود دارد تا داده آن را از هاردیسک های دیگر فراهم نماییم.
این شبیه کاری است که RAID انجام می دهد، برای مثال، فایل سیستم توزیع شده هدوپ (HDFS)، همین مکانیزم را با کمی تفاوت پیاده سازی می کند، که در قسمت های بعدی به آن می پردازیم.
دومین مسئله، تلفیق نتایج بدست آمده از عملیات تحلیل با یگدیگر می باشد. برای مثال، ممکن است لازم باشد داده یک هاردیسک را با داده یک یا چند هاردیسک دیگر ادغام نماییم. سیستم های توزیع شده این امکان را به داده می دهند تا با منابع دیگر تلفیق شود که البته کار چندان ساده ای نمی باشد.
MapReduce مدل برنامه نویسی را ارائه می نماید که ذهن ما را از مسئله مدیریت یک یا چند هاردیسک رها می سازد و همچنین داده را بصورت مجموعه های"Key & Value" برای انجام محاسبات آماده می نماید. ما در قسمت های بعدی با جزئیات بیشتری به آن خواهیم پرداخت، اما نکته مهم برای بحث جاری این است که محاسبات دو جزء دارد، map & reduce و رابطی به منظور "عملیات تلفیق" که بین map & reduce قرار می گیرد.
اگر بخواهیم هدوپ را خیلی ساده توصیف نماییم: یک سیستم تحلیل اطلاعات با استفاده از منبع داده ای مشترک می باشد. منبع داده توسط HDFS و تحلیل توسط MapReduce فراهم می گردد. هدوپ دارای قسمت های دیگری نیز می باشد، اما این دو، اجزاء اصلی تشکیل دهنده آن هستند.
Hadoop: The Definitive Guide by Tom White
بسیار بسیار عالی. ادامه بده برادر.
با آرزوی بهترین ها برای شما؛ موفق باشید.