اصطلاحات
DataNode در هدوپ
در هدوپ، DataNode یک جزء کلیدی سیستم فایل توزیع شده HDFS (Hadoop Distributed File System) است. وظیفه اصلی DataNode ذخیره سازی واقعی داده ها در گره های مختلف یک خوشه هدوپ است. در مقابل، NameNode مسئول مدیریت متادیتا و هماهنگی بین DataNode ها می باشد.
موارد زیر در تصویر نشان داده شدهاند:
- DataNode: گرهای در خوشه Hadoop که دادهها را ذخیره میکند.
- NameNode: گرهای در خوشه Hadoop که متادیتای مربوط به دادهها را ذخیره میکند.
- Block: واحد ذخیرهسازی دادهها در Hadoop.
- Rack: مجموعهای از DataNodeها که در یک مکان فیزیکی قرار دارند.
نحوه کار DataNode:
- DataNode به طور دورهای با NameNode ارتباط برقرار میکند تا لیستی از بلوکهایی را که باید ذخیره کند، دریافت کند.
- DataNode دادهها را در بلوکها ذخیره میکند.
- DataNode به NameNode گزارش میدهد که کدام بلوکها را ذخیره کرده است.
- NameNode متادیتای مربوط به بلوکها را ذخیره میکند، مانند اینکه کدام DataNodeها کدام بلوکها را ذخیره میکنند.
وظایف DataNode:
- ذخیره دادهها
- گزارشدهی به NameNode
- تکرار بلوکها در صورت خرابی یک DataNode
در اینجا می توان گفت DataNode نقش یک سرور ذخیره سازی محلی را بازی می کند و وظایف زیر را بر عهده دارد:
- دریافت و ذخیره سازی داده ها: هنگامی که برنامه های کاربردی یا ابزارهای مدیریت داده ها اقدام به نوشتن داده در HDFS می کنند، DataNode ها دستور دریافت بلوک های داده (معمولا به اندازه 64 مگابایت) را دریافت کرده و آنها را بر روی دیسک محلی خود ذخیره می کنند.
- حفظ یکپارچگی داده ها: هر DataNode نسخه ای از هر بلوک داده را به صورت تکرار شده (replicated) نگه می دارد تا در صورت خرابی یک گره، داده ها از دست نروند. تعداد تکرارها توسط پیکربندی سیستم تعیین می شود.
- بازیابی داده ها: هنگامی که برنامه های کاربردی نیاز به خواندن داده از HDFS دارند، با NameNode ارتباط برقرار می کنند تا مکان بلوک های داده را بدست آورند. سپس، برنامه به طور مستقیم با DataNode های مربوطه ارتباط برقرار می شود و داده ها را مستقیما از آنها بازیابی می کند.
- گزارش وضعیت: هر DataNode به طور دوره ای گزارش وضعیت خود، از جمله فضای دیسک در دسترس، میزان استفاده از CPU و حافظه، و وضعیت سلامت بلوک های داده را به NameNode ارسال می کند.
ویژگی های DataNode:
- مقیاس پذیری: می توان گره های DataNode بیشتری را به خوشه اضافه کرد تا ظرفیت ذخیره سازی و توان پردازش افزایش یابد.
- مقاومت در برابر خطا: تکرار بلوک های داده باعث می شود که حتی در صورت خرابی یک گره، داده ها همچنان برای خواندن و نوشتن در دسترس باشند.
- مقرون به صرفه: DataNode می تواند بر روی سخت افزار معمولی اجرا شود که به مقرون به صرفه بودن سیستم کمک می کند.
- انعطاف پذیر: DataNode می تواند بر روی سیستم عامل های مختلف (مانند لینوکس، ویندوز) اجرا شود.