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
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:
- Frissítések a gazdagép konfigurációs fájlját.
- Ú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:
- A headnode 0 aktívvá válik.
- 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.
- 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
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.