تکنولوژی های بسیار زیادی هستند که در زمینه پردازش کلان داده ها مطرح شدهاند، اما هدوپ hadoop یکی از معروف ترین آنهاست. هدوپ یک چارچوب (Frame work) متن باز (Open source) است که برای پردازش و ذخیره سازی اطلاعات از انواع مختلف به کار میرود که صنایع مبتنی بر داده را در دسترسی سریع به ارزش های نهان در داده ها و پردازش و کاوش آنها، یاری میکند. ویژگی اصلی این ابزار به این شرح است:
- این ابزار به صورت متن باز است و به همین دلیل منابع آن و کتابخانه ها و توابع به راحتی در دسترس است.
- لایه ها و اجزا آن به صورت مستقل عمل میکنند و یکپارچه نیستند.
- از دسترسی به فایل های خارجی پشتیبانی میشود.
- در هنگام بار زیاد سیستم، هدوپ عملیات انجام یک دستور را به چندین گروه وظیفه میشکند و به همین دلیل برنامه ریزی برای کارهایی که نیاز به چندین گروه عملیات دارند ساده تر صورت میگیرد.
- برقراری تعادل خودکار بار در هر کدام از گره (Node) های سیستم توزیع شده، در هنگامی که ترافیک داده افزایش میابد.
- پشتیبانی از جایگزینی ماشینها و گرهها در هنگام خرابی.
این ابزار یک معماری لایه ای دارد. در پایین ترین سطح یک لایه ی حافظه ای مبتنی بر رکورد (Record) قرار دارد و این مجموعه داده ای به صورت سطری و ستونی مدیریت میشود و در هر ماشین موجود در خوشه های توزیع شده، یک مدیر حافظه وجود دارد که حافظه ی موجود در سیستم را مدیریت میکند. لایه ی وسط یک لایهی اجرایی جریان کاری است که در آن عملگرهای رابطه ای برای انجام عملیات بر روی مجموعه داده ها، وجود دارند. در پایین ترین سطح نرم افزاری هدوپ، یک فایل سیستم توزیع شده وجود دارد که به اختصار (Hadoop distributed file system) HDFS نامیده میشود.
هر فایل در اینجا بخش بندی شده و در دنباله ای از مکان های حافظه آدرس پذیر و ادامه دار قرار میگیرد. در لایه ی میانی نرم افزار، فایل ها تقسیم بندی شده و هر قسمتی از پردازش در اختیار یک گره قرار میگیرد و در نهایت نتایج نیز از گره ها جمع آوری شده و تبدیل به خروجی نهایی خواهد شد این تقسیم بندی بر اساس تابع نگاشت-کاهش (Map Reduce)انجام میشود.
فایل سیستم توزیع شده هدوپ
سیستم فایل توزیع شده هدوپ نیازمند کامپیوترهای گران قیمت نیست و میتوان با استفاده از کامپیوترهای ارزان قیمت و معمول مورد استفاده قرار گیرد. این سیستم فایل از کارآیی بالایی برخوردار است.
این سیستم فایل توزیع شده تحت هدوپ کار میکند و یک چارچوبی برای تحلیل و تغییر شکل مجموعه داده های بسیار بزرگ با استفاده از MapReduce میباشد. یکی از مهمترین ویژگی های هدوپ، پارتیشن بندی داده ها و محاسبات میان هزاران میزبان و اجرای برنامه های محاسباتی موازی بر روی داده هایشان است.
HDFS جزئی از سیستم فایل هدوپ میباشد و کلان داده و داده های برنامه را بر روی یک سرور اختصاصی به نام گره نام (Name node) ذخیره میکند. داده های برنامه ها نیز بر روی سرورهای دیگر به نام گره داده (Data node) ذخیره میشوند. تمامی این سرورها با هم از طریق پروتکل های مبتنی بر TCP با هم در ارتباط هستند.
معماری سیستم فایل توزیع شده هدوپ
- NameNode:
فضای نام HDFS ، سلسله مراتبی از فایل ها و پوشه ها است. این فایل ها و پوشه ها برروی NameNode ذخیره میشوند که خواصی مانند دسترسی ها ، تاریخ تغییرات، فضای نام و میزان استفاده از فضا را ذخیره میکند. محتویات فایل به بخش های بزرگی که عموما 128 مگابایت هستند تقسیم میشوند و هرکدام از این بخش های فایل به صورت مستقل بین چندین NameNode تکثیر میشوند.
NameNode فضای نام و نقشه یابی بخش های فایل را از DataNode (محل فیزیکی فایل های داده) نگه داری میکند. یک سرویس گیرنده HDFS زمانی که میخواهد یک فایل را بخواند میبایست اول به NameNode متصل شود تا محل بخش های مختلف فایل را دریافت کند و بعد از نزدیک ترین DataNode به سرویس گیرنده فایل ها را بخواند. وقتی که سرویس گیرنده میخواهد داده ها را بنویسد، ابتدا درخواست خود را به NameNode میفرستد تا NameNode مجموعه DataNode ها را برای نگه داری بخش های تکثیر فایل کاندید کند.
سپس سرویس گیرنده داده ها را با استفاده از رایانش خط لوله بر روی DataNode ها مینویسد. طراحی حاضر برای هر کلاستر یک NameNode دارد. کلاسترها میتوانند هزاران DataNode و 10 تا هزار سرویس گیرنده HDFS در هر کلاستر داشته باشند که هر DataNode میتواند چندین وظیفه را به صورت همروند اجرا کنند.
معماری سیستم فایل توزیع شده هدوپ
- DataNode:
هربخش از داده های تکثیر شده روی DataNode توسط دو فایل در سیستم فایل محلی تعریف میگردد. تمام داده های شما در DataNode ذخیره میشود و به همین خاطر نیاز به منابع ذخیره سازی بیشتری دارد. این DataNode ها ، سخت افزار ارزان قیمت در یک محیط توزیع شده هستند (شاید چیزی نظیر لپ تاپ ها و کامپیوترهای شخصی) به همین علت است که راهکارهای ارائه شده توسط هدوپ بسیار مقرون به صرفه هستند.
گره های داده
ماهان
کسی که با لینوکس آشنا باشه کامل به راحتی میتونه با هدوپ کار کنه یا هدوپ رو رو سیستمش نصب کنه چون نیازیم به سخت افزار خیلی عالی نداره