بخشی از مقاله
چکیده
پیشرفت در فنآوری شبکههای رایانهای و منابع محاسباتی در مقیاس بزرگ منجر به ایجاد خوشههای محاسباتی1 و منابع ابری شده است که میتوانند حجم زیادی از اطلاعات را در خود ذخیره و پردازش کنند. سیستم هادوپ ، اجرا و تسهیم بسیاری از وظایف در یک مرکز داده مشترک را فراهم میکند. پردازش دادهها در قالب کارهایی که به صورت دستهای یا برخط به سیستم ارایه می شوند - ب سته به نوع پردازش و داده - از چند دقیقه تا چندین ساعت طول میک شد. هادوپ2 با فرض این مهم که تمام منابع پرداز شی یک سان و وظایف دادههای محلی دارند، سیا ست خا صی در مورد انتخاب گره اعمال نمیکند. در صورتی که اگر گرهها نا همگن باشند، متوسط زمان اجرا از یک گره به گره دیگر متفاوت خواهد شد؛ به ویژه وقتی که داده محلی نباشد. در این تحقیق سعی شده ا ست، تا هنگام تق سیم فایل ورودی به بلاکهای دادهای یک سان تو سط هادوپ، بلاکها برا ساس میانگین وزنی گرهها، توزیع شود. و همچنین با د سته بندی گرهها و انتقال یک رونو شت به هر یک از این د ستهها علاوه بر متو سط زمان اجرا و محلی بودن، قابلیت اعتماد و توازن فضای خالی ذخیرهسازی خوشه را در سیستم افزایش داد.
کلمات کلیدی:پردازش داده، نگاشت کاهش، خوشه ناهمگن، هادوپ، جانمایی بلاک
-1 مقدمه
در سالهای اخیر رشد بسیار زیاد دادهها، ذخیره، تجزیه و تحلیل، ا ستخراج اطلاعات معنیدار از آن را به یک چالش تبدیل کرده ا ست. با در نظر گرفتن این مهم که مقدار داده تولید و ذخیره شده توسط شرکتهای اینترنتی، شرکتها و دولتها رو به افزایش است، و با توجه به پیشبینیها در سالهای آینده، بایستی رشد افزایش آن به صورتنمایی حفظ شود.سیستمهای ذخیره سازی سنتی مانند پایگاه دادههای رابطهای و سیستمهای فایل، به اندازه کافی مقیاسپذیر برای مدیریت مجموعه داده رو به افزایش نیستند. این افزایش به نوع جدیدی از سیستمها نیاز دارد که علاوه بر این که بتواند با قابلیت اعتماد مناسب، حجم انبوهی از دادهها را روی بیش از یک خو شه ذخیره کنند، بای ستی رو شی برای تجزیه و تحلیل دادههای به صورت موازی نیز ارائه کنند.
امروزه یکی از سیستم هایی که علاقهم ندان ز یادی در دو لت ها، شرکتهای بزرگ و موسسات تحقیقاتی پیدا کرده است، هادوپ است. هادوپ؛ سی ستم متن باز و شناخته شدهای ا ست که تو سط شرکت آپاچی3 برای ذخیره سازی و پردازش دادههای بزرگ در سال 2006 م. 1385 - ش. - ارائه شد.طراح این سیستم شخصی به نام Doug Cutting، نام هادوپ را بر اساس اسم فیل عروسکی پسرش انتخاب کرد. هادوپ شامل دو بخش ا صلی ا ست: نخ ست سی ستم فایل توزیع شده به عنوان سی ستم فایل توزیع شده هادوپ، یا HDFS که با اطمینان بالا، پهنای باند زیاد و هزینه کم چندین پتا بایت - برابر با 1015 بایت - داده را در فایلهایی روی ما شینهای خو شه با بیش از هزار سرور به آ سانی مدیریت کند.
بخش دیگر، چارچوب پردازش توزیع شده به نام نگاشت کاهش - MapReduce - است، که الگوریتمهای نگاشت کاهش را به صورت موازی و توزیع شده با عملکرد بالا پردازش میکند.الهام بخش معماری HDFS ، سیستم فایل گوگل یا GFS بوده و نگا شت کاهش برا ساس مقالهای تحت عنوان »نگا شت کاهش: پردازش ساده دادهها در خو شههای بزرگ« که در سال 2004 م. تو سط آقایان جفری دین و سانجی گماوات4 از شرکت گوگل ارائه شد[1]، طراحی شده است.از آنجایی که اجرای سریع یک کار در هادوپ، متأثر از زمانبندی کارها و محلی بودن دادهها است؛ در این مقاله سعی بر آن است روشی برای محلی کردن دادهها ارائه گردد.
با این توضیح که هادوپ برای ذخیره یک فایل، آن را به بلاکهایی - پیشفرض 64 مگابایتی - تقسیم و با فاکتور تکرار سه بر روی گرههای خوشه توزیع و ذخیره میکند. آن گاه فرض میکند تمام منابع پردازشی یکسان هستند و وظایف دادههای محلی خود را دارند، به همین دلیل سیا ست خا صی در مورد انتخاب گره اعمال نمیکند . در صورتی که اگر گرهها نا همگن باشند، متوسط زمان اجرا از یک گره به گره دیگر متفاوت خواهد بود، به ویژه وقتی که داده محلی نباشد.حال در این تحقیق روشی به کار برده میشود تا بلاکهای دادهای بر اساس میانگین وزنی گرهها و نوع کارها توزیع شود؛ بدان هدف که متوسط زمان اجرا، محلی بودن و توازن بار، را در سیستم افزایش داد.
-2 تعریف BigData
ارزش داده بزرگ در توانایی ما برای استخراج بینش و تصمیم گیری بهتر نهفته است. [2]
BigData -1-2 چیست و چرا اهمیت دارد؟
-3 هادوپ
هادوپ یک چارچوب، نرمافزار متن باز، برنامه نوی سی شده بر پایه جاواا ست که برای پردازش مجموعه دادههای بزرگ، توزیع شده در محیطتوزیع شده محاسباتی توسط بنیاد نرمافزاری آپاچی طراحی شده است.
-1-3 پشته تکنولوژی هادوپ
ه سته هادوپ از دو بخش «HDFS» سی ستم فایل توزیع شده برای ذخیره مجموعه دادههای بزرگ، در خو شهای از یک کامپیوتر تا هزاران کامپیوتر، و «MapReduce» یک مدل برنامهنوی سی توزیع شده برای محاسبات توزیع شده سریع روی مقدار زیادی داده تشکیل شده است. در ورژن جدید هادوپ ، یک بخش جدید به ه سته سی ستم هادوپ به نام «YRAN» جهت مدیریت زمان بندی توزیع شده اضافه شده ا ست. فایل سی ستم «HDFS» محدود به نگا شت کاهش نمی شود و بسته به نوع استفاده از هادوپ سیستمهای دیگری در کنار هادوپ طراحی شده است که در مجموع پشته تکنولوژی هادوپ را تشکیل میدهند - شکل . - 1
از نظر لغوی «BigData» به معنای »داده بزرگ«، و اصطلاحی ا ست که به مجموعهای از دادههایی اطلاق میشود که مدیریت، کنترل و پردازش آن ها فراتر از توا نایی ابزار های نرمافزاری در یک ز مان قا بل تحمل و مورد انتظار است. در تعریفی دیگر میتوان آن را اصطلاحی نامید که رشد و در دسترس بودن داده، چه ساختارمند و چه غیرساختارمند، را توصیف میکند. به عبارت دیگر در داده بزرگ به طور عموم با دادههایی سر و کار داریم که حجم آنها بی شتر از ظرفیت نرم افزارهای مدیریت پایگاه داده موجود و یا برنامههای کاربردی سنتی پردازش داده ا ست. بنابراین، فرآیند تحلیل، فرآیندی م شکل و نیازمند نرم افزارهایی است که به صورت موازی در حال کار بر روی دهها، صدها و یا حتی هزاران سرور باشند. چالشهای مهم نیز شامل: استخراج، گزینش داده، ذخیره سازی، ج ستجو، ا شتراک، انتقال، آنالیز و ب صری سازی است.
-2-3 معماری HDSF
وقتی که حجم یک مجموعه داده از ظرفیت ذخیره سازی یک ما شین فیزیکی بی شتر با شد، لازم ا ست آن روی چندین ما شین مجزا تق سیم شود. فایل سی ستمی که ذخیره سازی روی ما شینهای یک شبکه را مدیریت میکند، سی ستم فایل توزیع شده نامیده می شود. «HDFS» سی ستم فایل توزیع شده هادوپ ا ست و برای ذخیره سازی فایلهای خیلی بزرگ بر اساس الگوی دسترسی جریانی به دادهها روی خوشهای از ما شینهای منا سب و معمولی طراحی شده ا ست. معماری HDFS براساس Master/Slave است، که در آن Master گره اصلی یا ارباب، به اسم گره نام - NameNode - و تعدادی گره Salve یا کارگر، که گره داده - DataNode - نامیده میشوند . گره نام مسئولیت نگهداری سیستم فایل و مدیریت گرههای داده را به عهده دارد. از آنجایی که اگر گره نام در حال اجرا خراب شود، تمامی فایلها و بلاکها غیرقابل دسترس میشوند و هیچ راهی برای بازیابی آنها از گرههای کارگرنمی باشد، به همین دل یل یک گره دیگر به نام گره نام ثانو یه - Secondary Namenode - وجود دارد، که مسئولیت نگهداری یک کپی از سی ستم فایل توزیع شده را به عهده دارد. شکل - 2 - معماری HDFS را نمایش می دهد.
-3-3 سیاست پیش فرض جای گذاری داده - بلاکها -
در هادوپ عملکرد برنامههای نگاشت کاهش تا حد زیادی وابسته به این است که چگونه دادهها در سیستم فایل توزیع شده هادوپ، HDFS ذخیره میشوند. در حالت پیش فرض به این شکل است که هادوپ یک مجموعه داده با حجم زیاد را به بخشهای مساوی 64 یا 128 مگابایتی تقسیم و این بخشهای را روی صدها سرور یک خوشه توسط سیستم فایل توزیع شده HDFS خود ذخیره نموده و علاوه بر آن برای بالا بردن ضریب اطمینان و در د سترس بودن دادهها، هر کدام از بخشها را روی سه ماشین ذخیره میکند. این روش ضمن آن که باعث میشود نیازی به پشتیبانگیری معمول مانند روش RAID از دادهها نباشد، میزان دسترس بودن دادهها را نیز افزایش میدهد . روش انتخاب سه ماشین برای ذخیره سه نسخه از بلاک بدین صورت است. [8-7] هنگام ذخیره اولین ن سخه بلاک HDFS برر سی میکند اگر گرهای که میخواهد فایلی را در خوشه ذخیره کند، خود عضوی از خوشه هادوپ با شد، بلاک در همان گره ذخیره می شود. در غیر این صورت گرهای از خوشه به صورت تصادفی انتخاب میشود.
•ذخیره دومین نس خه از بلاک در گرهای از رک دیگری که به صورت تصادفی خارج از رک محلی گره اول انتخاب میشود، صورت میگیرد.
•برای ذخیره سومین نسخه یک گره دیگر در رک نسخه دوم انتخاب میشود.
•در هر گره فقط یک کپی از هر بلاک باید ذخیره شود.
هادوپ یک ابزار برای متعادل کردن ف ضای خو شه و گرهها دارد که بعد از اجرای آن هنگام اضافه کردن یک گره جدید یا حذف بلاک، فضای هر گره را بر اساس فضای خالی کل خوشه متوازن میکند .[6 ,5]به گفته بسیاری از محققان این سیاست جایگذاری بلاکهای داده در شرایطی دارای کارایی، به ویژه در خوشه ناهمگن مناسب نسیت. جیونگ زی در [9] آورده است: »در یک خوشه ناهمگن که هر گره دارای یک دی سک محلی میبا شد، برای افزایش کارایی اجرای نگا شت کاهش بهتر این است فرآیند نگاشت یا کاهش توسط گره نام به گرهای واگذار شود که در آن دادهها محلی هستند. در صورتی که دادهها محلی نباشند، دادهها باید از طریق ارتباطات بین شبکهای به گره پردازش کننده انتقال یابند. انتقال حجم زیادی از دادهها باعث به وجود آمدن ازدحام و ترافیک زیاد در شبکه و پایین آمدن کارآیی سی ستم خواهد شد.
در خو شههای ناهمگن، ظرفیت پرداز شی هر گره متفاوت ا ست. یک گره با سرعت پردازشی بالا تسکهای بیشتری را روی دادههای محلی خود نسبت به همتایش که سرعت پردازش کمتری را دارد به اتمام میرساند. بعد از این که گره سریعتر دادههای محلی خود را پردازش کرد، برای پشیبانی از بار اشتراکی باید دادههای پردازش نشده گرههای کندتر را به دیسک محلی خود انتقال داده و پردازش نماید. در صورتی که حجم دادههای انتقالی به دلیل بار اشتراکی زیاد شود، بار اضافه ناشی از انتقال دادههای پردازش نشده از گرههای کندتر به گرههای سریعتر خود مشکلی برای کارآیی سیستم هادوپ به وجود میآورد.«چیاوی لی در [10] آورده است: »در معماری هادوپ، محلی بودن دادهها یکی از عوامل مهم و مؤثر بر عملکرد هادوپ است.
در یک محیط ناهمگن، دادههای مورد نیاز برای اجرای وظایف اغلب غیر محلی هستند که این بر کارایی هادوپ اثر میگذارد. در محیط پیش فرض هادوپ، گره های یک خوشه همگن ه مه دارای قابل یت پردازش و ظرفیت هارد دیسک یکسان هستند و بلوکهای داده برای تعادل بار در هادوپ به طور یکسان توزیع بین گرهها میشوند . زیرا انتقال داده از یک گره به گره دیگر غیر ضروری ا ست. اما در یک محیط ناهمگن که گرهها ظرفیت اجرا و هارد دیسک یکسان ندارد، اعمال استراتژی پیشفرض هادوپ باعث میشود، گرهای که ظرفیت اجرای بالاتری دارد وظیفه را سریعتر از گرهای که ظرفیت اجرای پایینتر دارد به اتمام رساند، و بعد از آن که دادههای محلی پردازش شدند، شروع به پردازش دادههای غیر محلی کند. از آنجا که ممکن است بلوک دادهی پردازش نشده در گرهای است با ظرفیت پردازش کمتر باشد، یک سربار اضافی برای انتقال بلوک داده از گره کند به گره سریعتر به وجود میآید؛ بنابراین عملکرد سیستم هادوپ پائین میآید.«