سیستم فایل HDFS- قسمت اول

سیستم فایل HDFS
Facebooktwittergoogle_pluspinterestlinkedinmail
Print Friendly, PDF & Email

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

مقدمه:

HDFS یک سیستم فایل توزیع شده است که برای اجرا بر روی سخت افزارهای معمولی طراحی شده است. HDFS تا مقدار زیادی مقاوم دربرابر خطا می باشد و برای اجرا برروی سخت افزاهای ارزان قیمت طراحی شده است. HDFS مناسب نرم افزارهای با مجموعه داده های بزرگ می باشد. HDFS در ابتدا بعنوان زیرساختی برای پروژه موتور جستجوی Apache Nuthc web طراحی شده بود.  هرنمونه از HDFS شامل صدها یا هزاران ماشین مختلف برای ذخیره سازی قسمت های مختلف از داد های یک سیستم فایل می باشد. از آنجائیکه HDFS دارای زیربخش های بسیار زیاد و مختلفی می باشد از همان ابتدای طراحی توجه بسیاری به بحث تحمل خطا در آن شد. نرم افزارهایی که بر روی HDFS اجرا می شوند به جریان مداوم دستیابی به داده ها نیاز دارند و مانند نرم افزارهای عادی نمی باشند. HDFS بیشتر برای پردازش های دسته ای توسط کاربران طراحی شده است. مانور HDFS بر روی کاهش تاخیر زمان دستیابی به داده ها است. نرم افزارهایی که روی HDFS اجرا می شوند دارای مجموعه داده های بسیار بزرگ می باشند. بعنوان مثال یک فایل معمولی در HDFS دارای حجم به گیگابایت و ترابایت می باشد. HDFS برای پشتیبانی و پوشش فایل های بسیار بزرگ طراحی شده است. HDFS باید پهنای باند دستیابی بالا به داده های موجود در صدها گره قرار گرفته در یک کلاستر ارائه کند.

نرم افزارهای تحت HDFS دارای رویه دستیابی write once read many می باشند. یک فایل که نوشته، ذخیره و بسته شده است، دیگر نیازی به تغییر ندارد. نرم افزارهای MapReduce و خزنده در وب به خوبی با این مدل هماهنگ می شوند. در آینده HDFS از ویژگی Append کردن فایل های بزرگ نیز پشتیبانی خواهد کرد.

محاسبات متحرک بهتر از داده های متحرک است. محاسبه ای که از طرف یک نرم افزار درخواست شده است، اگر نزدیک به داده های مورد نیازش باشد بسیار بهینه تر خواهد بود. این موضوع بخصوص هنگامیکه حجم داده ها بالاست بسیار قابل توجه می باشد. این کار باعث کاهش برخوردها در شبکه می شود. خروجی کلی یک سیستم را افزایش می دهد. بنابراین این فرضیه که محاسبات را به نزدیکی داده ها ببریم بهتر از جابجایی داده ها  به محل محاسبات می باشد. HDFS واسط هایی برای نرم افزارها ارائه می کند تا محاسبات خود را در محل نزدیک به داده ها انجام دهند.

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

معماری HDFS بصورت مرجع- پیرو(Master-Slave) می باشد. هر کلاستر HDFS شامل یک گره به نام NameNode می باشد که بعنوان رئیس سیستم عمل می کند و فضای کاری سیستم فایل را مدیریت می کند و دسترسی کاربران به فایل ها را قانون گذاری می کند. در کنار این گره چندین گره بنام DataNode وجود دارد که معمولا به ازای هر گره یک DataNode در کلاستر داریم. گفتیم که HDFS داده ها را بصورت فایل ذخیره می کند و هرفایل به چند تکه تقسیم می شود که این تکه ها در مجموعه ای از DataNode ها ذخیره می شوند. NameNode وظیفه انجام عملیات هایی همچون بازکردن، بستن، تغییر نام ها و مسیرها را به عهده دارد. همچنین تعیین کننده نگاشت تکه های فایل ها به DataNode ها نیز می باشد. DataNode ها وظیفه رسیدگی به درخواست های خواندن و نوشتن از کاربران سیستم فایل را برعهده دارند.  همچنین وظیفه ساخت، حذف و کپی سازی بلاک های داده ای به دستور NameNode را نیز برعهده دارند.

ماشین هایی که HDFS بر روی آن ها در حال اجراست معمولا دارای سیستم عامل های GNU/Linux می باشند. HDFS با زبان جاوا نوشته شده است. هر ماشینی که جاوا را پشتیبانی می کند می تواند یک NameNode یا DataNode باشد. استفاده از زبانی چون جاوا که بسیار قابل حمل می باشد به معنای قابلیت استفاده از HDFS بر روی تنوع زیاد ماشین ها می باشد.

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

وجود تنها یک NameNode در HDFS بسیاری از کارها را ساده تر کرده است. مثلا NameNode وظیفه نگهداری تمامی متاداده ها را دارد. سیستم به گونه ای طراحی شده است که داده های کاربر هیچگاه به سمت NameNode روانه نمی شود.

حتما مطالب بعدی در این زمینه را پیگیری کنید.

مطالعه قسمت اول مطلب سیستم فایل HDFS

مطالعه قسمت دوم مطلب سیستم فایل HDFS

مطالعه قسمت سوم مطلب سیستم فایل HDFS

مطالعه قسمت آخر مطلب سیستم فایل HDFS

۲ دیدگاه ها

ارسال دیدگاه

اجرا شده توسط: همیار وردپرس