خبر و ترفند روز

خبر و ترفند های روز را اینجا بخوانید!

MapReduce چگونه در یک سیستم فایل داده بزرگ کار می کند؟

مهندسان داده به تعداد زیادی مهارت نیاز دارند و دانستن در مورد MapReduce یکی از آنهاست.

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

اما MapReduce چیست و چگونه در سیستم های فایل توزیع شده کار می کند؟ در این پست متوجه خواهید شد.

MapReduce چیست؟

MapReduce یک مدل مهندسی داده است که برای برنامه‌ها یا برنامه‌هایی اعمال می‌شود که منطق داده‌های بزرگ را در خوشه‌های موازی سرورها یا گره‌ها پردازش می‌کنند. این یک منطق پردازش را در چندین گره داده توزیع می کند و نتایج را در سرویس گیرنده-سرور جمع می کند.

MapReduce تضمین می کند که پردازش سریع، کارآمد از نظر حافظه و قابل اعتماد است، صرف نظر از اندازه داده ها.

سیستم فایل Hadoop (HDFS)، Google File System (GFS)، Apache Kafka، GlusterFS و موارد دیگر نمونه‌هایی از سیستم‌های فایل کلان داده توزیع‌شده هستند که از الگوریتم MapReduce استفاده می‌کنند.

سیستم فایل توزیع شده چیست؟

شبکه ای از سرورهای داده متصل

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

یک سیستم فایل توزیع شده معمولاً شامل سرور اصلی (که در Hadoop NameNode نیز نامیده می‌شود)، خوشه‌های موازی و چندین گره یا سرور حاوی تکه‌های داده تکرار شده، همگی در یک مرکز داده است. با این حال، هر خوشه در سیستم فایل توزیع شده صدها تا هزاران گره را در خود جای می دهد.

سرور اصلی به طور خودکار تغییرات درون خوشه ها را تشخیص می دهد. بنابراین می تواند نقش هایی را بر اساس آن به هر گره اختصاص دهد.

مطلب مرتبط:   آیا باید Solidity یا Vyper را برای توسعه اتریوم انتخاب کنید؟

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

مطالب مرتبط: مراکز داده چیست و چرا مهم هستند؟

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

MapReduce چگونه در سیستم های فایل توزیع شده کار می کند؟

سرورهایی با بلوک های کد نوشته شده

همانطور که قبلا ذکر شد، داده های بزرگ در چندین سرور تکه در یک DFS موجود است. یکی از راه‌های اجرای منطق قابل برنامه‌ریزی روی این فایل‌های داده، تجمیع آن‌ها در یک فایل است. سپس می توانید آنها را به یک سرور واحد بکشید، که اکنون منطق را کنترل می کند.

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

مطالب مرتبط:چگونه از چندین جداول پایگاه داده به صورت همزمان با SQL Joins درخواست کنیم

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

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

مطلب مرتبط:   cheat.sh به شما امکان دسترسی به بهترین برگه های تقلب لینوکس و برنامه نویسی را می دهد

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

در نتیجه، چندین سرور به طور همزمان منطق را روی بیت های داده مدیریت می کنند. این توزیع نیروی کار در بین سرورها منجر به عملکرد بهینه و امنیت بالاتر، در میان سایر موارد مثبت می شود.

نتیجه MapReduce چگونه در یک DFS پردازش می شود؟

در اینجا نحوه عملکرد کل پردازش MapReduce در یک DFS آمده است:

  • سرور اولیه یک پرس و جو داده بزرگ (تابع MapReduce) از مشتری دریافت می کند.
  • سپس این را به هر خوشه می فرستد تا در هر گره درون آن پخش شود.
  • هر گره تابع MapReduce را پردازش می کند و نتیجه خود را جمع می کند.
  • سرور دیگری نتایج را از هر گره جمع آوری می کند و آنها را به سرور اصلی می فرستد.
  • سپس سرور اصلی نتیجه را به عنوان یک پاسخ برای مشتری ارسال می کند.

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

نقشه و کاهش در MapReduce دقیقاً چیست؟

MapReduce از دو منطق برنامه نویسی برای پردازش داده های بزرگ در یک سیستم مدیریت فایل توزیع شده (DFS) استفاده می کند. اینها یک نقشه هستند و عملکرد را کاهش می دهند.

مطلب مرتبط:   نحوه پیاده سازی مفاهیم برنامه نویسی شی گرا در Go

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

چه اتفاقی می افتد وقتی یک سرور تیکه ای از کار می افتد؟

سرورهای درون یک سیستم فایل توزیع شده (DFS) ممکن است گاهی اوقات دچار خرابی شوند. ممکن است فکر کنید که این کار کل سیستم را خراب می کند، اما اینطور نیست.

سیستمی در محاسبات وجود دارد که از چنین خرابی قریب‌الوقوعی جلوگیری می‌کند. به آن تحمل خطا می گویند.

مطالب مرتبط: رایانش ابری چیست؟ فناوری ابری چگونه کار می کند؟

از این رو، حتی زمانی که یک سرور در حین پردازش داده خاموش می شود، تحمل خطا تضمین می کند که سرور اصلی آن را فورا تشخیص می دهد. و از آنجایی که یک کپی از تکه های داده در سراسر گره ها وجود دارد، سرور اصلی فوراً کار پردازش را به سرور دیگری منتقل می کند. به این ترتیب، خرابی سرور در DFS بر پردازش داده ها تأثیر نمی گذارد.

MapReduce پردازش کلان داده را آسان می کند

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

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