ارزیابی عملکرد زمان بندهای کار بر روی Hadoop YARN / Performance evaluation of job schedulers on Hadoop YARN

ارزیابی عملکرد زمان بندهای کار بر روی Hadoop YARN Performance evaluation of job schedulers on Hadoop YARN

  • نوع فایل : کتاب
  • زبان : فارسی
  • ناشر : وایلی – Wiley
  • چاپ و سال / کشور: 2016

توضیحات

چاپ شده در مجله همزمانی و محاسبات: تمرین و تجربه
رشته های مرتبط مهندسی کامپیوتر، برنامه نویسی کامپیوتر و مهندسی نرم افزار
۱- مقدمه هادوپ (۱) یک چارچوب نرم افزاری متن باز می‌باشد که توسط آپاچی برای پردازش حجم بالای مجموعه داده‌ها بر روی یک کلاستر (خوشه) شامل تعداد زیادی از دستگاه‌ها پشتیبانی می‌شود. به دلیل سهولت، مقرون به صرفگی، مقیاس پذیری و تحمل پذیری خطا،، طیف وسیعی از سازمان‌ها و شرکت‌ها نظیر گوگل، یاهو، فیسبوک و آمازون از هادوپ برای هم برای تحقیق و هم برای تولید استفاده کرده‌اند (۲). با این حال هادوپ اصلی دارای چندین محدودیت می‌باشد (۳). یک نمونه این است که تخصیص منابع مبتنی بر اسلات برای دستورات نقشه و دستورات کاهش موجب محدودیت منابع کلاستر هادوپ شده و منجر به بهره گیری کم‌تر از منابع می‌شود (۳). یک مثال دیگر این اسن که هادوپ اصلی تنها یک نوع مدل برنامه نویسی را پشتیبانی می‌کند یعنی MapReduce(4) که برای پردازش همه نوع محاسبات بزرگ مقیاس (۳-۵-۶) مناسب نیست. به منظور حل این محدودیت‌ها، انجمن متن باز نسل جدیدی از پلتفرم محاسبه هادوپ موسوم به YARN(مخفف Yet Another Resource Negotiator)(3) را معرفی کرده است. نام‌های دیگر شامل MapReduce 2.0 و MRv2 می‌باشند.YARN به برنامه‌ها و نرم افزارها امکان بهره گیری از منابع یک کلاستر را به شکلی مشترک و چند مستأجری می‌دهد. YARN بر خلاف هادوپ اصلی (یعنی همه نسخه‌های قبل از MRv2) دستورات مدیریت منابع را از مدل برنامه نویسی جدا کرده و از این روی می‌تواند نه تنها از MapReduce بلکه از سایر مدل‌های برنامه نویسی نظیر Spark [5], Storm [7], Tez [8], و REEF [9] پشتیبانی کند. به عبارت دیگر، این تفکیک امکان اجرای انواع مختلفی از نرمافزار ها را به طور موازی بر روی YARN می‌دهد. به منظور پشتیبانی از یک محیط محاسباتی مشترک،YARN دو زمان بند را برای زمان بندی منابع با نرم افزارها ارائه می‌کند. یکی زمان بند ظرفیت (زمان بند پیش فرض بر روی YARN)(10) و دیگری زمان بند عادلانه (۱۱). هر دوی آن‌ها قادر به سازمان دهی ارسال برنامه به یک سلسله مراتب صف بندی می‌باشند. با این حال، اولی مقدار حداقل منابع را برای هر صف تضمین کرده و از FIFO(که مخفف به ترتیب ورود است) برای زمان بندی نرم افزارها در صف برگ استفاده می‌کند. مورد دوم، منابع را به طور عادلانه در میان همه صف‌ها تسهیم کرده و سه سیاست از جمله FIFO، Fair و عدالت منابع غالب (DRF) (12) را برای تسهیم منابع برای همه برنامه‌های در حال اجرا در یک صف ارائه می‌کند. همه رویکردهای زمان بندی فوق الذکر تشکیل چهار مجموعه سیاست زمان بندی زیر (SPC) را داده و انعطاف پذیری بالایی را برای مدیران YARN برای دست یابی به اهدافشان نظیر تسهیم منابع عادلانه و بهره گیری بالا از منابع در اختیار می‌گذارد. ۱- Cap-FIFO که زمان بند ظرفیت با سیاست زمان بندی FIFO است ۲- Fair-FIFO که زمان بند عادلانه با سیاست زمان بندی FIFO است ۳- Fair-Fair که زمان بند عادلانه با سیاست زمان بندی عادلانه است ۴- Fair-DRF که زمان بند عادلانه با سیاست زمان بندی DRF است اگرچه YARN از چهار SPC و انواع متنوعی از برنامه‌ها پشتیبانی می‌کند با این حال هنوز مشخص نیست که این SPC ها وقتی که به طور جداگانه برای زمان بندی نرم افزارهای ترکیبی استفاده می‌شوند، چگونه کار می‌کنند. به علاوه، عملکرد آن‌ها زمانی نامشخص است که ساختارهای مختلف صف بندی استفاده می‌شود. از این روی، در این مقاله، ما به بررسی چهار SPC و همه مدل‌های برنامه نویسی پشتیبانی شده توسط YARN پرداخته همه برنامه‌ها را به چندین نوع طبقه بندی می‌کنیم. با این همه، ما آزمایشات گسترده‌ای را برای ارزیابی و مقایسه اثرات عملکرد چهار SPC بر روی متریک‌های متنوع با در نظر گرفتن نه تنها بارکار متشکل از انواع برنامه‌های مختلف، بلکه متشکل از سه سناریوی زیر انجام دادیم. هدف این مطالعه، بررسی این است که آیا ساختارهای صف بندی بر عملکرد چهار SPC تأثیر دارند یا خیر. ۱- سناریوی تک صف: در این سناریو تنها یک صف در کلاستر YARN ما وجود دارد. از این روی همه نرم افزارها بایستی قبل از اجرا در این صف منتظر بمانند ۲- سناریوی صف مجزا: در این سناریو، هر نوع از برنامه‌ها به طور جداگانه در یک صف مجزا قرارمی گیرند. ۳- سناریوی صف ادغام شده: در این سناریوف دو نوع صف وجود دارند: یکی برای برنامه‌هایی که در نهایت توسط خودشان متوقف می‌شود. صف دیگر برای بقیه برنامه‌هاست. نتایج آزمایش نشان می‌دهد که ۱- همه SPC ها از مسئله تقسیم منابع که در ادامه توضیح داده شده است رنج می‌برند. این مسئله موجب می‌شود تا هیچ یک از SPC ها نتوانند به طور موفق، بارکار متشکل از برنامه‌های ترکیبی را کامل کنند ۲- هیچ یک از چهار SPC معمولاً، بهترین عملکرد اجرایی برنامه در همه سناریوها نبوده است و ۳- در میان سه سناریو، استفاده از سناریوی صف ادغام شده، مناسب‌ترین سناریو برای همه SPC ها می‌باشد زیرا آن‌ها می‌توانند به نرخ تکمیل بارکار بالاتر و زمان بارکار کوتاه‌تر از دو سناریوی دیگر برسند. این مقاله دو اهمیت اصلی را دارد. ۱- این مقاله یک مرور جامعی را بر روی زمان بندهای فعلی،SPC ها، مدل‌های برنامه نویسی و انواع برنامه‌های پشتیبانی شده توسط YARN دارد ۲- ما به طور گسترده اقدام به ارزیابی و مقایسه چهار SPC با در نظر گرفتن نه تنها انواع برنامه‌های ترکیبی، بلکه سناریوهای متنوع ساختار صف می‌کنیم و ۳- بر اساس نتایج ازمایشی، مدیران YARN می‌توانند یک ساختار صف و SPC مناسب را برای دست یابی به عملکرد برنامه بهتر برای کلاسترهای YARN انتخاب کنند. ادامه این مقاله به صورت زیر سازمان دهی شده است: بخش دوم به توصیف کارهای مرتبط می‌پردازد. بخش سوم به بررسی منشأ YARN خواهد پرداخت. بخش چهارم دو زمان بند پشتیبانی شده توسط YARN و چهار SPC مشتق شده از دو زمان بند را معرفی می‌کند. بخش پنجم مدل‌های برنامه نویسی پشتیبانی شده توسط YARN و برنامه‌هایی که هر مدل برنامه نویسی می‌تواند بیان و پردازش کند را توصیف می‌کند. در بخش ششم، آزمایشات گسترده‌ای انجام شده و نتایج آزمایش بحث می‌شوند. بخش هفتم بخش نتیجه گیری این مقاله بوده و کارهای آینده ما را شامل می‌شود.

Description

۱٫ INTRODUCTION Hadoop [1] is an open-source software framework supported by Apache to process high volume of datasets on a cluster comprising a large number of commodity machines. Because of its simplicity, cost efficiency, scalability, and fault tolerance, a wide variety of organizations and companies, such as Google, Yahoo!, Facebook, and Amazon, have used Hadoop for both research and production [2]. However, the original Hadoop has several limitations [3]. One example is that the slot-based resource allocation for map tasks and reduce tasks bottlenecks the resource of an entire Hadoop cluster and results in low resource utilization [3]. Another example is that the original Hadoop supports only one type of programming model, i.e., MapReduce [4], which is not suitable for processing all kinds of large-scale computations [3, 5, 6]. To solve these limitations, the open-source community introduced the next generation of Hadoop’s compute platform called YARN (which is short for Yet Another Resource Negotiator) [3]. Other names are MapReduce 2.0 and MRv2. YARN allows individual applications to utilize the resources of a cluster in a shared and multi-tenant manner. Different from the original Hadoop (i.e., all versions before MRv2), YARN separates resource management functions from the programming model, and therefore can support not only MapReduce but also other programming models, including Spark [5], Storm [7], Tez [8], and REEF [9]. In other words, this separation enables various types of applications to execute on YARN in parallel. To enable a shared compute environment, YARN provides two schedulers to schedule resources to applications. One is the capacity scheduler (the default scheduler on YARN) [10], and the other is the fair scheduler [11]. Both of them can organize application submissions into a queue hierarchy. However, the former guarantees a minimum amount of resources for each queue and uses FIFO (which stands for first-in first-out) to schedule applications within a leaf queue. The latter fairly shares resources among all queues and offers three policies, including FIFO, Fair, and Dominant Resource Fairness (DRF for short) [12], to share resources for all running applications within a queue. All of the aforementioned scheduling approaches form the following four scheduling-policy combinations (SPCs for short) and provide great flexibility for YARN managers to achieve their goals, such as fair resource sharing and high resource utilization. 1. Cap-FIFO, which is the capacity scheduler with the FIFO scheduling policy. 2. Fair-FIFO, which is the fair scheduler with the FIFO scheduling policy. 3. Fair-Fair, which is the fair scheduler with the fair scheduling policy. 4. Fair-DRF, which is the fair scheduler with the DRF scheduling policy. Although YARN supports the four SPCs and diverse application types, it is unclear how these SPCs perform when they are individually used to schedule mixed applications. Besides, their performances are also unknown when different queue structures are utilized. Hence, in this paper, we survey the four SPCs and all programming models supported by YARN, and then classify all applications into several types. After that, we conduct extensive experiments to evaluate and compare the performance impacts of the four SPCs on diverse metrics by considering not only a workload consisting of mixed application types, but also the following three scenarios. The purpose is to study whether queue structures influence the performances of the four SPCs or not. 1. One-queue scenario: In this scenario, there is only one queue in our YARN cluster. Hence, all application submissions must wait in this queue before they are executed. 2. Separated-queue scenario: In this scenario, each type of applications is individually put into a separate queue. 3. Merged-queue scenario: In this scenario, there are two queues. One is for applications that will eventually stop by themselves. The other queue is for the rest of the applications. The experimental results show that (1) all SPCs suffer from a resource fragmentation problem, which will be explained later. This problem causes that none of the SPCs could successfully complete a workload consisting of mixed applications; (2) none of the four SPCs always has the best application execution performance in all scenarios; and (3) among the three scenarios, employing the mergedqueue scenario is the most appropriate for all SPCs since they can achieve a higher workload completion rate and a shorter workload turnaround time than they are in the other two scenarios. The contributions of this paper are as follows. (1) This paper provides a comprehensive survey on current schedulers, SPCs, programming models, and application types supported by YARN; (2) We extensively evaluate and compare the four SPCs by considering not only mixed application types, but also diverse queue-structure scenarios; and (3) Based on our experimental results, YARN managers can choose an appropriate SPC and queue structure to achieve a better application performance for their YARN clusters. The rest of this paper is organized as follows. Section 2 describes the related work. Section 3 surveys the origin of YARN. Section 4 introduces the two schedulers supported by YARN and the four SPCs derived from the two schedulers. Section 5 describes the programming models supported by YARN and applications that each programming model can best express and process. In section 6, extensive experiments are conducted and experimental results are discussed. Section 7 concludes this paper and outlines our future work.
اگر شما نسبت به این اثر یا عنوان محق هستید، لطفا از طریق "بخش تماس با ما" با ما تماس بگیرید و برای اطلاعات بیشتر، صفحه قوانین و مقررات را مطالعه نمایید.

دیدگاه کاربران


لطفا در این قسمت فقط نظر شخصی در مورد این عنوان را وارد نمایید و در صورتیکه مشکلی با دانلود یا استفاده از این فایل دارید در صفحه کاربری تیکت ثبت کنید.

بارگزاری