Apache Storm - Küme Mimarisi
Apache Storm'un en önemli özelliklerinden biri, hataya dayanıklı olması ve “Tek Nokta Arıza” (SPOF) dağıtılmış uygulaması olmayan hızlı olmasıdır. Apache Storm'u uygulamanın kapasitesini artırmak için gerektiği kadar sisteme kurabiliriz.
Apache Storm kümesinin nasıl tasarlandığına ve iç mimarisine bir göz atalım. Aşağıdaki şema, küme tasarımını göstermektedir.
Apache Storm'un iki tür düğümü vardır, Nimbus (ana düğüm) ve Supervisor(çalışan düğümü). Nimbus, Apache Storm'un ana bileşenidir. Nimbus'ın ana görevi, Storm topolojisini çalıştırmaktır. Nimbus, topolojiyi analiz eder ve yürütülecek görevi toplar. Daha sonra, görevi uygun bir süpervizöre dağıtır.
Bir süpervizörün bir veya daha fazla çalışan süreci olacaktır. Süpervizör, görevleri işçi süreçlerine devredecektir. İşçi süreci gerektiği kadar uygulayıcı üretecek ve görevi çalıştıracaktır. Apache Storm, nimbus ve denetleyiciler arasındaki iletişim için dahili bir dağıtılmış mesajlaşma sistemi kullanır.
Bileşenler | Açıklama |
---|---|
Nimbus | Nimbus, Storm kümesinin ana düğümüdür. Kümedeki diğer tüm düğümler olarak adlandırılırworker nodes. Ana düğüm, verilerin tüm çalışan düğümler arasında dağıtılmasından, çalışan düğümlerine görevlerin atanmasından ve arızaların izlenmesinden sorumludur. |
Süpervizör | Nimbus tarafından verilen talimatları izleyen düğümler, Süpervizörler olarak adlandırılır. Birsupervisor birden fazla çalışan sürecine sahiptir ve nimbus tarafından atanan görevleri tamamlamak için çalışan işlemlerini yönetir. |
İşçi süreci | Bir çalışan süreç, belirli bir topolojiyle ilgili görevleri yürütür. Bir çalışan süreç bir görevi kendi başına çalıştırmaz, bunun yerine oluştururexecutorsve onlardan belirli bir görevi yerine getirmelerini ister. Bir çalışan işlemin birden fazla yürütücüsü olacaktır. |
Cellat | Bir yürütücü, bir işçi süreci tarafından ortaya çıkan tek bir iş parçacığından başka bir şey değildir. Bir uygulayıcı, bir veya daha fazla görevi çalıştırır, ancak yalnızca belirli bir ağız veya cıvata için. |
Görev | Bir görev, gerçek veri işlemeyi gerçekleştirir. Yani, bir ağızlık veya bir cıvata. |
ZooKeeper çerçevesi | Apache ZooKeeper, bir küme (düğüm grubu) tarafından kendi aralarında koordinasyon sağlamak ve paylaşılan verileri sağlam senkronizasyon teknikleriyle sürdürmek için kullanılan bir hizmettir. Nimbus durum bilgisizdir, bu nedenle çalışan düğüm durumunu izlemesi ZooKeeper'a bağlıdır. ZooKeeper, süpervizörün nimbus ile etkileşime girmesine yardımcı olur. Nimbus ve süpervizörün durumunu korumakla sorumludur. |
Fırtına, doğası gereği vatansızdır. Vatansız doğanın kendi dezavantajları olsa da, aslında Storm'un gerçek zamanlı verileri mümkün olan en iyi ve en hızlı şekilde işlemesine yardımcı oluyor.
Yine de fırtına tamamen devletsiz değil . Durumunu Apache ZooKeeper'da saklar. Durum Apache ZooKeeper'da mevcut olduğundan, arızalı bir nimbus yeniden başlatılabilir ve kaldığı yerden çalışması sağlanabilir. Genellikle, aşağıdaki gibi hizmet izleme araçlarımonit Nimbus'ı izleyecek ve herhangi bir arıza varsa onu yeniden başlatacaktır.
Apache Storm ayrıca gelişmiş bir topolojiye sahiptir: Trident Topologydurum bakımı ile ve ayrıca Pig gibi yüksek seviyeli bir API sağlar. Tüm bu özellikleri ilerleyen bölümlerde tartışacağız.