img

تحلیل کلان داده با Hadoop

/
/
/

کلان داده به علت دارا بودن حجم گسترده و بسیار بالایی از داده ها، نیازمند ابزارهایی است تا بتوان پردازشی کارآمد و موثر بر روی آن‌ها داشت. در واقع از مباحثی است که در روند توسعه تکنولوژی بسیار موثر می‌باشد زیرا همانطور که سازمان‌ها بزرگ می‌شوند، اطلاعات مرتبط با آن‌ها نیز به سرعت رشد یافته و افزایش می‌یابند و همین موضوع سبب ایجاد پیچیدگی‌های مرتبط با داده‌ها می‌شود بنابراین این موضوع اهمیت بیشتری می‌یابد.
Hadoop، یک فریم‌ورک نرم‌افزاری منبع‌باز و یک پلت‌فرم برای ذخیره‌سازی، آنالیز و پردازش داده‌ها می‌باشد. همچنین یک ذخیره سازی انبوه برای هر نوع داده محسوب می‌شود که دارای قدرت پردازشی بسیار بالا و توانایی مدیریت همزمان وظایف به صورت مجازی و بدون محدودیت است. در اینجا به صورت ساده بیان می‌کنیم که Hadoop، چگونه می‌تواند به تجزیه و تحلیل کلان داده‌ها کمک کند.
کلان داده اصطلاحی است که به یک مجموعه کلان و عظیم از داده‌ها اشاره دارد که شامل، داده‌های ساختارمند در پایگاه داده‌های سنتی و داده‌های غیرساختارمند همچون فایل‌های متنی، ویدئویی و صوتی است. البته کلان داده تنها داده نیست بلکه مجموعه ای از ابزارها، تکنیک‌ها و فریم‌ورک‌ها و پلت‌فرم‌های مختلف است.
اطلاعات حمل و نقل و اطلاعات جست و جو، اطلاعات بورس و اوراق بهادار، اطلاعات رسانه‌های اجتماعی و … همگی تحت عنوان کلان داده شناخته می‌شوند.
از نظر فنی(تکنیکی)، کلان داده به مجموعه بزرگی از داده‌ها اشاره دارد که می‌تواند با استفاده از ابزار محاسباتی الگوهایی را ترسیم کند و با استفاده از نقاط مشترک یا تکراری به پیش بینی گام بعدی به خصوص در رفتار انسانی مثل، اقدامات مشتریان در آینده بر اساس تجزیه و تحلیل الگوهای خرید مشتریان در گذشته می‌پردازد.
کلان داده درباره حجم داده‌ها نیست بلکه بیشتر در مورد داده هایی است که مردم از آن استفاده می‌کنند. بسیاری از سازمان‌ها مانند شرکت‌های تجاری و موسسات آموزشی از این اطلاعات برای تحلیل و پیش بینی عواقب اقدامات خاص در آینده استفاده می‌کنند. پس از جمع آوری اطلاعات، از آن‌ها می‌توان در موارد بسیاری استفاده نمود که عبارتند از:
* کاهش هزینه
* توسعه محصولات جدید
* تصمیم گیری سریعتر و دقیق
* تشخیص خطاها

 

امروزه، کلان داده تقریبا توسط تمام بخش‌ها از جمله بانکداری، تولید و خطوط هوایی استفاده می‌شود. بسیاری از چارچوب‌های نرم افزار منبع باز برای ذخیره سازی و مدیریت داده وجود دارد که Hadoop یکی از آنهاست. Hadoop، دارای ظرفیت بسیار بالایی در ذخیره داده است و قدرت پردازش بسیار بالا و توانایی انجام وظایف بیشماری را نیز دارد.این چارچوب بر مبنای برنامه نویسی مبتنی بر جاوا است که توسط آپاچی توسعه یافته است. سازمان‌های بسیار زیادی از Hadoop، وب سرویس‌های آمازون، اینتل، مایکروسافت، cloudera، ترادیتا و … استفاده می‌کنند.

تاریخچه Hadoop
Doug cutting و Mike Cafarella، افرادی هستند که نقش بسیار تاثیرگذار و مهمی در شکلگیری Hadoop داشتند.آن‌ها می‌خواستند روشی را ابداع کنند تا بازگشت نتایج جست و جوی وب با توزیع داده در ماشین‌های متعدد صورت گرفته و محاسبات سریعتر انجام شود تا کارهای بیشتری بتوانند به صورت همزمان انجام شوند.
آن‌ها در موتور جست و جوی منبع باز به نام Nutch کار می‌کردند، در حالی که در آن زمان، موتور جست و جوی گوگل نیز به کار برده می‌شد.
بنابراین، Nutch به دو بخش تقسیم شده بود که یکی از بخش‌ها پردازش داده را انجام می‌داد که Hadoop نامیده شده بود. Hadoop به عنوان یک پروژه منبع باز در سال ۲۰۰۸ توسط یاهو انتشار یافت.امروزه، بنیاد نرم افزار آپاچی اکوسیستم Hadoop را نگه داری می‌کند.

 

پیش نیازها در استفاده از Hadoop
لینوکس مبتنی بر سیستم عامل‌های مشابه Ubuntu یا Debian در راه اندازی Hadoop ارجحیت دارد. داشتن دانش پایه ای در استفاده از دستورات لینوکس ضروری است.علاوه بر این، جاوا نیز نقش بسیار مهمی را در استفاده از Hadoop ایفا می‌کند اما در عین حال افراد می‌توانند از سایر زبان‌های مورد نظرشان مانند Python یا Perl برای نوشتن متدها یا توابع استفاده کنند. چهار کتابخانه اصلی در Hadoop وجود دارد که عبارتند از:
۱) Hadoop Common: خدماتی را فراهم می‌کند که توسط سایر ماژول‌ها در Hadoop مورد استفاده قرار می‌گیرند.
۲) Hadoop MapReduce: به عنوان یک چارچوب موازی برای برنامه ریزی و پردازش داده‌ها به کار می‌رود.
۳) HadoopYARN: تکنولوژی YARN مخفف Yet Another Resource Navigator است.در واقع یک نسخه تکامل یافته از MapReduce است و برای فرایندهای در حال اجرای Hadoop استفاده می‌شود.
۴) Hadoop Distributed File System (HDFS): اطلاعات را ذخیره می‌کند و رکوردهای قبلی را در ماشین‌ها و کلاسترهای مختلف نگه داری می‌کنند همچنین امکان ذخیره داده‌ها در فرمت‌های قابل دسترس را نیز فراهم می‌آورد. HDFS یکبار اطلاعات را به سرور ارسال می‌کند و پس از آن بارها و بارها می‌تواند از آن اطلاعات استفاده کند. وقتی یک پرس و جو انجام می‌شود، NameNode تمام گره‌های فرعی DataNode را که با پرس و جوی خواسته شده ارتباط دارند، مدیریت می‌کند.

Hadoop MapReduce تمام وظایف تعیین شده را به ترتیب اجرا می‌کند. به منظور عملکرد بهتر می‌توان به جای MapReduce از Pig Hadoop و Hive Hadoop استفاده می‌شود. بسته‌های دیگر که می‌توانند از Hadoop پشتیبانی کنند به شرح زیر است:
* Apache Oozie: یک سیستم برنامه ریزی شده است که فرایندهای موجود در Hadoop را مدیریت می‌کند.
* Apache Pig: چارچوبی است که برنامه‌های ایجاد شده در Hadoop را اجرا می‌کند.
* Cloudera Impala: پایگاه داده پردازشی برای Hadoop است. در ابتدا توسط سازمان نرم افزاری Cloudera ساخته شد اما بعدا به عنوان یک نرم افزار منبع باز انتشار یافت.
* Apache HBase: یک پایگاه داده غیررابطه ای(غیروابسته) برای Hadoop است.
* Apache Phoenix: یک پایگاه داده رابطه ای مبتنی بر Apache HBase است.
* Apache Hive: یک انبار داده است که برای خلاصه سازی، پرس و جو و تجزیه و تحلیل استفاده می‌شود.
* Apache Sqoop: برای ذخیره داده بین Hadoop و منابع داده ساختاریافته مورد استفاده قرار می‌گیرد.
* Apache Flume: ابزاری است که برای جابجایی داده به HDFS استفاده می‌شود.
* Cassandra: یک سیستم چند پایگاه داده ای مقیاس پذیر است.

 

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

Hadoopدر موارد زیر کاربرد دارد:
* ماشین یادگیری
* پردازش فایل‌های متنی
* پردازش تصویر
* پردازش پیام‌های XML
* تحلیل داده
•* تجزیه و تحلیل در زمینه بازاریابی
* مطالعه داده‌های آماری

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

 

چارچوب‌های مشابه Hadoop
هیچ بحثی در کلان داده بدون اشاره به Hadoop نمی‌تواند کامل باشد اما همانند سایر تکنولوژی‌ها که در حال پیشرفت هستند، تنوع بسیار زیادی از چارچوب‌های مشابه Hadoop نیز وجود دارد که عبارتند از: Ceph،Apache Storm، Apache Spark، DataTorrent RTS، Google BigQuery، Samza، Flink و HydraData TorrentRTS.
MapReduce زمان زیادی را برای انجام وظایف صرف می‌کند.Spark می‌تواند این مساله را با انجام پردازش داده در حافظه برطرف کند.Flink، چارچوب دیگری است که سریعتر از Hadoop و Spark کار می‌کند.
اما Hadoop برای پردازش اطلاعات در زمان واقعی مناسب نیست.Apache Spark، از جریان پردازش داده برای تداوم ورودی و خروجی داده استفاده می‌کند. همچنین Apache Flink، زمان اجرایی را برای جریان داده و پردازش دسته ای فراهم می‌کند.
با این وجود، Hadoop، چارچوبی است برای تجزیه و تحلیل کلان داده‌ها که به علت مقیاس پذیری، هزینه پایین و انعطاف پذیری بر سایر چارچوب‌ها ارجحیت دارد.
Apache Hadoop با YARN، مجموعه وسیعی از داده‌ها را به ماتریس ویژگی تبدیل می‌کند تا به آسانی استفاده شود. Hadoop، فرایند ترسیم الگوریتم‌های یادگیری ماشین را نیز ساده تر می‌کند.

نظر بدهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

It is main inner container footer text