Helyszíni Apache Hadoop-fürtök migrálása az Azure HDInsightba

Ez a cikk az Azure HDInsight-rendszerek adattárolására vonatkozó javaslatokat nyújt. Ez egy sorozat része, amely ajánlott eljárásokat nyújt a helyszíni Apache Hadoop-rendszerek Azure HDInsightba való migrálásához.

A HDInsight-fürtök megfelelő tárolási rendszerének kiválasztása

A helyszíni Apache Hadoop Fájlrendszer (HDFS) címtárstruktúra újra létrehozható az Azure Blob Storage-ban vagy az Azure Data Lake Storage-ban. Ezután biztonságosan törölheti a számításhoz használt HDInsight-fürtöket a felhasználói adatok elvesztése nélkül. Mindkét szolgáltatás használható alapértelmezett fájlrendszerként és egy HDInsight-fürt további fájlrendszereként is. A HDInsight-fürtöt és a tárfiókot ugyanabban a régióban kell üzemeltetni.

Azure Storage

A HDInsight-fürtök az Azure Storage blobtárolót használhatják alapértelmezett fájlrendszerként vagy további fájlrendszerként. A Standard szintű tárfiók HDInsight-fürtökhöz használható. A Premier szint nem támogatott. Az alapértelmezett Blob-tároló a fürtre jellemző információkat, például a feladatelőzményeket és a naplókat tárolja. Egy blobtároló megosztása több fürt alapértelmezett fájlrendszereként nem támogatott.

A létrehozási folyamat során definiált tárfiókok és a hozzájuk tartozó kulcsok a fürtcsomópontokon vannak tárolva %HADOOP_HOME%/conf/core-site.xml . Az Ambari felhasználói felületén a HDFS-konfiguráció "Egyéni magwebhely" szakaszában is elérhetők. A tárfiókkulcs alapértelmezés szerint titkosítva van, és a rendszer egy egyéni visszafejtési szkripttel fejti vissza a kulcsokat, mielőtt továbbadja őket a Hadoop démonoknak. Az olyan feladatok, mint a Hive, a MapReduce, a Hadoop streamelése és a Pig, tartalmazzák a tárfiókok és metaadatok leírását.

Az Azure Storage georeplikált. Bár a georeplikálás földrajzi helyreállítást és adatredundanciát biztosít, a georeplikált helyre történő feladatátvétel súlyosan befolyásolja a teljesítményt, és további költségekkel járhat. A javaslat az, hogy okosan válassza ki a georeplikálást, és csak akkor, ha az adatok értéke megéri a további költségeket.

Az alábbi formátumok egyike használható az Azure Storage-ban tárolt adatok eléréséhez:

Adatelérési formátum Leírás
wasb:/// Az alapértelmezett tároló elérése titkosítatlan kommunikációval.
wasbs:/// Az alapértelmezett tároló elérése titkosított kommunikációval.
wasb://<container-name>@<account-name>.blob.core.windows.net/ Nem alapértelmezett tárfiókkal való kommunikációhoz használható. 

A standard tárfiókok méretezhetőségi céljai az Azure Storage-fiókokra vonatkozó jelenlegi korlátokat sorolják fel. Ha az alkalmazás igényei túllépik egy tárfiók méretezhetőségi céljait, az alkalmazás több tárfiók használatára is létrehozható, majd particionálhatja az adatobjektumokat ezeken a tárfiókokon.

Az Azure Storage Analytics minden tárolási szolgáltatáshoz biztosít metrikákat, az Azure Portal pedig úgy konfigurálható, hogy a diagramokon keresztül megjelenítendő metrikákat gyűjtse össze. Riasztások hozhatók létre, amelyek értesítik a tárolóerőforrás-metrikák küszöbértékeinek elérésekor.

Az Azure Storage helyreállítható törlést biztosít a blobobjektumok számára az adatok helyreállításához, ha azokat egy alkalmazás vagy más tárfiók felhasználója véletlenül módosította vagy törölte.

Blob-pillanatképeket is létrehozhat. A pillanatkép egy adott időpontban készített blob írásvédett verziója, amely lehetővé teszi a blobok biztonsági mentését. A pillanatkép létrehozása után olvasható, másolható vagy törölhető, de nem módosítható.

Megjegyzés:

A helyszíni Hadoop-disztribúciók régebbi verziói esetében, amelyek nem rendelkeznek a "wasbs" tanúsítvánnyal, importálni kell őket a Java megbízhatósági tárolóba.

A következő módszerekkel importálhat tanúsítványokat a Java megbízhatósági tárolóba:

Az Azure Blob TLS/SSL-tanúsítvány letöltése fájlba

echo -n | openssl s_client -connect <storage-account>.blob.core.windows.net:443 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > Azure_Storage.cer

A fenti fájl importálása a Java megbízhatósági tárolójába az összes csomóponton

keytool -import -trustcacerts -keystore /path/to/jre/lib/security/cacerts -storepass changeit -noprompt -alias blobtrust -file Azure_Storage.cer

Ellenőrizze, hogy a hozzáadott tanúsítvány szerepel-e a megbízhatósági tárolóban

keytool -list -v -keystore /path/to/jre/lib/security/cacerts

For more information, see the following articles:

Azure Data Lake Storage Gen1

Az Azure Data Lake Storage Gen1 HDFS- és POSIX-stílusú hozzáférés-vezérlési modellt implementál. Első osztályú integrációt biztosít a Microsoft Entra-azonosítóval a részletes hozzáférés-vezérléshez. Nincs korlátozva az tárolható adatok mérete, illetve a nagymértékben párhuzamos elemzések futtatásának képessége.

For more information, see the following articles:

Azure Data Lake Storage Gen2

Az Azure Data Lake Storage Gen2 a legújabb tárolási ajánlat. Egyesíti az Azure Data Lake Storage Gen1 első generációjának alapvető képességeit egy Hadoop-kompatibilis fájlrendszervégponttal, amely közvetlenül integrálható az Azure Blob Storage-ba. Ez a fejlesztés egyesíti az objektumtárolás skálázási és költségelőnyeit a jellemzően csak a helyszíni fájlrendszerekhez társított megbízhatósággal és teljesítménnyel.

Az Azure Data Lake Storage Gen 2 az Azure Blob Storage-ra épül, és lehetővé teszi az adatokhoz való kapcsolódást fájlrendszer- és objektumtárolási paradigmák használatával. Az Azure Data Lake Storage Gen1 funkciói, például a fájlrendszer szemantikája, a fájlszintű biztonság és a skálázás alacsony költségű, rétegzett tárolással, magas rendelkezésre állási/vészhelyreállítási képességekkel és az Azure Blob Storage nagy SDK-/eszközrendszerével kombinálhatók. A Data Lake Storage Gen2-ben az objektumtárolás minden tulajdonsága megmarad, miközben hozzáadja az elemzési számítási feladatokhoz optimalizált fájlrendszer-felület előnyeit.

A Data Lake Storage Gen2 alapvető funkciója egy hierarchikus névtér hozzáadása a Blob Storage szolgáltatáshoz, amely az objektumokat/fájlokat címtárak hierarchiájába rendezi az adathozzáférés érdekében. A hierarchikus struktúra lehetővé teszi, hogy az olyan műveletek, mint például a címtár átnevezése vagy törlése, egyetlen atomi metaadat-művelet legyen a címtárban, ahelyett, hogy a címtár névelőtagját tartalmazó összes objektumot számba kellene venni és feldolgozni.

A múltban a felhőalapú elemzésnek kompromisszumot kellett kötnie a teljesítmény, a felügyelet és a biztonság területén. Az Azure Data Lake Storage (ADLS) Gen2 fő funkciói a következők:

  • Hadoop-kompatibilis hozzáférés: Az Azure Data Lake Storage Gen2 lehetővé teszi az adatok kezelését és elérését ugyanúgy, mint a Hadoop Elosztott fájlrendszer (HDFS) esetében. Az új ABFS-illesztőprogram az Azure HDInsightban található összes Apache Hadoop-környezetben elérhető. Ez az illesztőprogram lehetővé teszi a Data Lake Storage Gen2-ben tárolt adatok elérését.

  • A POSIX-engedélyek szuperhalmaza: A Data Lake Gen2 biztonsági modellje teljes mértékben támogatja az ACL- és POSIX-engedélyeket, valamint a Data Lake Storage Gen2-hez tartozó további részletességet. Gépház konfigurálhatók rendszergazdai eszközökkel vagy olyan keretrendszereken keresztül, mint a Hive és a Spark.

  • Költséghatékony: A Data Lake Storage Gen2 alacsony költségű tárolási kapacitással és tranzakciókkal rendelkezik. Mivel az adatok a teljes életciklusuk során átállnak, a számlázási díjak úgy változnak, hogy minimalizálják a költségeket olyan beépített funkciókkal, mint az Azure Blob Storage életciklusa.

  • Együttműködik a Blob Storage-eszközökkel, keretrendszerekkel és alkalmazásokkal: a Data Lake Storage Gen2 továbbra is számos olyan eszközzel, keretrendszerrel és alkalmazással dolgozik, amelyek ma már léteznek a Blob Storage-hoz.

  • Optimalizált illesztőprogram: Az Azure Blob Fájlrendszer-illesztőprogram (ABFS) kifejezetten big data-elemzésekhez van optimalizálva. A megfelelő REST API-k a dfs végponton keresztül jelennek meg, dfs.core.windows.net.

Az alábbi formátumok egyike használható az ADLS Gen2-ben tárolt adatok eléréséhez:

  • abfs:///: A fürt alapértelmezett Data Lake Storage-tárolójának elérése.
  • abfs://file_system@account_name.dfs.core.windows.net: Nem alapértelmezett Data Lake Storage-tárterülettel való kommunikációhoz használatos.

Megjegyzés:

A futó fürt elsődleges vagy másodlagos tárfiókjának frissítése az Azure Data Lake Storage Gen2 képességeivel nem támogatott. Ha egy meglévő HDInsight-fürt tárolási típusát a Data Lake Storage Gen2-re szeretné módosítani, újra létre kell hoznia a fürtöt, és ki kell választania egy hierarchikus névtér-kompatibilis tárfiókot.

For more information, see the following articles:

Azure Storage-kulcsok védelme a helyszíni Hadoop-fürtkonfigurációban

A Hadoop konfigurációs fájljaihoz hozzáadott Azure Storage-kulcsok kapcsolatot létesítenek a helyszíni HDFS és az Azure Blob Storage között. Ezek a kulcsok a Hadoop hitelesítőadat-szolgáltatói keretrendszerrel való titkosításával védhetők. A titkosítás után biztonságosan tárolhatók és elérhetők.

A hitelesítő adatok kiépítése:

hadoop credential create fs.azure.account.key.account.blob.core.windows.net -value <storage key> -provider jceks://hdfs@headnode.xx.internal.cloudapp.net/path/to/jceks/file

A fenti szolgáltatói elérési út hozzáadása a core-site.xml fájlhoz vagy az Ambari-konfigurációhoz az egyéni magwebhely alatt:

<property>
    <name>hadoop.security.credential.provider.path</name>
        <value>
        jceks://hdfs@headnode.xx.internal.cloudapp.net/path/to/jceks
        </value>
    <description>Path to interrogate for protected credentials.</description>
</property>

Megjegyzés:

A szolgáltató elérési útja tulajdonság a kulcs fürtszinten történő tárolása helyett a distcp parancssorba is hozzáadható a core-site.xml fájlban az alábbiak szerint:

hadoop distcp -D hadoop.security.credential.provider.path=jceks://hdfs@headnode.xx.internal.cloudapp.net/path/to/jceks /user/user1/ wasb:<//yourcontainer@youraccount.blob.core.windows.net/>user1

Az Azure Storage-adathozzáférés korlátozása SAS használatával

A HDInsight alapértelmezés szerint teljes hozzáféréssel rendelkezik a fürthöz társított Azure Storage-fiókok adataihoz. A blobtároló közös hozzáférésű jogosultságkódjai (SAS) az adatokhoz való hozzáférés korlátozására használhatók, például csak olvasási hozzáférést biztosítanak a felhasználóknak az adatokhoz.

A Pythonnal létrehozott SAS-jogkivonat használata

  1. Nyissa meg a SASToken.py fájlt, és módosítsa a következő értékeket:

    Token tulajdonság Leírás
    policy_name A tárolt házirend létrehozásához használandó név.
    storage_account_name A tárfiók neve.
    storage_account_key A tárfiók kulcsa.
    storage_container_name A tárfiók azon tárolója, amelyhez korlátozni szeretné a hozzáférést.
    example_file_path A tárolóba feltöltött fájl elérési útja.
  2. A SASToken.py fájl rendelkezik az ContainerPermissions.READ + ContainerPermissions.LIST engedélyekkel, és a használati eset alapján módosítható.

  3. Hajtsa végre a szkriptet az alábbiak szerint: python SASToken.py

  4. A szkript befejezésekor a következő szöveghez hasonló SAS-jogkivonat jelenik meg: sr=c&si=policyname&sig=dOAi8CXuz5Fm15EjRUu5dHlOzYNtcK3Afp1xqxniEps%3D&sv=2014-02-14

  5. A megosztott hozzáférésű jogosultságkóddal rendelkező tárolókhoz való hozzáférés korlátozásához adjon hozzá egy egyéni bejegyzést a fürt alapwebhely-konfigurációjába az Ambari HDFS Configs Advanced Custom core-site Add tulajdonság alatt.

  6. Használja a következő értékeket a Kulcs és értékmezőkhöz:

    Kulcs: fs.azure.sas.YOURCONTAINER.YOURACCOUNT.blob.core.windows.netÉrték: A Python-alkalmazás által visszaadott SAS-KULCS a fenti 4. lépésből.

  7. A kulcs és az érték mentéséhez kattintson a Hozzáadás gombra, majd a Mentés gombra a konfiguráció módosításainak mentéséhez. Amikor a rendszer kéri, adja meg a módosítás leírását ("például SAS storage-hozzáférés hozzáadása"), majd kattintson a Mentés gombra.

  8. Az Ambari webes felhasználói felületén válassza a HDFS-t a bal oldali listából, majd válassza a Jobb oldali Szolgáltatásműveletek legördülő listából az Összes érintett újraindítása lehetőséget. Amikor a rendszer kéri, válassza az Összes újraindításának megerősítése lehetőséget.

  9. Ismételje meg ezt a folyamatot a MapReduce2 és a YARN esetében.

Az SAS-jogkivonatok Azure-ban való használatával kapcsolatban három fontos dologra kell emlékezni:

  1. Ha AZ SAS-jogkivonatok "READ + LIST" engedélyekkel jönnek létre, a blobtárolót az adott SAS-jogkivonattal elérő felhasználók nem fognak tudni adatokat írni és törölni. Azok a felhasználók, akik ezzel az SAS-jogkivonattal férnek hozzá a Blob-tárolóhoz, és megpróbálnak egy írási vagy törlési műveletet, a következőhöz hasonló "This request is not authorized to perform this operation"üzenetet kapnak: .

  2. Ha az SAS-jogkivonatok engedélyekkel READ + LIST + WRITE jönnek létre (csak korlátozás DELETE gombra), a parancsok, például hadoop fs -put először egy fájlba írnak \_COPYING\_ , majd megpróbálják átnevezni a fájlt. Ez a HDFS-művelet a copy+delete WASB-hez lesz leképzve. Mivel az DELETE engedély nem lett megadva, a "put" sikertelen lesz. A \_COPYING\_ művelet egy Hadoop-funkció, amelynek célja az egyidejűség szabályozása. Jelenleg nincs mód arra, hogy csak a "DELETE" műveletet korlátozza anélkül, hogy a "WRITE" műveleteket is érintené.

  3. Sajnos a hadoop hitelesítőadat-szolgáltató és a visszafejtési kulcsszolgáltató (ShellDecryptionKeyProvider) jelenleg nem működik az SAS-jogkivonatokkal, ezért jelenleg nem védhető a láthatóságtól.

További információ: Az Azure Storage megosztott hozzáférésű jogosultságkódok használata az adatokhoz való hozzáférés korlátozásához a HDInsightban.

Adattitkosítás és replikáció használata

Az Azure Storage-ba írt összes adat automatikusan titkosítva lesz a Storage Service Encryption (S Standard kiadás) használatával. Az Azure Storage-fiók adatai mindig replikálva lesznek a magas rendelkezésre állás érdekében. Tárfiók létrehozásakor a következő replikációs lehetőségek közül választhat:

Az Azure Storage helyileg redundáns tárolást (LRS) biztosít, de a kritikus adatokat egy másik régióban lévő Azure Storage-fiókba is át kell másolnia a vészhelyreállítási terv igényeihez igazodó gyakorisággal. Az adatok másolásának különböző módjai vannak, például az ADLCopy, a DistCp, az Azure PowerShell vagy az Azure Data Factory. Azt is javasoljuk, hogy a véletlen törlés megakadályozása érdekében kényszerítse ki az Azure Storage-fiók hozzáférési szabályzatát.

For more information, see the following articles:

További Azure Storage-fiókok csatolása fürthöz

A HDInsight létrehozási folyamata során egy Azure Storage-fiók, az Azure Data Lake Storage Gen1 vagy az Azure Data Lake Storage Gen2 lesz az alapértelmezett fájlrendszer. Az alapértelmezett tárfiók mellett további tárfiókok is hozzáadhatók ugyanabból az Azure-előfizetésből vagy különböző Azure-előfizetésekből a fürtlétrehozási folyamat során vagy a fürt létrehozása után.

A további tárfiókok az alábbi módokon vehetők fel:

  • Ambari HDFS Config Advanced Custom core-site Add the storage account name and key Restarting the services
  • Szkriptművelet használata a tárfiók nevének és kulcsának átadásával

Megjegyzés:

Érvényes használati esetekben az Azure-tárterület korlátai az Azure-támogatáshoz küldött kéréssel növelhetők.

További információkért lásd: Add additional storage accounts to HDInsight (További tárfiókok hozzáadása a HDInsighthoz).

Következő lépések

Olvassa el a következő cikket ebben a sorozatban: Ajánlott adatmigrálási eljárások helyszíni azure HDInsight Hadoop-migráláshoz.