تنظیمات پیکربندی حافظه YARN و MapReduce

تنظیمات پیکربندی حافظه YARN و MapReduce

نوشته شده توسط: امیرعلی میرزابیگی
تاریخ انتشار: ۲۱ آذر ۱۴۰۲
آخرین بروزرسانی: ۲۱ آذر ۱۴۰۲
زمان مطالعه: 5 دقیقه
۴.۴
(۷)

تنظیمات پیکربندی حافظه YARN و MapReduce در کلاستر Hadoop اهمیت فراوانی دارد و لازم است فرآیند کانفیگ آن، به‌درستی انجام شود. در این مقاله، ابتدا Apache Hadoop و اجرای اصلی آن را معرفی و سپس به بررسی نحوه تنظیم پیکربندی حافظه YARN و MapReduce پرداخته خواهد شد.

مهندسی داده [Data Engineering] نیک آموز

Apache Hadoop چیست؟

آپاچی هودوپ (Apache Hadoop) یک فریمورک متن باز است که برای فضای ذخیره‌سازی توزیع‌شده و پردازش مجموعه داده‌های وسیع طراحی شده است و بخشی از اکوسیستم Apache به حساب می‌‌آید. Apache Hadoop یک پلتفرم مقیاس‌پذیر، قابل اکتفا و متحمل خطا (Fault-Tolerant) برای کلان داده‌ها محسوب می‌شود.

 

Apache Hadoop چیست؟

 

اجزای اصلی Apache Hadoop

مهم‌ترین کامپوننت‌های Apache Hadoop به شرح زیر است:

HDFS) Hadoop Distributed File System)

HDFS یکی از پراهمیت‌ترین اجزای اکوسیستم Hadoop محسوب می‌شود و وظیفه آن، ذخیره‌سازی داده‌های وسیع ساختاریافته و بدون ساختار در گره‌های (Nodes) مختلف است. MetaData حاصل، در قالب فایل‌های Log نگهداری می‌شوند. در عمل، HDFS فایل‌های بزرگ را به بلوک‌های کوچک‌تر تفکیک کرده و آن‌ها را به گره‌های موجود در یک کلاستر Hadoop توزیع می‌کند. چنین مشخصه‌ای، پردازش موازی و تحمل خطا را امکان‌پذیر خواهد کرد.

MapReduce

MapReduce یک مدل برنامه‌نویسی و موتور پردازش است که برای محاسبات توزیع‌شده روی مجموعه داده‌های گسترده مورد استفاده قرار می‌گیرد. MapReduce به توسعه‌دهندگان امکان نوشتن برنامه‌هایی را می‌دهد که حجم وسیعی از داده‌ها را به‌صورت موازی (Parallel) روی کلاستر ‌Hadoop پردازش کند. این پردازش به دو فاز، Map (برای پردازش) و Reduce (برای خلاصه‌سازی) تقسیم می‌شود.

(Yet Another Resource Negotiator) YARN

YARN یک لایه مدیریت منابع برای Hadoop به حساب می‌آید و به کمک آن، چندین اپلیکیشن می‌توانند منابع را روی یک خوشه کلاستر به اشتراک بگذارند. YARN، کار نظارت (Monitoring) و زمان‌بندی (Scheduling) توابع MapReduce و مدیریت منابع را ازهم جدا می‌کند و به سایر اپلیکیشن‌های محاسبات توزیع‌شده، امکان اجرا در کنار MapReduce را می‌دهد.

Hadoop Common

Hadoop Common مواردی همچون ابزارها (Utilities)، کتابخانه‌ها (Libraries) و API هایی را دربرمی‌گیرد که سایر ماژول‌های Hadoop را پشتیبانی می‌کند. این کامپوننت، ابزارها و API هایی را شامل می‌شود که برای تسک‌های رایج، ازجمله محاسبات توزیع‌شده، امنیت و مدیریت داده‌ها، به کار می‌روند.

با این دید مقدماتی، در ادامه تنظیمات پیکربندی حافظه YARN و MapReduce و مفاهیم مربوطه پرداخته خواهد شد.

پیکربندی حافظه YARN و MapReduce چگونه است؟

YARN تمام منابع موجود در هر ماشین را به‌صورت Cluster درنظر می‌گیرد، سپس YARN با تخصیص Container ها، ظرفیت پردازش را برای هر برنامه فراهم می‌کند. Container ها، واحد اصلی ظرفیت پردازش در YARN و یک Encapsulation از عناصر (Ram ،CPU و…) هستند.

در یک کلاستر Hadoop، لازم است یک حد تعادل بین استفاده از حافظه (RAM)، هسته‌های پردازنده (CPU cores) و دیسک‌ها وجود داشته باشد تا پردازش توسط هیچ یک از این منابع کلاستر محدود نشود.

به‌عنوان یک توصیه کلی، اجازه دادن به دو Container در Disk و CPU، بهترین راه تعادل برای استفاده از کلاستر را فراهم می‌کند.

هنگام تعیین پیکربندی حافظه YARN و MapReduce برای یک Cluster Node، از منابع سخت‌افزاری موجود شروع کنید. به‌طور خاص، به مقادیر زیر در هر node توجه کنید:

  • مقدار RAM
  • CPU (CPU Cores)
  • تعداد Disk

لازم است تمام RAM موجود برای YARN و MapReduce به‌صورت رزرو شده در نظر گرفته شود. Reserved Memory RAM موردنیاز فرآیندهای سیستم و سایر فرآیندهای Hadoop مانند HBase است.

Reserved Memory = Reserved for stack memory + Reserved for HBase memory (If HBase is on the same node)

از جدول زیر برای تعیین Reserved Memory در هر Node استفاده کنید:

توصیه‌های Reserved Memory

 

توصیه‌های Reserved Memory

 

تعیین تعداد حداکثر Container های مجاز در هر node، براساس فرمول زیر است:

Containers = minimum of (2*CORES, 1.8*DISKS, (Total available RAM) / MIN_CONTAINER_SIZE)

جایی که MIN_CONTAINER_SIZE حداقل اندازه کانتینر (در RAM) است. این مقدار، به مقدار RAM available بستگی دارد.

در Node های حافظه کوچک‌تر، حداقل اندازه Container نیز باید کوچک‌تر باشد.

جدول زیر، مقادیر توصیه‌شده را نشان می‌دهد:

 

Container های مجاز در هر node

 

محاسبه نهایی برای تعیین مقدار RAM در هر Container:

RAM-per-Container = maximum of (MIN_CONTAINER_SIZE, (Total Available RAM) / Containers))

با این محاسبات، می‌توان YARN و MapReduce را تنظیم کرد:

تنظیمات مربوط به تخصیص منابع سخت حافظه (RAM) برای YARN و MapReduce براساس مشخصات سخت‌افزاری، به‌صورت زیر است:

 

محاسبه نهایی برای تعیین مقدار RAM در هر Container

 

توجه شود که پس از نصب، هر دو yarn-site.xml و mapred-site.xml در پوشه /etc/hadoop/conf قرار دارند.

مثال

کلاستر داریم شامل:

  • CPU: 12 cores
  • RAM: 48 GIB
  • Disk: 12
  • Reserved Memory = 6 GB reserved for system memory + (if HBase) 8 GB for HBase
  • Min Container size = 2 GB

اگر HBase نداریم:

# Containers = minimum of (2*12, 1.8* 12, (48-6)/2) = minimum of (24, 21.6, 21) = 21

RAM-per-Container = maximum of (2, (48-6)/21) = maximum of (2, 2) = 2

 

بدون HBase

 

اگر Hbase وجود داشته باشد:

Containers = minimum of (2*12, 1.8* 12, (48-6-8)/2) = minimum of (24, 21.6, 17) = 17

RAM-per-Container = maximum of (2, (48-6-8)/17) = maximum of (2, 2) = 2

 

با Hbase

 

مروری بر تنظیمات پیکربندی حافظه YARN و MapReduce

YARN و MapReduce دو کامپوننت پراهمیت از Apache Hadoop تلقی می‌شوند. در این مطلب، تنظیمات پیکربندی حافظه YARN و MapReduce شرح داده شد. شما می‌توانید با به‌کارگیری YARN به‌عنوان فریمورک مدیریت منابع و MapReduce به منظور پردازش مجموعه داده‌های گسترده به‌صورت موازی (در Node های مختلف)، از این اجزا به بهترین شکل بهره‌مند شوید.

چه رتبه ای می‌دهید؟

میانگین ۴.۴ / ۵. از مجموع ۷

اولین نفر باش

title sign
دانلود مقاله
تنظیمات پیکربندی حافظه YARN و MapReduce
فرمت PDF
6 صفحه
حجم 0/5 مگابایت
دانلود مقاله
title sign
معرفی نویسنده
امیرعلی میرزابیگی
مقالات
2 مقاله توسط این نویسنده
محصولات
0 دوره توسط این نویسنده
امیرعلی میرزابیگی
title sign
دیدگاه کاربران