Megosztás a következőn keresztül:


Az Azure HDInsight által támogatott magas rendelkezésre állású szolgáltatások

Annak érdekében, hogy optimális rendelkezésre állási szinteket biztosíthasson az elemzési összetevők számára, a HDInsight egy egyedi architektúrával lett kifejlesztve, amely biztosítja a kritikus szolgáltatások magas rendelkezésre állását (HA). A Microsoft ennek az architektúrának néhány összetevőjét fejlesztette ki az automatikus feladatátvétel biztosításához. Más összetevők szabványos Apache-összetevők, amelyek bizonyos szolgáltatások támogatására vannak üzembe helyezve. Ez a cikk bemutatja a HDInsight HA szolgáltatásmodelljének architektúráját, azt, hogy a HDInsight hogyan támogatja a HA-szolgáltatások feladatátvételét, valamint az egyéb szolgáltatáskimaradások utáni helyreállítás ajánlott eljárásait.

Feljegyzés

Ebben a cikkben szerepel a slave (alárendelt) kifejezés, amelyet a Microsoft már nem használ. Ha a kifejezés el lesz távolítva a szoftverből, eltávolítjuk ebből a cikkből.

Magas rendelkezésre állású infrastruktúra

A HDInsight testre szabott infrastruktúrát biztosít annak biztosítására, hogy négy elsődleges szolgáltatás magas rendelkezésre állású legyen automatikus feladatátvételi képességekkel:

  • Apache Ambari-kiszolgáló
  • Application Timeline Server for Apache YARN
  • A Hadoop MapReduce feladatelőzmény-kiszolgálója
  • Apache Livy

Ez az infrastruktúra számos szolgáltatásból és szoftverösszetevőből áll, amelyek némelyikét a Microsoft tervezte. A HDInsight platformon a következő összetevők egyediek:

  • Slave feladatátvételi vezérlő
  • Fő feladatátvételi vezérlő
  • Magas rendelkezésre állású rabszolga-szolgáltatás
  • Fő magas rendelkezésre állású szolgáltatás

high availability infrastructure.

Vannak más magas rendelkezésre állású szolgáltatások is, amelyeket nyílt forráskódú Apache megbízhatósági összetevők támogatnak. Ezek az összetevők HDInsight-fürtökön is megtalálhatók:

  • Hadoop fájlrendszer (HDFS) NameNode
  • YARN ResourceManager
  • HBase-főkiszolgáló

A következő szakaszok részletesebben ismertetik, hogyan működnek együtt ezek a szolgáltatások.

HDInsight magas rendelkezésre állású szolgáltatások

A Microsoft a HDInsight-fürtökben az alábbi táblázatban szereplő négy Apache-szolgáltatáshoz nyújt támogatást. Ha meg szeretné különböztetni őket az Apache összetevői által támogatott magas rendelkezésre állású szolgáltatásoktól, HDInsight HA-szolgáltatásoknak nevezzük őket.

Szolgáltatás Fürtcsomópontok Fürttípusok Cél
Apache Ambari-kiszolgáló Aktív átjárócsomópont Mind Figyeli és kezeli a fürtöt.
Application Timeline Server for Apache YARN Aktív átjárócsomópont Kafka kivételével minden A fürtön futó YARN-feladatok hibakeresési információit tartja karban.
A Hadoop MapReduce feladatelőzmény-kiszolgálója Aktív átjárócsomópont Kafka kivételével minden A MapReduce-feladatok hibakeresési adatainak karbantartása.
Apache Livy Aktív átjárócsomópont Spark Egyszerű interakciót tesz lehetővé a Spark-fürttel REST-felületen

Feljegyzés

A HDInsight Enterprise Security Package (ESP) fürtök jelenleg csak az Ambari-kiszolgáló magas rendelkezésre állását biztosítják. Az alkalmazás idővonal-kiszolgálója, a feladatelőzmény-kiszolgáló és a Livy mind csak a headnode0-on futnak, és az Ambari feladatátvételekor nem végzik el a feladatátvételt a headnode1-be. Az alkalmazás idővonal-adatbázisa szintén a headnode0-on található, és nem az Ambari SQL-kiszolgálón.

Architektúra

Minden HDInsight-fürtnek két átjárócsomópontja van aktív és készenléti módban. A HDInsight HA-szolgáltatások csak fejcsomóponton futnak. Ezeknek a szolgáltatásoknak mindig az aktív átjárócsomóponton kell futniuk, le kell állniuk, és karbantartási módban kell lenniük a készenléti átjárócsomóponton.

A HA-szolgáltatások megfelelő állapotának fenntartása és a gyors feladatátvétel biztosítása érdekében a HDInsight az Apache ZooKeepert használja, amely az elosztott alkalmazások koordinációs szolgáltatása, hogy aktív fejcsomópont-választást végezzen. A HDInsight emellett néhány háttér Java-folyamatot is kiépít, amelyek koordinálják a HDInsight HA-szolgáltatások feladatátvételi eljárását. Ezek a szolgáltatások a következők: a fő feladatátvételi vezérlő, a rabszolga feladatátvételi vezérlő, a master-ha-service és a slave-ha-service.

Apache ZooKeeper

Az Apache ZooKeeper egy nagy teljesítményű koordinációs szolgáltatás elosztott alkalmazásokhoz. Éles környezetben a ZooKeeper általában replikált módban fut, ahol a ZooKeeper-kiszolgáló replikált csoportja kvórumot alkot. Minden HDInsight-fürt három ZooKeeper-csomópontot biztosít, amelyek lehetővé teszik három ZooKeeper-kiszolgáló kvórumának kialakítását. A HDInsight két ZooKeeper kvórummal rendelkezik, amely párhuzamosan fut egymással. Egy kvórum dönti el az aktív átjárócsomópontot egy olyan fürtben, amelyen a HDInsight HA-szolgáltatásoknak futniuk kell. Egy másik kvórum az Apache által biztosított HA-szolgáltatások koordinálására szolgál, a későbbi szakaszokban leírtak szerint.

Slave feladatátvételi vezérlő

A rabszolga feladatátvételi vezérlő egy HDInsight-fürt minden csomópontján fut. Ez a vezérlő felelős az Ambari-ügynök és a slave-ha-service elindításáért minden csomóponton. Rendszeresen lekérdezi az első ZooKeeper kvórumot az aktív fejcsomópontról. Amikor az aktív és a készenléti átjárócsomópont megváltozik, a rabszolga feladatátvételi vezérlő a következő lépéseket hajtja végre:

  1. Frissítések a gazdagép konfigurációs fájlját.
  2. Újraindítja az Ambari-ügynököt.

A slave-ha-service felelős a HDInsight HA-szolgáltatások leállításáért (az Ambari-kiszolgáló kivételével) a készenléti átjárócsomóponton.

Fő feladatátvételi vezérlő

A fő feladatátvételi vezérlő mindkét átjárócsomóponton fut. Mindkét fő feladatátvételi vezérlő kommunikál az első ZooKeeper kvórumával, hogy az aktív átjárócsomópontként jelölje ki az általuk futtatott átjárócsomópontot.

Ha például a 0 főcsomópont feladatátvételi vezérlője nyeri a választást, a következő változások történnek:

  1. A headnode 0 aktívvá válik.
  2. A fő feladatátvételi vezérlő elindítja az Ambari-kiszolgálót és a master-ha-szolgáltatást a 0-s headnode-on.
  3. A másik fő feladatátvételi vezérlő leállítja az Ambari-kiszolgálót és a master-ha-szolgáltatást az 1. átjárócsomóponton.

A master-ha szolgáltatás csak az aktív átjárócsomóponton fut, leállítja a HDInsight HA-szolgáltatásokat (az Ambari-kiszolgáló kivételével) a készenléti átjárócsomóponton, és aktív átjárócsomóponton indítja el őket.

A feladatátvételi folyamat

failover process.

Az állapotfigyelő minden fejcsomóponton fut a fő feladatátvételi vezérlővel együtt, hogy szívverési értesítéseket küldjön a Zookeeper kvórumának. Ebben a forgatókönyvben a headnode ha-szolgáltatásnak minősül. Az állapotfigyelő ellenőrzi, hogy minden magas rendelkezésre állású szolgáltatás kifogástalan állapotban van-e, és készen áll-e a vezetőségi választásokon való csatlakozásra. Ha igen, ez a fejcsomópont versenyez a választásokon. Ha nem, akkor kilép a választásból, amíg újra készen nem áll.

Ha a készenléti átjárócsomópont valaha is eléri a vezetést, és aktívvá válik (például az előző aktív csomópont meghibásodása esetén), a fő feladatátvételi vezérlő elindítja rajta az összes HDInsight HA szolgáltatást. A fő feladatátvételi vezérlő leállítja ezeket a szolgáltatásokat a másik átjárócsomóponton.

A HDInsight HA szolgáltatáshibái, például a szolgáltatás leállása vagy nem megfelelő állapota esetén a fő feladatátvételi vezérlőnek automatikusan újra kell indítania vagy le kell állítania a szolgáltatásokat a főcsomópont állapota szerint. A felhasználók nem indíthatják el manuálisan a HDInsight HA-szolgáltatásokat mindkét fő csomóponton. Ehelyett engedélyezze az automatikus vagy manuális feladatátvételt a szolgáltatás helyreállításához.

Véletlen manuális beavatkozás

A HDInsight HA-szolgáltatások csak az aktív átjárócsomóponton futhatnak, és szükség esetén automatikusan újraindulnak. Mivel az egyes HA-szolgáltatásoknak nincs saját állapotfigyelőjük, a feladatátvétel nem indítható el az adott szolgáltatás szintjén. A feladatátvétel a csomópont szintjén van biztosítva, és nem a szolgáltatás szintjén.

Néhány ismert probléma

  • Ha manuálisan indít el egy HA-szolgáltatást a készenléti átjárócsomóponton, a következő feladatátvételig nem áll le. Ha a HA-szolgáltatások mindkét fejcsomóponton futnak, néhány lehetséges probléma a következő lehet: Az Ambari felhasználói felülete nem érhető el, az Ambari hibát jelez, a YARN, a Spark és az Oozie-feladatok elakadhatnak.

  • Ha egy HA-szolgáltatás az aktív átjárócsomóponton leáll, a következő feladatátvételig vagy a fő feladatátvételi vezérlő/master-ha-service újraindításáig nem indul újra. Ha egy vagy több HA-szolgáltatás leáll az aktív átjárócsomóponton, különösen ha az Ambari-kiszolgáló leáll, az Ambari felhasználói felülete nem érhető el, más lehetséges problémák közé tartoznak a YARN, a Spark és az Oozie feladathibái.

Apache magas rendelkezésre állású szolgáltatások

Az Apache magas rendelkezésre állást biztosít a HDFS NameNode, a YARN ResourceManager és a HBase Master számára, amelyek HDInsight-fürtökben is elérhetők. A HDInsight HA szolgáltatásokkal ellentétben az ESP-fürtök támogatják őket. Az Apache HA-szolgáltatások kommunikálnak a második ZooKeeper kvórummal (a fenti szakaszban leírtak szerint) az aktív/készenléti állapotok megválasztásához és az automatikus feladatátvétel végrehajtásához. A következő szakaszok részletesen ismertetik a szolgáltatások működését.

Hadoop Distributed File System (HDFS) NameNode

Az Apache Hadoop 2.0-s vagy újabb verzióján alapuló HDInsight-fürtök magas rendelkezésre állást biztosítanak a NameNode számára. Az átjárócsomóponton két névcsomópont fut, amelyek automatikus feladatátvételre vannak konfigurálva. A Névcsomópont a ZKFailoverController használatával kommunikál a Zookeeperrel az aktív/készenléti állapot választásához. A ZKFailoverController mindkét átjárócsomóponton fut, és ugyanúgy működik, mint a fő feladatátvételi vezérlő.

A második Zookeeper kvórum független az első kvórumtól, ezért előfordulhat, hogy az aktív névcsomópont nem fut az aktív fejcsomóponton. Ha az aktív névcsomópont halott vagy nem megfelelő állapotú, a készenléti névcsomópont nyeri a választást, és aktívvá válik.

YARN ResourceManager

Az Apache Hadoop 2.4-en vagy újabb verzión alapuló HDInsight-fürtök támogatják a YARN ResourceManager magas rendelkezésre állását. Két ResourceManagers, rm1 és rm2 fut a headnode 0 és headnode 1. A NameNode-hoz hasonlóan a YARN ResourceManager is konfigurálva van az automatikus feladatátvételhez. Egy másik ResourceManager automatikusan aktívnak lesz választva, amikor az aktuális aktív ResourceManager leáll vagy nem válaszol.

A YARN ResourceManager a beágyazott ActiveStandbyElectort használja hibaérzékelőként és vezető választóként. A HDFS NameNode-nal ellentétben a YARN ResourceManagernek nincs szüksége külön ZKFC démonra. Az aktív ResourceManager az állapotait az Apache Zookeeperbe írja.

A YARN ResourceManager magas rendelkezésre állása független a NameNode és más HDInsight HA-szolgáltatásoktól. Előfordulhat, hogy az aktív ResourceManager nem fut az aktív átjárócsomóponton vagy azon a fejcsomóponton, amelyen az aktív NameNode fut. További információ a YARN ResourceManager magas rendelkezésre állásáról: ResourceManager High Availability.

HBase-főkiszolgáló

A HDInsight HBase-fürtök támogatják a HBase Főkiszolgáló magas rendelkezésre állását. A többi ha-szolgáltatástól eltérően, amelyek fejcsomópontokon futnak, a HBase-főkiszolgálók a három Zookeeper-csomóponton futnak, ahol az egyik az aktív főkiszolgáló, a másik kettő pedig készenléti. A Névcsomóponthoz hasonlóan a HBase-főkiszolgáló az Apache Zookeeperrel koordinálja a vezetőválasztást, és automatikus feladatátvételt végez, ha az aktuális aktív főkiszolgáló problémái vannak. Egyszerre csak egy aktív HBase-főkiszolgáló létezik.

Következő lépések