<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های مجتبی نمازی فرد</title>
        <link>https://virgool.io/feed/@m_57855235</link>
        <description></description>
        <language>fa</language>
        <pubDate>2026-06-16 19:18:34</pubDate>
        <image>
            <url>https://static.virgool.io/images/default-avatar.jpg</url>
            <title>مجتبی نمازی فرد</title>
            <link>https://virgool.io/@m_57855235</link>
        </image>

                    <item>
                <title>انبار داده (data warehouse)</title>
                <link>https://virgool.io/@m_57855235/%D8%A7%D9%86%D8%A8%D8%A7%D8%B1-%D8%AF%D8%A7%D8%AF%D9%87-data-warehouse-bcq0dxjeulkt</link>
                <description>چکیدهانبار های داده ها در حال حاضر مقادیر زیادی از داده ها را جمع آوری می کنند ، بنابراین داده های کلان به طور قابل توجهی رشد کرده و به یک مجموعه عالی از داده های بزرگ تبدیل شده اند. این مجموعه داده ها غنی و در حال رشد هستند. مدیریت موسسات برای تولید اطلاعات از سوابق داده به ابزارهایی نیاز دارد. این مقاله به بررسی چگونگی پیاده سازی فناوری داده های بزرگ با انبار داده برای پشتیبانی از فرایند پردازش می پردازد.مقدمهانباره های داده پایه گذار فن آوری لازم برای ساخت و بهره برداری از برنامه های هوشمندی هستند .برنامه هایی که اطلاعات را برای صاحبان خود جمع آوری نموده و پس از تجزیه و تحلیل با آنها به مشاوره می پردازند.بیان مسئلهمی توان تعاریف مختلفی را برای  Data warehouseداشته باشیم:1- تعریف Ralph Kimball از انباره داده : یک DW نسخه ای از داده های تراکنشی است که به صورت اختصاصی برای پرس و جو ها و گزارش گیری،سازمان دهی شده است.گرچه به این تعریف دو ایراد وارد است:که اولاً گاهی داده هایی که در یک DW ذخیره می شوند ،غیرتراکنشی هستند . اگرچه معمولاً 95 تا 99 درصد داده ها تراکنشی هستند . ثانیاً خروجی اصلی سیستم های DW ، لیست گیری های فهرست وار (queries) در حجم کم و یا گزارش های اداری در حجم زیاد هستند.2- اگر تعاریف زیر برقرار باشد:داده : حقیقت قابل مشاهده ، فایل ضبط شدهاطلاعات : مجموعه سازماندهی شده از داده ها ؛ داده های با ارتباط و هدفسیستم عملیاتی : محیطی از داده ها و برنامه های لازم برای ادامه فعالیتهای یک سازمانانبار داده ی اطلاعی :مجموعه ای از داده و برنامه ها، برای &quot;تحلیل&quot; و &quot;تصمیم گیری &quot;، جدا از سیستم عملیاتییک انباره داده(DW)  معماری جداگانه ای است برای نگهداری داده های حساس تاریخی که این داده ها از انبار داده های عملیاتی به دست آمده اند و به صورتی قابل درک برای عملیات تحلیل سازمان درآمده اند.3- یک تعریف از : W.H.INMONیک DW مجموعه ای از اطلاعات یکپارچه که دارای قابلیت آنالیز کردن و استخراج داده ها (query)میباشدبعضی از خصوصیاتData warehouse ها از این قرارند :1) یکپارچه بودن2) متغیر با زمان3) غیر فرار4) موضوع گرا (Subject-oriented)تاریخچه:بعد از رشد استفاده از  TPS (Transaction processing system)ها به عنوان سیستمهای پردازش تراکنش در بخش های عملیاتی سازمان، نیاز جدی به سیستمهای اطلاعاتی که بتوانند عملیات گزارش گیری را علی الخصوص در رده گزارشهای مدیریتی ساماندهی کنند احساس می شد. علی الخصوص بوجود آمدن تعدد فنآوریها، سیستمهایی که به صورت جدا از هم فعالیت می کرد و امکان تهیه گزارشات ترکیبی از اطلاعات سیستمهای مختلف و انجام پرس و جو ها را مشکل و یا غیر ممکن می نمود.بنابراین حرکت به سمت سیستمهای اطلاعات مدیریت (Management Information System) و بویژه سیستمهای گزارشگیری مدیریتی (MRS: Management Reporting System) آغاز شد. اما مشکل آنجا بود که این سیستمها به شدت به TPS ها وابسته بودند و داده هایشان اغلب یکی بود. این باعث می شد که تغییر یکی باعث انتشار تغییرات در همه سیستمها شود. از سوی دیگر ساختار داده ای مشابه، امکان تهیه گزارشات زمانی و موضوعی را مشکل می ساخت. این شد که مدل جدیدی از تفکر ایجاد شد به نام انباره داده ها.دلایل استفاده از DW ها :1) تهیه گزارشات (Reports) و انجام پرس و جو هایی (Query) که نیاز به عملیات ورودی/خروجی(IO) بسیاری هستند: از اهداف سیستمهای پردازش تراکنش (TPS:Transaction Processing System) آن است که گزارشات مورد نیاز بخش های عملیاتی و مدیریتی را تولید کنند. تهیه این گزارشات معمولا سخت و باحجم زیاد IO همراه است و باعث کند شدن خود سیستمها می گردد. بنابراین شرکت های تجاری به دنبال راهی هستند تا در کمترین زمان و با کمترین هزینه به سیستم هایی دست یابند که زمان پردازش تراکنش ها در آن ها قابل قبول باشد . بهترین راهکار استفاده از DW هایی بود که از منابع IO مجزایی برای گزارش گیری و انجام پرس و جو استفاده می کردند.2) استفاده از مدل های داده ای و یا تکنولوژی های سرور به منظور بالا بردن سرعت عملیات گزارش گیری و پرس و جو ها که سیستم های عادی پردازش تراکنش ها(TPS) برای آن ها مناسب نیست.3) ایجاد محیطی برای تسهیل و آسان نمودن به دست آوردن گزارش ها و پرس و جو ها و یا ایجاد وسیله ای برای سرعت بخشیدن به عملیات گزارش گیری: اغلب می توان DW ای ساخت که کاربرانی باسطح آگاهی کمتر بتوانند گزارش ها و پرس و جوهای ساده ای را تهیه کنند .4) برای ایجاد انباری از داده های تصفیه شده ی سیستم های پردازش تراکنش ها(TPS)که می توانند به طور پیوسته گزارش از آن تهیه نمود. این انبار الزاماً احتیاجی به ثابت بودن TPS ها ندارد : DW ها این امکان را به شما می دهند که داده ها را بدون تغییر دادن سیستم های پردازش تراکنش ها ،تصفیه کنند. (clean up) توجه کنید که در برخی از پیاده سازی ها ، DW ها به گونه ای هستند که در آن ها امکان یافتن اصلاحات انجام شده بر روی داده های DW و فرستادن feedback بهTPS ها برای اعلام این تغییرات ، وجود دارد. گاهی اوقات این گونه رفتار کردن با تغییرات داده ها بامعناتر از این است که تغییرات را به طور مستقیم بر روی خود TPS ها اعمال کنیم .5) برای آن که بر اساس قواعد ، گزارش گیری و پژوهش را بر روی داده هایی که از چندین TPS مختلف می آیند و یا از یک منبع داده ای خارجی می آیند، یا اینکه داده هایی هستند که تنها برای گزارش گیری و انجام تحقیقات باید ذخیره شوند ، تسهیل بخشیم:برای مدت زمان مدیدی ، شرکت هایی که نیاز به گزارش هایی بر پایه ی داده های چندین TPS مختلف ، داشتند ؛ مجبور بودند داده های هر TPS را بیرون کشیده ، سپس آن ها را مرتب نموده و در هم ادغام نمایند تا به داده ی چکیده ای برسند که مناسب گزارش گیری است .در بسیاری از موارد این روش مناسب است. اما در شرکت هایی که با حجم عظیمی از داده هایی مواجه هستند که مرتباً نیاز به مرتب سازی و ادغام دارند ؛ در صورتی که نیاز به گزارش گیری از داده های تصفیه شده ی TPS ها داشته باشیم ؛ DW ها کارایی بیشتری دارند.6) برای ایجاد مخزنی از داده های TPS ها ، که شامل داده های یک بازه ی زمانی بسیار طولانی هستند وبه همین دلیل کارایی کنترل آن ها توسط خود TPS پایین می آید . :داده های قدیمی تر غالباً از یک TPS خالی می شوند تا زمان پاسخ مورد انتظار دراین سیستم ها ، به راحتی کنترل شود . برای انجام تحقیقات و گزارش ها ممکن است داده های قدیمی و داده های جاری مورد نیاز باشند که در این موارد استفاده از DW به علت مهم نبودن زمان انتظار برای پاسخ ، موثر خواهد بود.خب Data warehouse چیست؟انباره داده یک مجموعه‌ از داده‌های موضوع‌گرا (Subject Oriented)، مجتمع(Integrated)،نگهدار زمان‌های مختلف(Timevariying) و غیر فرَار (none-volatile) است که پشتیبان فرآیندهای تصمیم سازی مدیریتی است.در این تعریف به ۴ویژگی در انبار داده اشاره شده است. اجازه بدهید تک تک این تعاریف را مورد بررسی قرار دهیم:موضوع‌گرا (Subject Oriented): به این معنا است که انبار داده‌ای که شما می‌سازید بایستی در مورد یک موضوع مشخص (یا یک سری موضوع مشخص) باشد. مثلا یک فروشگاه می‌خواهد رفتار خریداران خود را بررسی کند. پس موضوع در این‌جا رفتار خریداران است. برای همین بایستی اطلاعاتی که در مورد رفتار خریداران در نرم‌افزارهای مختلف سازمان (مثلا CRM یا سیستم حسابداری) موجود است را در یک انبار داده جمع آوری کنید.مجتمع (Integrated): این ویژگی بسیار واضح است. در واقع انبار داده به صورت تکه تکه در جاهای مختلف نیست و به صورت مجتمع در یک منبع ذخیره شده است. فرض کنید یک سیستم CRM و یک سیستم حسابداری دارید. یک خریدار در سازمان شما، با کد ملی در CRM مشخص می‌شود و همین شخص با شماره شناسنامه در سیستم حسابداری مشخص می‌شود. اما بعد از پردازش و بارگزاری داده‌ها در انبار داده، این شخص فقط بایستی با یک شماره مشخص شود (مثلا یک ID خاص) تا به اشتباه دو نفر مستقل برداشت نشود.نگهدار زمان‌های مختلف(Timevariying): به این معنا که در انبار داده، داده‌های قدیمی‌تر نیز ذخیره می‌شوند. مثلا اگر اطلاعات فروش ۱ماه اخیر را خواستیم می‌توانیم از انبار داده پیدا کنیم. اگر اطلاعات فروش ۱سال پیش را نیز خواستیم بایستی در انبار داده موجود باشد.غیر فرَار(none-volatile): به این معنا که اگر داده‌ای در انبار داده ثبت شد، دیگر امکان تغییر آن وجود ندارد. برای مثال در یک پایگاه داده عادی (غیر انبار داده‌ای) اگر یک شخص آدرس خود را عوض کرد، آدرس جدید جایگزین آدرس قبلی می‌شود، ولی در انبار داده سابقه آدرس‌های شخص ذخیره می‌شود و تغییرات آدرس یک شخص به صورت جدید‌تر در انبار داده ثبت می‌شود و آدرس‌های قبلی نیز در انبار داده جهت بررسی موجود می‌باشد[2,4].پس در واقع انبار داده یک مجموعه‌ای از داده‌هاست که از منابع مختلف تجمیع شده است و داده‌هایی دارد که آماده پاسخ‌گویی به یک موضوع مشخص می‌باشد. از این انبارهای داده در داشبورد‌های مدیریتی و در فرآیند‌های داده‌کاوی نیز به صورت گسترده استفاده می‌شود.خب حالا به بررسی انواع الگو های نگهداری داده در انبار داده ها میپردازیم:الگو اول:الگو دوم:الگو سوم:روش کار:در DW فرایندی داریم به نام ETL: Extract, Transform, Load که در طی آن داده ها از سیستمهای پردازش تراکنش استخراج می شود (E) تغییر فرمت های لازم در آن صورت می گیرد(T) و سپس در قالب داده ای جدید مناسب برای گزارشگیری آماده می شود (L) پس از آن از طریق داده کاوی (Data Mining ) و مکانیزم هایی مانند OLAP پرس و جو ها ایجاد و گزارشات مورد نیاز تهیه می شود.[3]سیستم های پردازشی به دو دسته تقسیم می شوند:1. سیستم های پشتیبانی تصمیم گیری  (DSS)2. سیستم های پردازش زنده (Online) اطلاعات (OLTP)این دو دسته هر یک راه های کاملا متفاوتی را جهت حل مسائل تجاری ارائه می کنند. قبل از آنکه به ارزش انباره های داده پی ببریم لازم است تفاونهای این دو را بشناسیم.سیستم OLTP چیست؟پردازش تراکنش های آنلاین با عنوان OLTPشناخته می شود از برنامه های معامله گرا در معماری ۳ لایه پشتیبانی می کند. OLTP تراکنش روزانه یک سازمان را انجام می دهد. هدف اصلی پردازش داده ها است و نه تجزیه و تحلیل داده هاسیستم هایOLTP در کلیه خدمات بازرگانی دیده می شوند از جمله سیستم های رزرواسیون، دستگاه های فروش ، کنترل انبار، سهام و فروش و ... . این سیستم ها غالبا به زمان پاسخی بین 1 تا 3 ثانیه در 100 در صد اوقات نیاز دارند. تعداد کاربران آنها در ساعات مختلف روز ، هفته و ماه می تواند بشدت متغیر باشد و درتمامی این اوقات به همان زمان پاسخ قبلی نیاز دارند. در این گونه سیستم ها معمولا بجای ارتیاط با بانکهای اطلاعاتی(Database Servers) به سیستم های تعاملی (Transaction Servers) متصل می شوند. البته این گونه ارتباط لازمه دستیابی به سرعت مورد نیاز Clients است.سیستم DSS چیست؟سیستم پشتیبانی از تصمیم (Decision Support System) و یا به طور مخفف DSS ، یک سیستم تصمیم‌گیر تحلیل‌گر بر اساس مجموعه‌ای از اطلاعات و برنامه‌ها می‌باشد. این اطلاعات می‌تواند از داده‌های وارد شده توسط انسان (تراکنشهای ذهنی) و یا از داده‌های تحلیل شده به وسیله یک نرم‌افزار (تراکنش های یک برنامه کامپیوتری) باشد. DSS به طور عموم، در جهت کمک به تصمیم‌گیری انتخاب صحیح یک کار و یا اقدام و در نتیجه بهبود کارایی سیستم استفاده می‌شود.[1]خصوصیات عمومی DSS1. کاربر می‌تواند، با استفاده از پارامترهای بیرونی كه به DSS تزریق می‌كند رفتار سیستم را بروز كند.2. به كمك وب سرويس ميتوانيد ارتباط ساده تري بين فرايندهاي مختلف ايجاد كنيد.3. از پایگاههای داده ، مدلهای تحلیلی و محاسباتی و سیستم های خبره درحل مسائل استفاده می کند.4. سیستم DSS دستیابی به انواع مختلف منابع داده با فرمتهای گوناگون را فراهم می‌کند.مقایسه سیستم های DSS وOLTPاطلاعات چند بعدی (OLAP)در واقع OLAP سیستمی است جهت پردازش داده‌های برخط (Online). در واقع OLAP خلاصه‌شده‌ی Online Analytical Processing  و بیان‌گر این موضوع است که می‌توان داده‌هایی را که در پایگاه‌داده‌های مختلف وجود دارند را تحلیل کرد. داده‌ها در انبار داده از منابع گوناگون جمع‌آوری می‌شوند. حال OLAP سیستمی است که می‌تواند بر روی این داده‌های چند بُعدی عملیات تحلیلی را انجام دهد.یکی از کاربردهای اصلی OLAP در ساخت گزارشات و داشبوردهای مدیریتی است. در این نرم‌افزارها، یک مدیر می‌خواهد گزارشات متعددی را به سرعت از سیستم دریافت کند. مثلا مدیر فروشگاه می‌خواهد بفهمد که در فصل اول و دوم، مجموع فروش لوازم الکترونیکی در فروشگاه‌های غرب کشور چقدر بوده‌ است؟ این کار یک نوع گزارش‌گیری محسوب می‌شود و با تکنولوژی‌های OLAP، یک مدیر می‌تواند با سرعت بیشتری به پرسش‌های خود دست پیدا کند.خب OLAP انواع مختلفی دارد و نویسندگان در متون و مقالات مختلف با اسامی و واژه‌های متنوعی به آن اشاره می‌کنند. در زیر به چند نمونه از انواع OLAP و توضیح هر یک می‌پردازیم:نوع ROLAP: مخففRelational OLAP یاOLAP رابطه‌ای است. این نوع OLAP از پایگاه‌داده‌های رابطه‌ای مانند SQL Server و MySQL جهت پیاده‌سازی استفاده می‌کند. اگر یک مکعب داده را در پایگاه‌داده‌ی رابطه‌ای مانند SQL Server و با جداول (Tables) پایگاه‌داده پیاده‌سازی کنیم، در واقع نمونه‌ای از ROLAP را انجام داده‌ایم.نوع MOLAP: مخفف Multidimentional OLAP یا OLAP چند بُعدی است.نوع HOLAP: مخفف Hybrid OLAP یا OLAP ترکیبی است. در واقع ترکیبی ازMOLAP وROLAP می‌باشد. در این‌جا مقادیری که تجمیع شده‌اند.طراحی سیستم:میشه گفت ETL فرآیند اصلی در فناوری سنتی انبار داده است که نمی تواند داده های بدون ساختار را اداره کند. [5] در این سیستم ، ما به یک فرآیند انعطاف پذیر ETL نیاز داریم که می تواند چندین مسئله کیفیت داده را کنترل کند ، به عنوان مثال داده های تکراری ، داده های ناسازگار و داده های دور ریز ، سیستم پیشنهادی را می توان در شکل 1 مشاهده کرد. در این سیستم ، ترکیبی بین Hadoop و (Relational database management system) RDBMS وجود دارد. Hadoop می تواند RDBMS را به عنوان ابزار نگهداری / دسته بندی داده ، و همچنین قابلیت مدیریت داده و بستر ارائه داده را نیز افزایش دهد.شکل1. سیستم پیشنهادی شکل2 . معماری سیستممعماری سیستم پیشنهادی ارائه شده است. داده های ساختار یافته در طرح ما جمع می شوند ، در حالی که داده های غیر ساختاری داده های غیرقابل پیش بینی هستند و معمولاً قالب قابل شناسایی رایانه ای ندارند. نمونه های داده های بدون ساختار متن آزاد ، تصاویر ، فیلم ها ، صفحات وب ، داده های متا و گزارش های وب سرور است. در سیستم پیشنهادی ما ، داده های بدون ساختار با انجام طبقه بندی و فیلتر کردن پردازش می شوند و سپس در داده های متنی ذخیره می شوند. داده های دسته بندی نشده در داده های خام باقی می مانند. بعد ، از طریق فرایند جستجوی روابط یا الگوها ، داده های موجود در داده های متنی در داده های مرتبط ذخیره می شوند. سپس ، داده های مرتبط که قبلاً پردازش شده اند و می توانند با ساختارهای از پیش تعریف شده سازگار شوند ، در آنها ذخیره می شوند داده های کاوش شده سرانجام ، امکان ادغام بین داده های کاوش شده و داده های کل قابل تجزیه و تحلیل با استفاده از تکنیک های OLAP و هوش تجاری وجود دارد. [6,7]پیاده سازی و آزمایشدر این بخش در مورد اجرای سیستم مطابق با تجزیه و تحلیل و طراحی سیستم بحث خواهد شد. داده های ساخت یافته از پایگاه های داده PostgreSQL تهیه می شوند ، در حالی که داده های غیر ساختاری از رسانه های اجتماعی مانند فیس بوک ، توییتر و LinkedIn حاصل می شود.شکل 3 صفحه تجزیه و تحلیل را نشان می دهد. در این نرم افزار ، کاربران می توانند تجزیه و تحلیل جدیدی ایجاد کنند ، بنابراین گزارش را می توان در صورت نیاز سفارشی کرد. در هر تجزیه و تحلیل ، تولید برخی نمودارها یا نمودارها برای پشتیبانی از گزارش تولید شده امکان پذیر است.شکل 3. صفحه تجزیه و تحلیل برنامه DSS.نمودار نمونه را می توان در شکل 4مشاهده کرد. کاربر می تواند نوع نمودار را به صورت سفارشی تنظیم کند ، بنابراین گزارش تولید شده برای خواننده معنی دارتر خواهد بود.شکل 4. صفحه نمودار برنامه DSS . خب به پایان مقاله رسیدیم امیدوارم تونسته باشم اطلاعات کمی درباره انبار داده ها به شما منتقل کنم.ممنون از همراهی شما عزیزانمنابع:[1] Turban, Efraim, Jay E. Aronson, Ting-Peng. Liang, and R. Sharda (2004) “Decision Support and Business Intelligence Systems”, 10th ed., New Jersey: Pearson Education, Inc.[2] Youssef, Bassil (2012) “A Data Warehouse Design for A Typical University Information System”, Journal of Comp. Sci. &amp; Research 1(6): 12-17, Dec. 2012.[3] Dell’Aquila, Carlo, Francesco Di Tria, Ezio Lefons, and Filippo Tangorra. (2007) “An Academic Data Warehouse”, Proceedings of the 7th WSEAS Int. Conf. on Applied Informatics and Communications, Athens, Greece, August 24-26.[4] Mirabedini, Shirin (2014) “The Role of Data warehousing in Educational Data Analysis”, Journal of Novel Applied Sciences 3(5): 1439-1445.[5] Salinas, Sonia Ordonez and Alba C.N. Lemus. (2017) “Data Warehouse and Big Data integration” Int. Journal of Comp. Sci. and Inf. Tech. 9(2): 1-17.[6] S. G. Manikandan and S. Ravi. (2014) “Big Data Analysis Using Apache Hadoop,” in International Conference on IT Convergence and Security (ICITCS) 2014, pp. 1–4.[7] J. Nandimath, E. Banerjee, A. Patil, P. Kakade, and S. Vaidya. (2013) “Big data analysis using Apache Hadoop,” 2013 IEEE 14th Int. Conf. Inf. Reuse Integr., pp. 700–703, 2013.</description>
                <category>مجتبی نمازی فرد</category>
                <author>مجتبی نمازی فرد</author>
                <pubDate>Fri, 18 Dec 2020 14:17:38 +0330</pubDate>
            </item>
                    <item>
                <title>APACHE SPARK</title>
                <link>https://virgool.io/@m_57855235/apache-spark-dwg4qbs1vido</link>
                <description>اسپارکMapReduceبررسی اجمالی MapReduceمدل برنامه نویسی مورد استفاده Googleترکیبی از مدلهای Map و Reduce با پیاده سازی مرتبطبرای پردازش و تولید مجموعه داده های بزرگ استفاده می شودبررسی اجمالی MapReduceبسیار مقیاس پذیر است و در بسیاری از رایانه ها قابل استفاده است.از بسیاری از ماشین های کوچک می توان برای پردازش مشاغلی استفاده کرد که به طور معمول توسط یک ماشین بزرگ قابل پردازش نیست.مفهوم mapیک جفت کلید / مقدار را وارد می کندکلید ارجاع به مقدار ورودی استخب Value مجموعه داده ای است که می توان روی آن کار کردارزیابیعملکردی که توسط کاربر تعریف شده استبرای هر مقدار ورودی مقدار اعمال می شودممکن است نیاز به تجزیه ورودی باشدلیست جدیدی از جفت کلید / مقدار تولید می کندمی تواند از جفت ورودی متفاوت باشدمقادیر را کاهش دهید.با واسط بین جفت کلید / مقدار ​​شروع می شودبا جفت کلید / مقدار نهایی به پایان می رسدجفت های شروع بر اساس کلید مرتب می شوندمقادیر مربوط به یک کلید داده شده در تابع Reduce را تأمین می کند.به طور معمول تابعی که:با تعداد زیادی جفت کلید / مقدار شروع می شودیک کلید / مقدار برای هر کلمه در تمام پرونده هایی که به هم مربوط می شوند (از جمله چندین ورودی برای همان کلمه)با تعداد بسیار کمی از جفت کلید / مقدار به پایان می رسدیک کلید / مقدار برای هر کلمه منحصر به فرد در تمام پرونده ها با تعداد موارد جمع شده در این ورودیشکسته شده بنابراین یک worker معین با ورودی همان کلید کار می کند.نقشه متن را می خواند و برای هر کلمه خوانده شده یک جفت {&lt;word&gt;، 1} ایجاد می کندسپسReduce تمام آن جفت ها را گرفته و برای تولید شمارش نهایی آنها را شمارش می کند.اگر 20 جفت{word ، 1} وجود داشته باشد ، خروجی نهایی Reduce یک جفت {word ، 20} خواهد بود.خلاصهالگوی MapReduceبستر های نرم افزاری برای محاسبات موازی قابل اعتماد و مقیاس پذیرموضوعات توزیع شده و موازی محیط را از برنامه نویس خلاصه می کند.سیستم های پرونده توزیع شده را اجرا می کندسیستم پرونده Googleسیستم فایل Hadoop) HDFS)HDFS (Hadoop Distributed File System)معرفی فایل سیستم HDFSفایل HDFS برای پرونده های بسیار بزرگی که بصورت استریمینگ به آنها داده می شود طراحی شده است و روی سخت افزارهای متداول اجرا می شود. به عبارت دیگر این فایل سیستم برای پرونده های چند گیگابایتی تا چند ترابایتی که یک بار نوشته می شود و بارها خوانده می شود مناسب است و از آنجا که در سخت افزارهای اجرا می شوند و نیازی به نرم افزارهای خاص ندارند ، باید آماده مقابله با از کار افتادن دیسک یا نود در خود فایل سیستم وجود داشته باشد. به همین دلایل hdfs برای عملیات فایلی که نیاز به تاخیر کم (کم تاخیر) مناسب نیست. علاوه بر این hdfs برای جایی که بسیار زیاد پرونده های کوچک وجود دارد یا برای جاهایی که مداوم به پرونده برای نوشتن در بخش های مختلف است مناسب نیست.در واقع HDFS پرونده ها را بصورت بلوک های ۶۴ یا ۱۲۸ مگابایتی تقسیم می کند و نگهداری می کند. اگر کسی با ساختار دیتا آشنا باشید ، می دانید که چرا سایز بلوک روی یک دیسک 51 تا 449 بایت (اندازه یک اسکتور) و در فایل سیستم های معماری 4 کیلوبایت تا 16 کیلو بایت است. اما hdfs از بلوک های این بزرگی (۶۴ مگابایت) برای این کار باعث می شود تا زمان جستجو برای زمان کل سیستم را کم کنید.ساختار hdfs به این صورت است که یک NameNode و یکسری DataNode وجود دارد. وظیفه NameNode که از اینجا به بعد ما آنرا NN می نامیم ، این است که اطلاعات متادیتای فایل را در خود نگهداری کند و DataNode اطلاعات بلوک های پرونده را در خود نگهداری می کند. HDFS کاملاً با      استاندارد POSIX سازگار نیست ، ولی بخش زیادی از آنرا تولید می کند. دسترسی کاربر و گروه مشابه posix است و ACL (لیست کنترل دسترسی) در آن وجود ندارد. از آنجا که فایل ها را از روی HDFS نمی توانید انتخاب کنید گزینه X در دسترسی به ندیده گرفته می شود.برای استفاده از این HDFS می توانید بک اند (backend) و اینترنت (اینترفیس) به صورت متنوعی داشته باشید که بتوانید دیتا را با فرم های مختلفی (به عنوان مثال RAID توزیع شده جدید) ذخیره کنید ، یا اجازه دهید آن را بصورت http ، ftp ، sftp را مجاز کنید بدهند.ویژگی های اساسی: HDFSتحمل پذیری خطای بالاتوان عملیاتی بالامناسب برای برنامه های دارای مجموعه داده های بزرگدسترسی مستقیم به داده های سیستم فایلاز سخت افزار گره ها ساخته می شودسیستم های پرونده توزیع شدهسیستم فایل توزیع شده بسیار مقیاس پذیر برای برنامه های بزرگ با حجم زیاد داده.به عنوان مثال گره های 10K ، 100 میلیون پرونده ، 10 PBذخیره انبوه حجم انبوه داده ها در رایانه های ارزان قیمت و غیر قابل اطمینان را      فراهم می کندپرونده ها برای رسیدگی به خرابی سخت افزار تکثیر می شوندشکست ها را شناسایی کرده و از آنها بازیابی کنیدبستری فراهم می کند که سیستم های دیگری مانند MapReduce ، BigTable بر روی آن کار می کنند.اسپارکمحاسبات خوشه ای سریع ، تعاملی ، یکپارچه با زبانموتور آپاچی اسپارک یک موتور تجزیه و تحلیل متحد برای پردازش داده در مقیاس بزرگ است.هسته اسپارک موتور پایه ای برای پردازش داده های موازی و توزیع شده در مقیاس بزرگ است.وظیفه انجام این موارد به عهده موتور اسپارک است:مدیریت حافظه و بازیابی خطابرنامه ریزی ، توزیع و نظارت بر کار ها در یک خوشهتعامل با سیستم های ذخیره سازیسرعتبارهای کاری را 100 برابر سریعتر اجرا می کند.آپاچی اسپارک با استفاده از برنامه ریزی پیشرفته DAG ، بهینه ساز جستجو و موتور اجرای فیزیکی ، هم برای داده های دسته ای و هم برای پخش جریانی ، عملکرد بالایی دارد.سهولت استفادهبرنامه ها را به سرعت در جاوا ، اسکالا ، پایتون ، R و SQL بنویسید.اسپارک بیش از 80 اپراتور سطح بالا را ارائه می دهد که ساخت برنامه های موازی را آسان می کند. و می توانید به صورت تعاملی  از پوسته های Scala ، Python ، R و SQL استفاده کنید.عمومیتترکیب SQL ، جریان و تجزیه و تحلیل های پیچیده.اسپارک مجموعه ای از کتابخانه ها را که شامل DataFrames ،SQL و   (MLlib برای یادگیری ماشین) ، GraphX و Spark Streaming ایجاد می کند و می توانید این کتابخانه ها را به صورت یکپارچه در همان برنامه ترکیب کنید.همه جا اجرا می شوداسپارک در Hadoop ، Apache Mesos ، Kubernetes ، مستقل یا در cloud اجرا می شود. این می تواند به منابع مختلف داده دسترسی پیدا کند.Spark Architectureمعماری اسپارک (Spark) یک معماری ارباب برده یا کلاینت سرور است و شامل پنج موجودیت اصلی زیر است:· برنامه راه انداز Driver· مدیر خوشه Cluster manager· کارگرها Workers· مجری executor· وظایف tasksبطور خلاصه، بخش اصلی برنامه راه انداز را برنامه کاربردی Spark مورد نظر تشکیل میدهد که در متد main آن، شیء SparkContext ساخته میشود (ابتدای برنامه های که قرار است در خوشه اجرا شود، شیء SparkContext ساخته میشود). Spark در دو حالت محلی (در یک ماشین و خوشه (در چندین ماشین) اجرا میشود. راه انداز، در حالت خوشه، با مدیر خوشه ارتباط برقرار میکند و به محض اتصال، Spark، فرآیندهای مجری را در گره های خوشه ايجاد میکند که مسئول اجرای پردازش (وظایف) و ذخیره دادهها هستند. سپس، راهانداز، کد برنامه کاربردی (گرافی جهتدار و بدون دور که بیانگر عملیاتی است که باید اجرا شود) و وظایفی جهت اجرا را به فرآیندهای مجری ارسال میکند.بیش از توضیح اجزای معماری اسپارک، به مفهوم اصطلاحات ذیل باید توجه کرد: قسمت Application : که قرار است در خوشه اجرا شود. در ابتدای متد main این برنامه، شیء SparkContext ساخته میشود. SparkContext، منطق پردازشی را ذخیره میکند و میتواند مجموعهای از کارهای موازی با سری را زمانبندی کند. قسمت job: مجموعه کاملی از تبدیلات روی RDD که با یک عمل action یا ذخیره سازی داده، خاتمه می یابد. در نتیجه، هر برنامه کاربردی، ممکن است شامل چندین کار باشد. قسمت Stage : اسبارک هر کار را به گرافی از گامها تقسیم میکند. همچنین، هر گام شامل، مجموعه ای از وظایفی است که قابل اجرا توسط گره کارگر هستند.قسمت Driver راه انداز وظایف ذیل را برعهده دارد:مذاکره با مدیر خوشه جهت تخصیص منابع به کارگرها. و هر کار را به DAG (گراف بدون دور جهت دار) ترجمه میکند.(Direct Acyclic Graph) . گراف را به گامهایی تقسیم میکند. عملیات تبدیل در یک گام، و عملیات action در گام دیگر قرار میگیرندوظایف را زمانبندی و اجرای آنها را کنترل میکند (بر اساس وضعیت کش جاری گرهها، مكان های مطلوب و مناسب جهت اجرای هر وظیفه تعیین میشود).قسمت Cluster manager : راه انداز، قادر است تا به سه نوع مدیر خوشه (مدیر خوشه مستقل ،spark Mes06 یا Yarn) متصل شود و از آن درخواست منابع کند. هر کدام از این سه مدیر خونه برای شرایطی خاص مناسب اند و میتوان یکی از آنها را برای مدیریت خوشه موجود انتخاب کرد. باید توجه داشت که مدیر خوشه مستقل Spark، بهمراه بسته Spark ارایه میشود، مدير خوشه Yarn، نیز در بشته هادوب و مدیر خوشه Mesos نیز چارچوب مستقل دیگری است. هر کدام از این سه مدیر خوشه، شامل دو بخش هستند(۱) سرویس ارباب مرکزی (مدیر منابع Yarn، ارباب Mesos، یا ارباب مستقل Spark) که تصمیم میگیرد کدام فرآیندهای مجری، چه زمانی و در چه مکانی اجرا شوند.(۲) سرویس برده که در تمام گرهها اجرا میشود (مدیر گره در Yarn برده در Mesos و برده در مدیر خوشه مستقل Spark) و فرآیندهای مجری را اجرا میکند و همچنین بر مصرف و حیات منابع انها نظارت می کند.قسمت Executor : در هر گره کارگر Spark، چند بردازش مجری وجود دارد (معمولا به اندازه تعداد هسته های گرهی برده، مجری ایجاد میگردد). هر برنامه کاربردی Spark، پردازشهای مجری خودش را دارد. هر مجری، مسئول موارد ذیل است و اجرای وظایفی که توسط راه انداز زمانبندی شدهاند، در چند نخ. . ذخیرهسازی نتایج محاسبات در حافظه (کش کردن نتایج در heap ماشین مجازی جاوا) یا دیسک . تعامل با سیستمهای ذخیره سازی . پس از تکمیل اجرای وظیفه، نتایج را به راه انداز ارسال میکنند.قسمت Workers : در معماری اسپارک، گره های برده به عنوان گره کارگر شناخته میشوند که برای برنامه Spark ، CPU حافظه و منابع ذخیره سازی فراهم میکنند.قسمت tasks  : وظیفه، کوچکترین واحد کار است که Spark آن را به یک مجری ارسال میکند. هر وظیفه توسط یک یال جهتدار در یک مجری اجرا میشود. Spark، وظیفهای به ازای هر پارتیشن داده ایجاد میکند. مجری، ممکن است یک یا چند وظیفه را بصورت همروند اجرا کند. همانطور که واضح است، درجه موازی سازی، توسط تعداد پارتیشنها تعیین میشود.مدل برنامه نویسیمجموعه داده های توزیع شده انعطاف پذیر (RDD)مجموعه های غیرقابل تغییر و تقسیم شده اشیااز طریق تحولات موازی (نقشه ، فیلتر ، گروه بندی ، پیوستن ، ...) بر روی داده های ذخیره شده پایدار       ایجاد شده استبرای استفاده مجدد کارآمد قابل ذخیره سازی استاقدامات درRDDتعدد ، map، reduce ، پس انداز ،RDD (Resilient Distributed Datasets)اسپارک مفهوم RDD (مجموعه انعطاف پذیر توزیع شده) را معرفی می کند ، یک مجموعه توزیع شده از اشیا  و تحمل ناپذیر در برابر تغییر که می تواند به صورت موازی کار کند. RDD می تواند شامل هر نوع جسمی باشد و با بارگذاری یک مجموعه داده خارجی یا توزیع مجموعه ای از برنامه درایور ایجاد می شود.در واقع RDD از دو نوع عملیات پشتیبانی می کند:تحولات عملیاتی (مانند نقشه ، فیلتر ، map و reduce و غیره) که بر روی RDD انجام می شوند و یک RDD جدید حاوی نتیجه را ارائه می دهند.اقدامات عملیاتی هستند (مانند reduce، شمارش و غیره) که پس از اجرای محاسبات روی RDD مقداری را برمی گردانند.در اسپارک ، همیشه کار خود را با یک مجموعه داده یا پایه (Base RDD) که قرار است پردازش انجام شود ، شروع می کند. این مجموعه با استفاده از RDD پذیرفته می شود و شما می توانید در HDFS ، بانک اطلاعاتی ، پرونده ها و سایر منابع داده را با کمک RDD ها ایجاد کنید. پردازش اصلی داده ها در اسپارک مجموعه عملیاتی و تبدیلاتی است که با بر پایه RDD ، انجام می  شود ، اسپارک یک RDD تغییر ناپذیر ایجاد میکند و با هر تبدیل یا انجام یک عمل ، یک RDD جدید ایجاد خواهد شد تا زمانی که به جواب نیاز شما رسیده و پردازش ما به اتمام برسد.منظور از برگشت پذیر بودن این است که هر زمان مشکلی در بخشی از کلاستر بوجود آمد و یک یا چند RDD از بین رفت به راحتی قادر به شروع RDD جدید با استفاده از RDD قبلی بوده تا این مشکل کلاستر ایرادی در روند کار اسپارک بوجود نیاورد و انجام زنجیر و تبدیل و عملیات مورد نیاز کاربر ، دوباره آنها را تولید کرد و باید نگران از بین رفتن آنها نیستیم. لغت Resilient به معنای مقاوم در برابر شکست و خطا و بازگشت آهسته اشاره دارد.توزیع داده ها در اسپارک و استفاده از یک مجموعه برای تولید RDDیکی از ویژگی های اصلی اسپارک ، در مقایسه با سایر چارچوب های تحلیل داده (از قبیل هدوپ) ، ذخیره سازی داده شده بر روی حافظه به جای دیسک می باشد. این ویژگی به برنامه های اسپارک اجازه می دهد که به سرعت اجرا شود ، چرا که برای مراجعه به دیسک برای اطلاعات لازم ،نیاز است پردازش صورت گیرد تا به آن دسترسی پیدا کنید. تصویر بالا فرآیند تجزیه یک لیست در چند بخش و توزیع هر یک را ببینید که به خوبی نمایش می دهد. هر کدام از این بخش ها در حافظه یک گره ذخیره می شود.تحمل خطای RDDدر اصل RDD اطلاعات نسب را حفظ می کند که می تواند برای بازسازی پارتیشن های از دست رفته استفاده شود.خب به پایان مقاله رسیدیم امیدوارم تونسته باشم اطلاعات اندکی درباره اسپارک به شما منتقل کرده باشم.ممنون از همراهیتون</description>
                <category>مجتبی نمازی فرد</category>
                <author>مجتبی نمازی فرد</author>
                <pubDate>Sun, 13 Dec 2020 12:05:35 +0330</pubDate>
            </item>
            </channel>
</rss>