Azure HDInsight tarafından desteklenen yüksek kullanılabilirlik hizmetleri

HdInsight, analiz bileşenleriniz için en iyi kullanılabilirlik düzeylerini sağlamak amacıyla, kritik hizmetlerin yüksek kullanılabilirliğini (HA) sağlamaya yönelik benzersiz bir mimariyle geliştirilmiştir. Microsoft, otomatik yük devretme sağlamak için bu mimarinin bazı bileşenlerini geliştirdi. Diğer bileşenler, belirli hizmetleri desteklemek için dağıtılan standart Apache bileşenleridir. Bu makalede HDInsight'ta HA hizmet modelinin mimarisi, HDInsight'ın HA hizmetleri için yük devretmeyi nasıl desteklediği ve diğer hizmet kesintilerinden kurtulmaya yönelik en iyi yöntemler açıklanır.

Not

Bu makalede, Microsoft'un artık kullanmadığı köle terimi geçmektedir. Terim yazılımdan kaldırıldığında, bu makaleden kaldıracağız.

Yüksek kullanılabilirlik altyapısı

HDInsight, otomatik yük devretme özellikleriyle dört birincil hizmetin yüksek kullanılabilirlik elde etmesini sağlamak için özelleştirilmiş altyapı sağlar:

  • Apache Ambari sunucusu
  • Apache YARN için Uygulama Zaman Çizelgesi Sunucusu
  • Hadoop MapReduce için İş Geçmişi Sunucusu
  • Apache Livy

Bu altyapı, bazıları Microsoft tarafından tasarlanan birçok hizmet ve yazılım bileşeninden oluşur. Aşağıdaki bileşenler HDInsight platformu için benzersizdir:

  • Bağımlı yük devretme denetleyicisi
  • Ana yük devretme denetleyicisi
  • Bağımlı yüksek kullanılabilirlik hizmeti
  • Ana yüksek kullanılabilirlik hizmeti

high availability infrastructure.

Açık kaynak Apache güvenilirlik bileşenleri tarafından desteklenen başka yüksek kullanılabilirlik hizmetleri de vardır. Bu bileşenler HDInsight kümelerinde de bulunur:

  • Hadoop Dosya Sistemi (HDFS) NameNode
  • YARN ResourceManager
  • HBase Ana Şablonu

Aşağıdaki bölümlerde bu hizmetlerin birlikte nasıl çalıştığı hakkında daha fazla ayrıntı sağlanır.

HDInsight yüksek kullanılabilirlik hizmetleri

Microsoft, HDInsight kümelerinde aşağıdaki tabloda yer alan dört Apache hizmeti için destek sağlar. Bunları Apache bileşenleri tarafından desteklenen yüksek kullanılabilirlik hizmetlerinden ayırmak için HDInsight HA hizmetleri olarak adlandırılır.

Hizmet Küme düğümleri Küme türleri Purpose
Apache Ambari sunucusu Etkin baş düğüm Tümünü Kümeyi izler ve yönetir.
Apache YARN için Uygulama Zaman Çizelgesi Sunucusu Etkin baş düğüm Kafka dışında tümü Kümede çalışan YARN işleri hakkında hata ayıklama bilgilerini korur.
Hadoop MapReduce için İş Geçmişi Sunucusu Etkin baş düğüm Kafka dışında tümü MapReduce işleri için hata ayıklama verilerini korur.
Apache Livy Etkin baş düğüm Spark REST arabirimi üzerinden Spark kümesiyle kolay etkileşime olanak tanır

Not

HDInsight Kurumsal Güvenlik Paketi (ESP) kümeleri şu anda yalnızca Ambari sunucusuna yüksek kullanılabilirlik sağlar. Uygulama Zaman Çizelgesi Sunucusu, İş Geçmişi Sunucusu ve Livy'nin tümü yalnızca headnode0 üzerinde çalışır ve Ambari yük devretmesi sırasında headnode1'e yük devretmez. Uygulama zaman çizelgesi veritabanı da Ambari SQL sunucusunda değil headnode0 üzerindedir.

Mimari

Her HDInsight kümesinin etkin ve bekleme modlarında sırasıyla iki baş düğüm vardır. HDInsight HA hizmetleri yalnızca baş düğümlerde çalışır. Bu hizmetler her zaman etkin baş düğümde çalışıyor olmalı ve durdurulup bekleme baş düğümünde bakım moduna alınmalıdır.

HDInsight, HA hizmetlerinin doğru durumlarını korumak ve hızlı bir yük devretme sağlamak için, dağıtılmış uygulamalar için bir koordinasyon hizmeti olan Apache ZooKeeper'ı kullanarak etkin baş düğüm seçimi yapar. HDInsight, HDInsight HA hizmetleri için yük devretme yordamını koordine eden birkaç arka plan Java işlemi de sağlar. Bu hizmetler şunlardır: ana yük devretme denetleyicisi, bağımlı yük devretme denetleyicisi, master-ha-service ve slave-ha-service.

Apache ZooKeeper

Apache ZooKeeper, dağıtılmış uygulamalar için yüksek performanslı bir koordinasyon hizmetidir. Üretimde ZooKeeper genellikle çoğaltılmış bir ZooKeeper sunucusu grubunun çekirdek oluşturacağı çoğaltılmış modda çalışır. Her HDInsight kümesinin üç ZooKeeper sunucusuna çekirdek oluşturma izni veren üç ZooKeeper düğümü vardır. HDInsight'ta birbiriyle paralel çalışan iki ZooKeeper çekirdeği vardır. HdInsight HA hizmetlerinin çalışması gereken kümedeki etkin baş düğüme bir çekirdek karar verir. Sonraki bölümlerde açıklandığı gibi Apache tarafından sağlanan HA hizmetlerini koordine etmek için başka bir çekirdek kullanılır.

Bağımlı yük devretme denetleyicisi

Bağımlı yük devretme denetleyicisi bir HDInsight kümesindeki her düğümde çalışır. Bu denetleyici, her düğümde Ambari aracısını ve slave-ha-service hizmetini başlatmakla sorumludur. Etkin baş düğüm hakkındaki ilk ZooKeeper çekirdeğini düzenli aralıklarla sorgular. Etkin ve bekleme baş düğümleri değiştiğinde, bağımlı yük devretme denetleyicisi aşağıdaki adımları gerçekleştirir:

  1. Konak yapılandırma dosyasını Güncelleştirmeler.
  2. Ambari aracıyı yeniden başlatır.

Slave-ha-service, hazır bekleyen baş düğümde HDInsight HA hizmetlerini (Ambari sunucusu hariç) durdurmakla sorumludur.

Ana yük devretme denetleyicisi

Ana yük devretme denetleyicisi her iki baş düğümde de çalışır. Her iki ana yük devretme denetleyicisi de üzerinde çalıştıkları baş düğümü etkin baş düğüm olarak göstermek için ilk ZooKeeper çekirdeğiyle iletişim kurar.

Örneğin, headnode 0 üzerindeki ana yük devretme denetleyicisi seçimi kazanırsa aşağıdaki değişiklikler gerçekleşir:

  1. Baş düğüm 0 etkin hale gelir.
  2. Ana yük devretme denetleyicisi, headnode 0'da Ambari sunucusunu ve master-ha-service'i başlatır.
  3. Diğer ana yük devretme denetleyicisi Ambari sunucusunu ve headnode 1'de master-ha-service'i durdurur.

Master-ha-service yalnızca etkin baş düğümde çalışır, hdInsight HA hizmetlerini (Ambari sunucusu hariç) bekleme baş düğümünde durdurur ve etkin baş düğümde başlatır.

Yük devretme işlemi

failover process.

Sistem durumu izleyicisi, Zookeeper çekirdeğine sinyal bildirimleri göndermek için ana yük devretme denetleyicisiyle birlikte her baş düğümde çalışır. Baş düğüm, bu senaryoda bir HA hizmeti olarak kabul edilir. Sistem durumu izleyicisi, her yüksek kullanılabilirlik hizmetinin iyi durumda olup olmadığını ve liderlik seçimlerine katılmaya hazır olup olmadığını denetler. Evet ise, bu baş düğüm seçimde yarışıyor. Aksi takdirde, yeniden hazır olana kadar seçimden vazgeçer.

Bekleme baş düğümü liderliğe ulaşırsa ve etkin hale gelirse (örneğin, önceki etkin düğümde bir hata olması durumunda), ana yük devretme denetleyicisi üzerinde tüm HDInsight HA hizmetlerini başlatır. Ana yük devretme denetleyicisi bu hizmetleri diğer baş düğümde durdurur.

HdInsight HA hizmeti hataları için( örneğin bir hizmetin devre dışı olması veya iyi durumda olması) için ana yük devretme denetleyicisinin baş düğüm durumuna göre hizmetleri otomatik olarak yeniden başlatması veya durdurması gerekir. Kullanıcılar her iki baş düğümde de HDInsight HA hizmetlerini el ile başlatmamalıdır. Bunun yerine, hizmetin kurtarılması için otomatik veya el ile yük devretmeye izin verin.

Yanlışlıkla el ile müdahale

HDInsight HA hizmetleri yalnızca etkin baş düğümde çalıştırılmalıdır ve gerektiğinde otomatik olarak yeniden başlatılır. Tek tek HA hizmetlerinin kendi sistem durumu izleyicisi olmadığından, yük devretme tek tek hizmet düzeyinde tetiklenemez. Yük devretme, hizmet düzeyinde değil düğüm düzeyinde sağlanır.

Bilinen bazı sorunlar

  • Hazır bekleyen baş düğümde bir HA hizmetini el ile başlatırken, sonraki yük devretme gerçekleşene kadar durmaz. HA hizmetleri her iki baş düğümde de çalışırken olası bazı sorunlar şunlardır: Ambari kullanıcı arabirimine erişilemez, Ambari hata oluşturur, YARN, Spark ve Oozie işleri takılabilir.

  • Etkin baş düğümdeki bir HA hizmeti durduğunda, sonraki yük devretme gerçekleşene veya ana yük devretme denetleyicisi/master-ha-service yeniden başlatılana kadar yeniden başlatılmaz. Özellikle Ambari sunucusu durduğunda etkin baş düğümde bir veya daha fazla HA hizmeti durduğunda Ambari kullanıcı arabirimine erişilemez, diğer olası sorunlar YARN, Spark ve Oozie işleri hatalarıdır.

Apache yüksek kullanılabilirlik hizmetleri

Apache HDInsight kümelerinde de kullanılabilen HDFS NameNode, YARN ResourceManager ve HBase Master için yüksek kullanılabilirlik sağlar. HDInsight HA hizmetlerinden farklı olarak, ESP kümelerinde desteklenir. Apache HA hizmetleri, etkin/bekleme durumlarını seçmek ve otomatik yük devretme gerçekleştirmek için ikinci ZooKeeper çekirdeğiyle (yukarıdaki bölümde açıklanmıştır) iletişim kurar. Aşağıdaki bölümlerde bu hizmetlerin nasıl çalıştığı ayrıntılı olarak anlatlenmektedir.

Hadoop Dağıtılmış Dosya Sistemi (HDFS) AdıNode

Apache Hadoop 2.0 veya üzerini temel alan HDInsight kümeleri NameNode yüksek kullanılabilirlik sağlar. Baş düğümlerde çalışan ve otomatik yük devretme için yapılandırılan iki NameNodes vardır. NameNodes, etkin/bekleme durumunu seçmek üzere Zookeeper ile iletişim kurmak için ZKFailoverController kullanır. ZKFailoverController her iki baş düğümde de çalışır ve ana yük devretme denetleyicisiyle aynı şekilde çalışır.

İkinci Zookeeper çekirdeği ilk çekirdeklerden bağımsızdır, bu nedenle etkin NameNode etkin baş düğümde çalışmayabilir. Etkin NameNode ölü veya iyi durumda olmadığında, bekleyen NameNode seçimi kazanır ve etkin hale gelir.

YARN ResourceManager

Apache Hadoop 2.4 veya üzerini temel alan HDInsight kümeleri, YARN ResourceManager yüksek kullanılabilirliğini destekler. Sırasıyla baş düğüm 0 ve baş düğüm 1 üzerinde çalışan iki ResourceManager vardır: rm1 ve rm2. NameNode gibi YARN ResourceManager da otomatik yük devretme için yapılandırılır. Geçerli etkin ResourceManager kapandığında veya yanıt vermediğinde başka bir ResourceManager otomatik olarak etkin olacak şekilde seçilir.

YARN ResourceManager, ekli ActiveStandbyElector'ını hata algılayıcısı ve öncü seçici olarak kullanır. HDFS NameNode'un aksine YARN ResourceManager'ın ayrı bir ZKFC daemon'a ihtiyacı yoktur. Etkin ResourceManager durumlarını Apache Zookeeper'a yazar.

YARN ResourceManager'ın yüksek kullanılabilirliği NameNode ve diğer HDInsight HA hizmetlerinden bağımsızdır. Etkin ResourceManager etkin baş düğümde veya etkin NameNode'un çalıştığı baş düğümde çalışmayabilir. YARN ResourceManager yüksek kullanılabilirliği hakkında daha fazla bilgi için bkz . ResourceManager Yüksek Kullanılabilirliği.

HBase Ana Şablonu

HDInsight HBase kümeleri HBase Master yüksek kullanılabilirliğini destekler. Baş düğümlerde çalışan diğer HA hizmetlerinden farklı olarak, HBase Ana Kümeleri üç Zookeeper düğümünde çalışır; bunlardan biri etkin ana düğüm, diğer ikisi de beklemededir. NameNode gibi HBase Master da öncü seçimi için Apache Zookeeper ile eşgüdümlü çalışır ve geçerli etkin ana yöneticinin sorunları olduğunda otomatik yük devretme yapar. Herhangi bir anda yalnızca bir etkin HBase Ana Şablonu vardır.

Sonraki adımlar