<

عصر هدوپ

آشنایی با Big Data و کار با Hadoop

عصر هدوپ

آشنایی با Big Data و کار با Hadoop

عصر هدوپ
بایگانی

MapReduce یک مدل برنامه نویسی پردازش داده می باشد. هدوپ می تواند برنامه هایی که با این مدل در زبانهای برنامه نویسی گوناگون نظیر Java، Ruby، Python و ++C ایجاد شده است را اجرا نماید. اما نکته مهم این است که برنامه های نوشته شده تحت MapReduce ذاتا بصورت موازی طراحی و پیاده سازی می شوند، یعنی برای تحلیل یک حجم زیاد داده می بایست آن را بین چندین ماشین تقسیم نمود.


یک مجموعه داده هواشناسی

برای مثال، می خواهیم برنامه ای بنویسیم که روی یک مجموعه داده هواشناسی پردازش انجام دهد. سیستم های هوشمند هواشناسی همواره مشغول به جمع آوری لحظه ای اطلاعات از سرتاسر دنیا هستند که این عمل باعث ایجاد حجم زیادی داده یا به اصطلاح تعداد زیادی فایل لاگ می شود، و از آنجایی که نوع داده آنها نیمه ساختار یافته و طراحی آن بصورت رکورد به کورد می باشد، برنامه های نوشته شده توسط MapReduce به خوبی از آنها استفاده می کنند. نمونه ساده شده از یک رکورد از این نوع داده در ادامه آورده شده است که برای خوانایی بیشتر، هر فیلد جدا گانه توضیح داده می شود.

۲ نظر موافقین ۲ مخالفین ۰ ۰۱ آذر ۹۳ ، ۰۹:۵۷
مهدی شهیدی صادقی

از آنجایی که هدوپ شهرت خود را به واسطه وجود قسمت های اصلی اش یعنی فایل سیستم توزیع شده (HDFS) و MapReduce بدست آورده است، باعث ایجاد الگویی در فضای محاسبات توزیع شده و پردازش داده حجیم شده است، که به واسطه آن مجموعه ای از پروژه های مرتبط به منظور هرچه کاملتر شدن هدوپ شکل گرفته است. بیشتر این پروژه توسط Apache Software Foundation حمایت می شوند. 

در ادامه برخی از آنها به اختصار توضیح داده شده اند:

Common

مجموعه ای از مولفه ها و سرویس ها برای فایل سیستم های توزیع شده و مفاهیم عمومی I/O نظیر Serialization،

(Java Remote Procedure Call (RPC می باشد.

۱ نظر موافقین ۱ مخالفین ۰ ۲۶ آبان ۹۳ ، ۱۳:۲۷
مهدی شهیدی صادقی

هدوپ در !Yahoo

برای ساخت یک موتور جستجو اینترنتی نیاز به حجم زیادی داده و تعداد زیادی ماشین به منظور پردازش آن می باشد. موتور جستجوی !Yahoo از چهار مولفه اصلی تشکیل شده است: Crawler، دانلود کردن صفحات وب از سرورهای گوناگون؛ WebMap، ساختن گراف از مسیرهای شناخته شده وب؛ Indexer، ساختن شاخص معکوس از بهترین صفحات؛ Runtime، پاسخ دادن به درخواست های کاربر.WebMap  گرافی است که از حدودا یک تریلیون یال که هر کدام بیانگر یک Web Link و یکصد میلیارد نود که هر کدام بیانگر URLهای منحصر به فرد می باشد، تشکیل شده است. ساخت و تحلیل گرافی با این وسعت مستلزم صرف وقت و هزینه بسیاری است. در اوایل 2005، زیرساخت WebMap که Dreadnaught نامیده می شد، نیاز به طراحی مجدد به منظور نگهداری نودهای بیشتر داشت. طراحی فعلی آن بدون هیچگونه تغییری از 20 نود به 600 نود با موفقیت ارتقاء پیدا کرده بود. Dreadnaught از جهات بسیاری شبیه به MapReduce می باشد، اما بسیار منعطف تر است. بنابراین، برنامه های تحت WebMap با حداقل تغییرات می توانستند از MapReduce استفاده نمایند.  

۰ نظر موافقین ۱ مخالفین ۰ ۲۵ آبان ۹۳ ، ۱۳:۳۷
مهدی شهیدی صادقی

هدوپ توسط آقای Doug Cutting اختراع شده است، ایشان پیش تر Apache Lucene را که به عنوان یک کتابخانه پرکاربرد جستجوی متن می باشد، ایجاد کرده است. اصل هدوپ به Apache Nutch ، موتور جستجوی تحت وب متن بازی که خودش قسمتی از پروژه Lucene است، برمی گردد.    

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

ساخت کامل یک موتور جستجوی وب، کار دشواری می باشد. نه تنها تولید نرم افزاری که بتواند وب سایت های متعددی را بررسی نموده و برای آنها شاخص تولید نماید مشکل است، بلکه این کار بدون همراهی یک تیم عملیاتی کارآمد امکان پذیر نمی باشد. Mike Cafarella و Doug Cutting برآورد کرده بودند سیستمی که بتواند شاخص میلیاردی تولید و نگهداری نماید در حدود نیم میلیون دلار هزینه سخت افزاری دارد و در حدود سی هزار دلار هزینه نگهداری آن بصورت ماهانه می باشد. اما با همه این مسائل، آنها معتقد بودند که کار بسیار ارزنده ای خواهد بود زیرا می تواند باعث هر چه بهتر شدن الگوریتم های موتورهای جستجو گردد.

۳ نظر موافقین ۱ مخالفین ۰ ۲۴ آبان ۹۳ ، ۱۵:۰۵
مهدی شهیدی صادقی

محاسبات شبکه ای

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

در MapReduce تمرکز بر جای دادن داده در کنار نود پردازش کننده می باشد، بنابراین از آنجایی که دسترسی محلی است، سرعت پردازش بالا خواهد بود. این ویژگی مهم را محلی سازی داده (Data Locality) می نامند. باتوجه به اینکه پهنای باند شبکه مهمترین منبع در یک دیتاسنتر است، MapReduce به گونه ای پیاده سازی شده است تا بتواند آن را از طریق مدل سازی ساختار شبکه به بهترین نحو محافظت نماید. توجه داشته باشید که این چیدمان مانع انجام تحلیل های سنگین در MapReduce نمی شود.

۲ نظر موافقین ۱ مخالفین ۰ ۰۷ آبان ۹۳ ، ۰۹:۵۹
مهدی شهیدی صادقی

روش MapReduce به یک نوع مکانیزم brute-force شباهت دارد که در آن به ازای هر درخواست کل مجموعه داده و یا حداقل قسمت قابل توجهی از آن مورد پردازش قرار می گیرد. MapReduce پردازشگری است که می تواند درخواست ها را بصورت گروهی و یا موردی بروی داده با سرعت قابل قبولی اجرا نماید. او نگاه افراد را نسبت به داده تغییر می دهد و این فرصت را فراهم می سازد تا با داده کارهای جدیدی انجام دهند.

برای مثال،Mailtrust ، برای پردازش لاگ ها از هدوپ استفاده نموده است. این شرکت تصمیم گرفته بود تا کاربران خود را در موقعیت های مختلف جغرافیایی مورد ارزیابی قرار دهد.

به نقل از Mailtrust: 

با توجه به ارزشمند بودن این نوع داده، ما یک عملیات ماهانه MapReduce ایجاد کرده ایم تا از نتایج آن به منظور تصمیم گیری در مورد اضافه کردن میل سرور های جدید در نقاط مختلف جغرافیایی استفاده نماییم.

۱ نظر موافقین ۱ مخالفین ۰ ۰۵ آبان ۹۳ ، ۱۹:۲۵
مهدی شهیدی صادقی

از آنجایی که ظرفیت ذخیره سازی هارد دیسک ها در سال های اخیر بصورت قابل توجهی افزایش یافته، اما سرعت دسترسی (مدت زمانی که به جهت خواندن داده از روی هاردیسک صرف می شود) آنها به آن اندازه رشد نکرده است. 

یک هارد دیسک معمولی سال 1990 توانایی ذخیره سازی داده تا حدود 1,370 MB با سرعت دسترسی در حدود 4.4 MB/s را داشت. بنابراین تمامی داده آن در حدود پنج دقیقه واکشی می شد. با گذشت بیست سال، هاردیسک ها در حدود یک ترا بایت داده را با سرعت دسترسی در حدود 100 MB/s نگهداری می نمایند، که در این حالت کل داده در حدود دو ساعت و نیم واکشی می شود.

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

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

۱ نظر موافقین ۱ مخالفین ۰ ۰۵ آبان ۹۳ ، ۱۵:۴۰
مهدی شهیدی صادقی

ما در عصر داده زندگی می کنیم. تخمین اینکه چه حجم داده الکترونیکی وجود دارد، کار آسانی نیست. 

برخی از منابعی که روزانه داده بسیار زیادی تولید می کنند عبارتند از:

بورس نیویورک روزانه حدود یک ترا بایت داده مربوط به معاملات جدید تولید می کند.

فیسبوک حدوداً ده میلیارد تصویر در حدود یک پتا بایت داده در خود جای داده است.

اینترنت آرکایو در حدود دو پتا بایت داده نگهداری می کند و در حال رسیدن به مرز بیست ترا بایت در ماه می باشد.

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

۰ نظر موافقین ۲ مخالفین ۰ ۰۵ آبان ۹۳ ، ۱۵:۳۵
مهدی شهیدی صادقی