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

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

هدوپ دارای یک فایل سیستم توزیع شده با نام Hadoop Distributed File System) HDFS) می باشد.مفاهیم HDFS بهترین و مهمترین فایل سیستم هدوپ است.

اما قبل از توضیح درباره‌ی HDFS اجازه دهید تا کمی در مورد سیستم فایل توزیع شده توضیح بدهم.

سیستم فایل توزیع‌شده(DFS)

سیستم فایل توزیع‌شده به مدیریت داده‌ها، یعنی فایل‌ها یا پوشه‌های موجود در چندین کامپیوتر یا سرور می‌پردازد. به بیان دیگر، DFS سیستم فایلی است که به ما اجازه می‌دهد داده‌ها را در بیشتر از چندین گره یا ماشین در یک مجموعه ذخیره کنیم و به چندین کاربر اجازه می‌دهد که به داده‌ها دسترسی داشته باشند. بنابراین به طور کلی، یک سیستم فایل توزیع شده اهدافی یکسان با سیستم فایلی که تابحال در اختیار داشتید (برای مثال NTFS در ویندوز، HFS در مک و یا EX4 در لینوکس) را در پیش می‌گیرد. تنها تفاوت این است که، در حالت سیستم فایل توزیع‌شده شما داده را به جای یک دستگاه در چند دستگاه ذخیره می‌کنید. بااینکه فایل‌ها در شبکه ذخیره می‌شوند، DFS داده‌ها را به گونه‌ای سازمان داده و نمایش می‌دهد که کاربری که مشغول کار با دستگاه است حس می‌کند که تمام داده‌ها بصورت واحد و در یک دستگاه ذخیره شده‌اند.

سیستم فایل توزیع شده هدوپ (HDFS)

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

در ابتدا اجازه بدهید مثالی بزنیم تا این مسئله را متوجه شوید. تصور کنید که ۱۰ دستگاه یا ۱۰ کامپیوتر دارید که هر کدام هارد درایوی با ظرفیت ۱ ترابایت دارند. در این حالت، HDFS می‌گوید که اگر شما هدوپ را به عنوان سکویی بروی این ده ماشین نصب کنید، به HDFS به عنوان سرویس ذخیره دسترسی خواهید داشت. سیستم فایل توزیع‌شده‌ی هدوپ بصورتی توزیع شدگی را ایجاد می‌کند که از حافظه‌ی اختصاصی هریک از دستگاه‌ها برای ذخیره‌سازی داده‌ها استفاده می‌کند.

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

مزایای هدوپ

محاسبات توزیع‌شده و موازی:

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

مقیاس‌پذیری افقی:

مزیت دیگری که پروژه هدوپ از آن برخوردار است، مقیاس‌پذیری افقی است. در سیستم فایل‌های توزیع شده به منظور افزایش و یا کاهش ظرفیت ذخیره سازی می‌توان از دو روش مقیاس‌پذیری استفاده کرد: مقیاس‌پذیری عمودی و افقی.

در مقیاس‌پذیری عمودی (scale up)، ظرفیت سخت‌افزاری سیستم را افزایش می‌دهیم. به بیان دیگر، Ram، CPU و یا دیسک بیشتری را به سیستم موجودتان اضافه می‌کنید تا آن را قوی‌تر کنید. اما چالش‌هایی همراه با مقیاس‌پذیری عمودی وجود دارد:

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

ویژگی‌های HDFS

در بخش‌های دیگر با تفصیل بیشتری در مورد ویژگی‌های هدوپ صحبت خواهیم کرد. اما در حال حاضر، بیایید نگاهی اجمالی بر ویژگی‌های HDFS داشته باشیم: