‏‏ Apache ZooKeeper یک پروژه نرم‌افزاری از Foundation Software Apache است. یک سرویس متمرکز برای سیستم‌های توزیع‌شده كه براي ذخيره‌سازي key-value سلسله مراتبی ضروري است و برای ارائه خدمات پیکربندی توزیع‌شده، سرویس هماهنگ‌سازی و نامگذاری رجیستری برای سیستم‌های توزیع شده بزرگ استفاده می شود. ZooKeeper زیر پروژه Hadoop بود، اما در حال حاضر یک پروژه آپاچی در سطح بالا است.

‏ZooKeeper توسط شرکت‌هایی مانند Rackspace ،Yahoo، Odnoklassniki، Reddit، NetApp SolidFire و eBay و همچنین سیستم‌های جستجوی سازمانی منبع باز مانند Solr استفاده می‌شود.

‏ZooKeeper در یاهو برای تسهیل فرایندهای در حال اجرا بر روی خوشه عظيم داده ها (Big Data) با ذخیره سازی وضعیت فایل‌های ورودي در سرورهای ZooKeeper توسعه یافت. این سرورها با ماشین‌های كلاينت ارتباط برقرار می‌کنند تا براي آنها اطلاعات را فراهم کند. ZooKeeper به منظور رفع اشکالات رخ داده در هنگام گسترش برنامه های كاربردي عظيم داده‌هاي توزيع‌شده، توسعه داده شد. برخی از ویژگی‌های اصلی Apache ZooKeeper عبارتند از:

سیستم قابل اعتماد: این سیستم بسیار قابل اعتماد است زیرا حتی اگر یک گره نتواند کار کند، سيستم کار خواهد كرد.

معماری ساده: معماری ZooKeeper بسیار ساده است زیرا یک فضای سلسله مراتبی مشترک است که به هماهنگ کردن فرآیندها کمک می‌کند.

پردازش سریع: ZooKeeper در موارد"خواندن غالب" ("read-dominant") (به عنوان مثال حجم کارهایی که در آنها خواندن بسیار شایعتر از رايت است) بسیار سریع است.

مقیاس پذیر: عملکرد ZooKeeper را می‌توان با افزودن گره بهبود داد.

معماری Apache ZooKeeper

معماری ZooKeeper از سرویس‌های اضافی با دسترسي بالا پشتیبانی می‌کند. در صورتی که اولین گره ZooKeeper نتواند پاسخگو باشد كلاينت‌ها می‌توانند از دیگر گره‌هاي ZooKeeper بپرسند. گره‌های ZooKeeper داده‌هاي خود را در یک فضاي سلسله مراتبی ذخیره می‌کنند، كه بسیار شبیه یک سیستم فایل يا یک ساختار treedata است. كلاينت‌ها می‌توانند روي گره‌ها عمليات read&write را انجام دهند و به این ترتیب سرویس پیکربندی مشترکي دارند ZooKeeper .را می‌توان به عنوان یک سیستم پخش اتميك (تجزيه ناپذير) مشاهده کرد که از طریق آن به روزرسانی‌ها کاملا سفارش داده می‌شوند.

اصطلاحات معماري که بهتر با آنها آشنا شويد:

گره : سیستم‌های نصب شده در خوشه

 ‏ ZNode : گره‌هایی که وضعیت توسط دیگر گره‌ها در خوشه به روز می‌شود 

برنامه‌های کاربردی كلاينت : ابزارهایی که با برنامه‌های توزیع شده ارتباط برقرار می‌کنند.

برنامه‌های کاربردی سرور : به برنامه‌های کاربردی كلاينت (سرویس گیرنده) اجازه می‌دهد تا با استفاده از یک رابط مشترک ارتباط برقرار کنند.

خدمات در خوشه بر روی مجموعه‌ای از سرورها (به نام "گروه") تکرار و ذخیره مي‌شوند که هر یک از آنها یک پایگاه داده حافظه حاوی کل درخت داده‌ای وضعيت ، یک ورودی تراكنش و تصويرهاي لحظه‌اي كه را به طور مداوم حفظ مي‌كنند؛ است. برنامه‌های کاربردی كلاينت چند کاربر می‌توانند به یک سرور متصل شوند و هر كلاينت یک اتصال TCP که از طریق آن درخواست‌ها را ارسال و پاسخ‌ها را دریافت می‌کند و رویدادها را براي نظارت تماشا می کند را حفظ می‌کند.