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


Apache Hive-replikáció használata Azure HDInsight-fürtökben

Az adatbázisok és a raktárak kontextusában a replikáció az entitások egyik raktárból a másikba történő duplikálásának folyamata. A duplikáció egy teljes adatbázisra vagy egy kisebb szintre, például egy táblára vagy partícióra is vonatkozhat. A cél egy olyan replika létrehozása, amely az alapentitás változásakor változik. Az Apache Hive replikációja a vészhelyreállításra összpontosít, és egyirányú elsődleges másolási replikációt kínál. HDInsight-fürtökben a Hive-replikáció a Hive metaadattár és a kapcsolódó mögöttes data lake egyirányú replikálására használható az Azure Data Lake Storage Gen2-ben.

A Hive-replikáció az évek során tovább fejlődött, és az újabb verziók jobb funkciókat biztosítanak, és gyorsabbak és kevésbé erőforrás-igényesek. Ebben a cikkben a HIVE-replikációt (Replv2) tárgyaljuk, amelyet a HDInsight 3.6 és a HDInsight 4.0 fürttípusok egyaránt támogatnak.

A replv2 előnyei

A Hive ReplicationV2 (más néven Replv2) az alábbi előnyökkel rendelkezik a Hive-replikáció első verziójával szemben, amely hive IMPORT-EXPORT-t használt:

  • Eseményalapú növekményes replikáció
  • Időponthoz kötött replikáció
  • Csökkentett sávszélesség-követelmények
  • A köztes példányok számának csökkentése
  • A replikáció állapota megmarad
  • Korlátozott replikáció
  • Küllős és küllős modell támogatása
  • ACID-táblák támogatása (a HDInsight 4.0-s verzióban)

Replikációs fázisok

A Hive eseményalapú replikációja az elsődleges és a másodlagos fürtök között van konfigurálva. Ez a replikáció két különböző fázisból áll: a rendszerindításból és a növekményes futtatásokból.

Rendszerindítás

A rendszerindítás célja, hogy egyszer fusson az adatbázisok alapállapotának replikálásához az elsődlegesről a másodlagosra. Szükség esetén konfigurálhatja a rendszerindítást úgy, hogy a táblák egy részét belefoglalja a céladatbázisba, ahol engedélyezni kell a replikációt.

Növekményes futtatások

A rendszerindítás után a növekményes futtatások automatizáltak lesznek az elsődleges fürtön, és a növekményes futtatások során létrehozott események vissza lesznek játszva a másodlagos fürtön. Amikor a másodlagos fürt utoléri az elsődleges fürtöt, a másodlagos összhangban lesz az elsődleges eseményekkel.

Replikációs parancsok

A Hive REPL-parancsokat – DUMPLOADés STATUS – kínál az események folyamatának vezényléséhez. A DUMP parancs létrehoz egy helyi naplót az elsődleges fürt összes DDL/DML-eseményéről. A LOAD parancs a kinyert replikációs memóriakép kimenetére naplózott metaadatok és adatok lusta másolásának és a célfürtön való végrehajtásának módszere. A STATUS parancs a célfürtről fut, és megadja a legutóbbi replikációs terhelés sikeres replikálása legújabb eseményazonosítóját.

Replikációs forrás beállítása

A replikáció megkezdése előtt győződjön meg arról, hogy a replikálni kívánt adatbázis replikációs forrásként van beállítva. A parancs segítségével DESC DATABASE EXTENDED <db_name> megállapíthatja, hogy a paraméter repl.source.for a szabályzat nevével van-e beállítva.

Ha a szabályzat ütemezve van, és a repl.source.for paraméter nincs beállítva, akkor ezt a paramétert először a következővel ALTER DATABASE <db_name> SET DBPROPERTIES ('repl.source.for'='<policy_name>')kell beállítania: .

ALTER DATABASE tpcds_orc SET DBPROPERTIES ('repl.source.for'='replpolicy1') 

Metaadatok memóriaképe a data lake-be

A REPL DUMP [database name]. => location / event_id parancsot a rendszerindítási fázisban használja a releváns metaadatok az Azure Data Lake Storage Gen2-be való memóriaképéhez. Ez event_id adja meg azt a minimális eseményt, amelyre a releváns metaadatok fel lettek helyezve az Azure Data Lake Storage Gen2-ben.

repl dump tpcds_orc; 

Példa a kimenetre:

dump_dir last_repl_id
/tmp/hive/repl/38896729-67d5-41b2-90dc-46eeed4c5dd0 2925

Adatok betöltése a célfürtbe

A REPL LOAD [database name] FROM [ location ] { WITH ( ‘key1’=‘value1’{, ‘key2’=‘value2’} ) } parancs az adatok célfürtbe való betöltésére szolgál mind a rendszerindítás, mind a replikáció növekményes fázisai számára. Ez [database name] lehet ugyanaz, mint a forrás vagy egy másik név a célfürtön. Ez [location] a korábbi REPL DUMP parancs kimenetéből származó helyet jelöli. Ez azt jelenti, hogy a célfürtnek képesnek kell lennie a forrásfürthöz való beszélgetésre. A WITH záradékot elsősorban a célfürt újraindításának megakadályozása érdekében adták hozzá, lehetővé téve a replikációt.

repl load tpcds_orc from '/tmp/hive/repl/38896729-67d5-41b2-90dc-46eeed4c5dd0'; 

Az utolsó replikált eseményazonosító kimenete

A REPL STATUS [database name] parancs a célfürtökön lesz végrehajtva, és az utolsó replikált event_ideredményt adja ki. A parancs lehetővé teszi a felhasználók számára, hogy megtudják, milyen állapotba replikálták a célfürtjüket. A parancs kimenetével létrehozhatja a növekményes replikáció következő REPL DUMP parancsát.

repl status tpcds_orc;

Példa a kimenetre:

last_repl_id
2925

Releváns adatok és metaadatok kiírása a data lake-be

A REPL DUMP [database name] FROM [event-id] { TO [event-id] } { LIMIT [number of events] } parancs a releváns metaadatok és adatok Azure Data Lake Storage-ba való memóriaképére szolgál. Ez a parancs a növekményes fázisban használatos, és a forrásraktáron fut. Ez FROM [event-id] a növekményes fázishoz szükséges, és az érték event-id a parancs célraktáron való futtatásával REPL STATUS [database name] származtatható.

repl dump tpcds_orc from 2925;

Példa a kimenetre:

dump_dir last_repl_id
/tmp/hive/repl/38896729-67d5-41b2-90dc-466466agadd0 2960

Hive replikációs folyamat

A következő lépések a Hive-replikációs folyamat során bekövetkező szekvenciális események.

  1. Győződjön meg arról, hogy a replikálni kívánt táblák egy adott szabályzat replikációs forrásaként vannak beállítva.

  2. A REPL_DUMP parancsot a rendszer az elsődleges fürtnek adja ki az olyan kapcsolódó korlátozásokkal, mint az adatbázis neve, az eseményazonosító tartománya és az Azure Data Lake Storage Gen2 storage URL-címe.

  3. A rendszer szerializálja az összes nyomon követett eseményt a metaadattárból a legújabbba. Ezt a memóriaképet a rendszer az elsődleges fürt Azure Data Lake Storage Gen2-tárfiókjában tárolja a megadott URL-címen REPL_DUMP.

  4. Az elsődleges fürt megőrzi a replikáció metaadatait az elsődleges fürt Azure Data Lake Storage Gen2-tárolójában. Az elérési út konfigurálható az Ambari Hive Config felhasználói felületén. A folyamat megadja a metaadatok tárolásának elérési útját, valamint a legújabb nyomon követett DML/DDL-esemény azonosítóját.

  5. A REPL_LOAD parancsot a másodlagos fürt adja ki. A parancs a 3. lépésben konfigurált útvonalra mutat.

  6. A másodlagos fürt beolvassa a metaadatfájlt a 3. lépésben létrehozott nyomon követett eseményekkel. Győződjön meg arról, hogy a másodlagos fürt hálózati kapcsolattal rendelkezik annak az elsődleges fürtnek az Azure Data Lake Storage Gen2-tárolója felé, ahonnan a nyomon követett események REPL_DUMP tárolódnak.

  7. A másodlagos fürt elosztott másolási (DistCP) számítást készít.

  8. A másodlagos fürt adatokat másol az elsődleges fürt tárolójából.

  9. A másodlagos fürt metaadattára frissül.

  10. Az utolsó nyomon követett eseményazonosító az elsődleges metaadattárban van tárolva.

A növekményes replikáció ugyanazt a folyamatot követi, és bemenetként az utolsó replikált eseményazonosítót igényli. Ez az utolsó replikációs esemény óta növekményes másolathoz vezet. A növekményes replikációkat általában előre meghatározott gyakorisággal automatizálják a szükséges helyreállítási pont-célkitűzések (RPO) elérése érdekében.

Hive replication diagram.

Replikációs minták

A replikáció általában egyirányú módon van konfigurálva az elsődleges és a másodlagos között, ahol az elsődleges szolgáltatás a kérelmek olvasására és írására is képes. A másodlagos fürt csak a kérések olvasását irányítja. Ha katasztrófa történik, írások engedélyezettek a másodlagoson, de a fordított replikációt vissza kell állítani az elsődlegesre.

Hive replication pattern.

A Hive-replikációhoz számos minta használható, beleértve az elsődleges – másodlagos, a küllős és a küllős, valamint a Relay replikációt.

A HDInsight Active Primary – Standby Secondary egy gyakori üzletmenet-folytonossági és vészhelyreállítási (BCDR) minta, és a HiveReplicationV2 ezt a mintát regionálisan elkülönített HDInsight Hadoop-fürtökkel és virtuális hálózatok közötti társviszony-létesítéssel használhatja. A replikációautomatizálási szkriptek üzemeltetéséhez a két fürthöz társviszonyban álló közös virtuális gép használható. A HDInsight BCDR-mintákról további információt a HDInsight üzletmenet-folytonossági dokumentációjában talál.

Hive-replikáció vállalati biztonsági csomaggal

Azokban az esetekben, amikor a Hive-replikációt nagyvállalati biztonsági csomaggal rendelkező HDInsight Hadoop-fürtökön tervezik, a Ranger metaadattár és a Microsoft Entra Domain Services replikációs mechanizmusait kell figyelembe véve végrehajtania.

A Microsoft Entra Domain Services replikakészletek funkciójával több Microsoft Entra Domain Services-replikakészletet hozhat létre Microsoft Entra-bérlőnként több régióban. Minden egyes replikakészletet a saját régiójukban lévő HDInsight virtuális hálózatokkal kell társviszonyba állítani. Ebben a konfigurációban a Microsoft Entra Domain Services módosításai, beleértve a konfigurációt, a felhasználói identitást és a hitelesítő adatokat, a csoportokat, a csoportházirend-objektumokat, a számítógép-objektumokat és egyéb módosításokat a felügyelt tartomány összes replikakészletére alkalmazza a Microsoft Entra Domain Services replikációja használatával.

A Ranger-szabályzatok rendszeres időközönként biztonsági másolatot készíthetnek, és replikálhatók az elsődlegesről a másodlagosra a Ranger Import-Export funkcióval. A Ranger-szabályzatok teljes vagy részhalmazát replikálhatja attól függően, hogy milyen szintű engedélyeket szeretne implementálni a másodlagos fürtön.

Mintakód

Az alábbi kódütemezés bemutatja, hogyan valósítható meg a rendszerindítás és a növekményes replikáció egy úgynevezett tpcds_orcmintatáblán.

  1. Állítsa be a táblát a replikációs szabályzat forrásának.

    ALTER DATABASE tpcds_orc SET DBPROPERTIES ('repl.source.   for'='replpolicy1');
    
  2. Bootstrap-memóriakép az elsődleges fürtben.

    repl dump tpcds_orc with ('hive.repl.rootdir'='/tmpag/hiveag/replag'); 
    

    Példa a kimenetre:

    dump_dir last_repl_id
    /tmpag/hiveag/replag/675d1bea-2361-4cad-bcbf-8680d305a27a 2925
  3. Rendszerindítási terhelés a másodlagos fürtön.

    repl load tpcds_orc from '/tmpag/hiveag/replag 675d1bea-2361-4cad-bcbf-8680d305a27a'; 
    
  4. Ellenőrizze a REPL másodlagos fürt állapotát.

    repl status tpcds_orc; 
    
    last_repl_id
    2925
  5. Növekményes memóriakép az elsődleges fürtben.

    repl dump tpcds_orc from 2925 with ('hive.repl.rootdir'='/tmpag/hiveag/ replag');
    

    Példa a kimenetre:

    dump_dir last_repl_id
    /tmpag/hiveag/replag/31177ff7-a40f-4f67-a613-3b64ebe3bb31 2960
  6. Növekményes terhelés másodlagos fürtön.

    repl load tpcds_orc from '/tmpag/hiveag/replag/31177ff7-a40f-4f67-a613-3b64ebe3bb31';
    
  7. Ellenőrizze REPL az állapotot a másodlagos fürtön.

    repl status tpcds_orc;
    
    last_repl_id
    2960

Következő lépések

A cikkben tárgyalt elemekről a következő témakörben olvashat bővebben: