آموزش حجیم، بیگ دیتا – آموزش اول

در این مقاله سعی کردیم تا مقدمه ای از داده های حجیم یا همان بیگ دیتا (Big Data) برای شما عزیزان ارائه دهیم تا چراغ راهی برای انجام پایان نامه داده های حجیم (بیگ دیتا) در میان دانشجویان و پژوهشگران کشور باشد.

 

مقدمه

در سالیان گذشته بعد از اینکه چالش­های مربوط به جمع­آوری داده به نحوی مرتفع گشتند، اکنون سوال اصلی به چگونگی پردازش بر روی این حجم عظیمی از داده­ها تبدیل شده است. دانشمندان و پژوهشگران معتقدند که امروزه موضوع داده­های حجیم، مهم­ترین چالش پیش رو در علوم کامپیوتر می­باشد. وب­سایت­های اجتماعی مانند فیسبوک[1] و توئیتر[2] دارای میلیاردها کاربر هستند که در هر دقیقه صدها گیگابایت اطلاعات تولید می­کنند. در سایت یوتیوب[3] نیز یک میلیارد کاربر وجود دارد که در هر دقیقه صدها ساعت فیلم تولید و آپلود می­کنند.

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

در این گزارش ابتدا به توضیح مفهوم داده­های حجیم پرداخته می­شود.

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

  • هر دو روز حجم داده­ای که در دنیا تولید می­شود برابر با حجم تمام داده­هایی است که از ابتدا تا سال 2003 تولید شده است.
  • 90 درصد داده­های موجود در دنیا، طی دو سال گذشته تولید شده­اند.
  • پیش­بینی می­شود در سال 2020، حجم داده دیجیتال در دنیا از 3.2 زتایابت در سال 2015 به 40 زتابایت افزایش یابد.

همانطور که در شکل-1 نیز نشان داده شده است، محور افقی، سال میلادی و محور عمودی، مقدار داده به زتابایت را نشان می­دهد.

  • هر دقیقه، ما تعداد 204 میلیون ایمیل، 1.8 میلیون لایک در فیسبوک، 278 هزار توئیت و 200 هزار عکس در فیسبوک تولید می­کنیم.

دانلود رایگان مطالب دانشگاهی٬

شکل-1  میزان رشد اطلاعات در سال­های مختلف

  • گوگل در هر ثانیه بیش از 40 هزار پرسش را تجزیه و تحلیل کرده و جواب می­دهد (حدود 3.5 میلیارد در یک روز)
  • در هر دقیقه حدود 100 ساعت فیلم در یوتیوب آپلود می­شود و 15 سال طول می­کشد تا یک نفر تمام فیلم­هایی که فقط در یک روز در یوتیوب آپلود شده است را ببیند.
  • اگر تمام داده­های موجود در دنیا بر روی DVD بارگذاری کنید و DVDها را روی یکدیگر قرار دهید، ارتفاع آن دو برابر فاصله زمین تا ماه می­شود.
  • شرکت مخابراتی AT&T آمریکا، دارای بیشترین حجم داده بر روی یک پایگاه داده منحصر به فرد می­باشد. این پایگاه داده 312 ترابایت اندازه و 2 تریلیون سطر دارد.
  • در هر دقیقه حدود 570 وب­سایت جدید بر روی اینترنت ایجاد می­شود.

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

دانلود رایگان مطالب دانشگاهی٬

شکل 2 – رشد داده در نقاط مختلف دنیا

 

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

باتوجه به آماری که در [1] منتشر شده است، در سال 2015 در کشور ایالات متحده آمریکا، 1.9 میلیون فرصت شغلی جدید در رابطه مستقیم با داده­های حجیم ایجاد شده است که هر کدام از این فرصت­ها نیز به صورت غیر مستقیم سه فرصت شغلی جدید را ایجاد کرده است.

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

در ادامه به حوزه­هایی که داده­های حجیم می­تواند در آن­ها تحول و انقلابی ایجاد کند اشاره شده است: [2]

  • فهمیدن الگوی رفتاری مشتریان و شناسایی آن­ها
  • استخراج و بهینه­سازی فرآیند تجارت در سازمان­ها
  • سنجش شخصی کاربران و بهینه­سازی کارایی سیستم
  • بهبود روال سلامت و سلامت عمومی
  • بهبود کارایی ورزش و ورزشکاران
  • بهبود علوم و پژوهش
  • افزایش کارایی ماشین و ابزار
  • افزایش امنیت و رعایت قانون
  • بهبود و بهینه­سازی شهرها و کشورها از نظر رفاه عمومی

استفاده و بهره ­برداری از تکنولوژی داده ­های حجیم در این حوزه­ها، علاوه بر اینکه باعث بهبود کارایی و عملکرد آن­ها می­شود، باعث بروز بازاری بزرگ و باارزش در زمینه داده­های حجیم می­شود.

دانلود رایگان مطالب دانشگاهی٬

شکل 3 – ارزش بازار داده ­های حجیم

در شکل فوق، ارزش بازار داده­های حجیم، بر حسب میلیارد دلار، به تفکیک سال­های میلادی آورده شده است. از این­رو لزوم استفاده از این تکنولوژی در سیستم­های بسیار وسیع بیش از پیش آشکار می­باشد.

 

ساختار و معماری داده ­های حجیم

در این بخش به ارائه ساختار و معماری داده­های حجیم و چگونگی مدیریت آن­ها می­پردازیم.

به­طور کلی، تکنولوژی داده­های حجیم بر سه اصل کلی استوار است [3]:

  • سیستم­های توزیع­شده[4]
  • فایل سیتم توزیع­شده[5]
  • پردازش توزیع­شده[6]

باتوجه به اینکه حجم داده بسیار زیاد است و امکان ذخیره آن بر روی یک سیستم وجود ندارد، باید این حجم بسیار زیاد از داده­ها را بر روی چندین سیستم که به صورت هماهنگ با یکدیگر کار می­کنند، ذخیره کنیم. به همین منظور سیستم­های توزیع­شده، پایه و اساس ذخیره­سازی داده­های حجیم می­باشد. [4]

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

پس از اینکه داده حجیم را به طریق بالا بر روی یک سیستم توزیع­شده ذخیره کردیم، می­بایست چارچوبی برای پردازش این نوع از داده­ها را نیز فراهم کنیم. پردازشی که توزیع­شده باشد و قابلیت اعمال بر روی داده­های توزیع­شده را داشته باشد. این چارچوب با نام نگاشت-کاهش[7] تعریف می­شود.

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

به­طور کلی، هر سیستم داده­های حجیم، از 4 بخش کلی تشکیل می­شود که در شکل-4 نمایش داده شده است.

4 لایه اصلی هر مدل داده­های حجیم عبارتند از [5]:

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

دانلود رایگان مطالب دانشگاهی٬

شکل 4 – مدل یک سیستم داده­های حجیم

ابزار آپاچی هدوپ[8] ابزاری است که هر سه فاکتور اصلی فوق را به صورت یک فریمورک و چارچوب اصلی دارد. آپاچی هدوپ [6]، ابزاری توزیع­شده برای ذخیره­سازی و پردازش داده­های حجیم با استفاده از سخت­افزارهای هماهنگ می­پردازد. هدوپ برای افزایش اندازه تا ابعاد صدها و یا هزاران ماشین طراحی شده است و در مقابل خطا بسیار مقاوم می­باشد. چارچوب هدوپ دارای دو بخش اصلی زیر می­باشد:

  • سیستم فایل توزیع­شده[9][7]

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

  • هدوپ یارن[10][8]

وظیفه مدیریت و اجرای پردازش­های سنگین بر روی فایل سیستم را دارا می­باشد.

یکی از مهم­ترین بخش­هایی که در هدوپ برای توسعه الگوریتم­ها مورد توجه قرار می­گیرد، مدل برنامه­نویسی نگاشت-کاهش[9] می­باشد. این الگو، مبنای انجام پردازش­های سنگین بر روی هدوپ می­باشد. در این الگو کار[11] مربوطه به دو بخش اصلی نگاشت و کاهش تقسیم می­شود. در فاز نگاشت، داده­های از HDFS (Hadoop Distributed File System) خوانده می­شود و پردازش­های مربوطه بر روی آن انجام و نتایج اولیه تولید می­شود و در فاز کاهش این نتایج یکپارچه و ادغام می­شود و به عنوان خروجی نهایی در نظر گرفته می­شود.

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

زیرساخت هدوپ دارای زیربخش­های بسیاری می­باشد که قسمت­های اصلی آن در شکل 5 آمده است.

دانلود رایگان مطالب دانشگاهی٬

شکل 5 –  بخش­های مختلف زیرساخت هدوپ[10]

شکل-6 معماری فایل سیستم توزیع­شده هدوپ را نشان می­دهد. این معماری از الگوی Master-Slave استفاده می­کند. برای هر چند ماشین Slave، یک ماشین Master وجود دارد که وظیفه هماهنگی و مدیریت این­ ماشین­ها را بر عهده دارد.

در هدوپ برای ذخیره­سازی داده و برای پردازش داده، دو ساختار Master-Slave تعریف شده است که برای ذخیره­سازی داده، ماشین­های Master را با نام NameNode و ماشین­های Slave را با نام DataNode نام­گذاری می­کنند. برای پردازش توزیع­شده نیز، ماشین­های Master را با نام JobTracker و ماشین­های Slave را با نام TaskTracker نام­گذاری می­کنند.

دانلود رایگان مطالب دانشگاهی٬

شکل 6 – معماری فایل سیستم توزیع­ شده هدوپ

ابزارهای مدیریت و ذخیره داده ­های حجیم

در کنار هدوپ، ابزارهای بسیار زیادی وجود دارد که هر کدام وظیفه خاصی را انجام می­دهند و باعث بهبود عملکرد آن و ارائه سرویس­های مفید می­شوند.  در شکل-7 نمایی از این ابزارها آورده شده است [11]. در ارائه بعدی این ابزارها به تفکیک و تفصیل توضیح داده خواهند شد.

دانلود رایگان مطالب دانشگاهی٬

شکل 7 – ابزارهای داده ­های حجیم

 

در شکل-8 به مقایسه میان پایگاه داده­های رابطه­ای و پایگاه داده­های NoSQL (استفاده شده در بستر داده­های حجیم) پرداخته شده است.

 

دانلود رایگان مطالب دانشگاهی٬

شکل – 8 مقایسه پایگاه داده ­های رابطه­ ای و پایگاه داده ­های NoSQL

 

در پایگاه داده­های معمولی با افزایش حجم داده میزان کارایی کاهش پیدا می­کند اما در پایگاه داده­های حجیم میزان کارایی با افزایش داده ثابت می­ماند. در شکل، نمودار افقی نماینده حجم داده و نمودار عمودی نشان­دهنده کارایی می­باشد و این نشان از عملکرد بسیار مناسب هدوپ در مواجه با حجم داده بسیار زیاد می­باشد.

 

نتیجه ­گیری

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

 

[1] Facebook

[2] Tweeter

[3] Youtube

[4] Distributed System

[5] Distributed File System

[6] Distributed Processing

[7] Map-Reduce

[8] Apache Hadoop

[9] Distributed File System (DFS)

[10] Apache Hadoop YARN

[11] Task

 

آموزش دوم این مجموعه را نیز در ادامه بخوانید

دانلود رایگان مطالب دانشگاهی