Az Azure Storage áttekintése a HDInsightban
Az Azure Storage egy robusztus, általános célú tárolási megoldás, amely zökkenőmentesen integrálható a HDInsighttal. A HDInsight egy blobtárolót használhat az Azure Storage-ben a fürt alapértelmezett fájlrendszereként. A HDFS-felületen keresztül a HDInsight összetevőinek teljes készlete közvetlenül blobként tárolt strukturált vagy strukturálatlan adatokon működhet.
Javasoljuk, hogy az alapértelmezett fürttárolóhoz és az üzleti adatokhoz külön tárolókat használjon. Az elkülönítés célja, hogy elkülönítse a HDInsight-naplókat és az ideiglenes fájlokat a saját üzleti adataitól. Azt is javasoljuk, hogy törölje az alapértelmezett blobtárolót, amely alkalmazás- és rendszernaplókat tartalmaz a tárolási költségek csökkentése érdekében. A tároló törlése előtt gondoskodjon a naplók begyűjtéséről.
Ha úgy dönt, hogy biztonságossá teszi a tárfiókot a kiválasztott hálózatok tűzfalaival és virtuális hálózataival kapcsolatos korlátozásokkal, mindenképpen engedélyezze a kivételt: Megbízható Microsoft-szolgáltatások.... A kivétel az, hogy a HDInsight hozzáfér a tárfiókhoz.
HDInsight tároló-architektúra
Az alábbi ábra az Azure Storage HDInsight-architektúrájának absztrakt nézetét mutatja be:
A HDInsight hozzáférést nyújt a helyileg a számítási csomópontokhoz csatlakozó elosztott fájlrendszerhez. Ez a fájlrendszer a teljes URI használatával érhető el, például:
hdfs://<namenodehost>/<path>
A HDInsighton keresztül az Azure Storage-ban is hozzáférhet az adatokhoz. A szintaxis a következő:
wasb://<containername>@<accountname>.blob.core.windows.net/<path>
Hierarchikus névtérrel (Azure Data Lake Storage Gen2) rendelkező fiókok esetében a szintaxis a következő:
abfs://<containername>@<accountname>.dfs.core.windows.net/<file.path>/
Az Azure Storage-fiók HDInsight-fürtökkel való használatakor vegye figyelembe az alábbi alapelveket:
Fürthöz csatlakozó tárolók a tárfiókokban: Mivel a fiók neve és kulcsa társítva van a fürttel a létrehozás során, teljes hozzáféréssel rendelkezik a tárolókban lévő összes blobhoz.
Nyilvános tárolók vagy nyilvános blobok olyan tárfiókokban, amelyek nem kapcsolódnak fürthöz: Csak olvasási engedéllyel rendelkezik a tárolókban lévő blobokhoz.
Feljegyzés
A nyilvános tárolók segítségével lekérheti az adott tárolóban elérhető összes blob listáját, és lekérheti a tároló metaadatait. A nyilvános blobok esetén csak akkor érheti el a blobokat, ha ismeri a pontos URL-t. További információkért lás a tárolók és blobok névtelen olvasási hozzáférésének kezelésével foglalkozó témakört.
Fürthöz nem csatlakoztatott tárfiókok privát tárolói: A tárolókban lévő blobokat csak akkor érheti el, ha a WebHCat-feladatok elküldésekor definiálja a tárfiókot.
A létrehozási folyamat során meghatározott tárfiókok és a kulcsaik a %HADOOP_HOME%/conf/core-site.xml fájlban találhatók a fürtcsomópontokon. A HDInsight alapértelmezés szerint a core-site.xml fájlban definiált tárfiókokat használja. Ezt a beállítást az Apache Ambari használatával módosíthatja. Az core-site.xml fájlban módosítható vagy elhelyezhető tárfiók-beállításokról az alábbi cikkekben talál további információt:
- Hadoop Azure-támogatás: Azure Blob Storage
- Hadoop Azure-támogatás: ABFS – Azure Data Lake Storage Gen2
Több WebHCat-feladat, köztük az Apache Hive. A MapReduce, az Apache Hadoop streamelése és az Apache Pig pedig a tárfiókok és metaadatok leírását hordozzák. (Ez a szempont jelenleg a tárfiókokkal rendelkező Pig esetében igaz, a metaadatokra azonban nem.) További információ: HDInsight-fürt használata alternatív tárfiókokkal és metaadattárakkal.
A blobok a strukturált és strukturálatlan adatokhoz használhatók. A Blob-tárolók kulcs-érték párként tárolják az adatokat, és nem rendelkeznek címtárhierarchiával. A kulcsnév azonban tartalmazhat perjeljelet (/) annak megjelenítéséhez, hogy a fájl könyvtárszerkezetben legyen tárolva. Egy blob kulcsa input/log1.txt
lehet például . Nincs tényleges input
könyvtár, de a kulcsnév perjel karaktere miatt a kulcs fájlútvonalként néz ki.
Az Azure Storage előnyei
A nem megosztott számítási fürtök és tárolási erőforrások vélelmezett teljesítményköltséggel rendelkeznek. Ezeket a költségeket az csökkenti, hogy a számítási fürtök az Azure-régióban található tárfiók-erőforrások közelében jönnek létre. Ebben a régióban a számítási csomópontok hatékonyan férhetnek hozzá az adatokhoz az Azure Storage nagy sebességű hálózatán keresztül.
Ha HDFS helyett az Azure Storage-ban tárolja az adatokat, számos előnye van:
Adatok újbóli használata és megosztása: A HDFS-ben az adatok a számítási fürtön belül találhatóak. Csak a számítási fürtöt elérő alkalmazások használhatják az adatokat HDFS API-k használatával. Az Azure Storage-ban lévő adatok ezzel szemben a HDFS API-k vagy a Blob Storage REST API-k segítségével érhetők el. Ennek az elrendezésnek köszönhetően az adatok előállításához és felhasználásához több alkalmazás (köztük más HDInsight-fürtök) és eszközök is használhatók.
Adatarchiválás: Ha az adatok tárolása az Azure Storage-ban történik, a számításhoz használt HDInsight-fürtök biztonságosan törölhetők felhasználói adatok elvesztése nélkül.
Adattárolási költség: Az adatok hosszú távú tárolása elosztott fájlrendszerben költségesebb, mint az adatok tárolása az Azure Storage-ban. Mivel egy számítási fürt költsége magasabb, mint az Azure Storage költsége. Mivel az adatokat nem kell minden számítási fürt létrehozásakor újra betölteni, az adatbetöltési költségeket is megtakaríthatja.
Rugalmas kibővítés: Bár a HDFS kibővített fájlrendszert biztosít, a léptéket a fürthöz létrehozott csomópontok száma határozza meg. A méretezés módosítása bonyolultabb lehet, mint az Azure Storage-ban automatikusan megjelenő rugalmas skálázási képességek.
Georeplikálás: 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. Ezért körültekintően válassza a georeplikálást, és csak akkor, ha az adatok értéke indokolja a további költségeket.
Bizonyos MapReduce-feladatok és csomagok köztes eredményeket hozhatnak létre, amelyeket nem szeretne az Azure Storage-ban tárolni. Ebben az esetben dönthet úgy, hogy az adatokat a helyi HDFS-ben tárolja. A HDInsight több ilyen köztes eredményhez DFS-t használ Hive-feladatokban és egyéb folyamatokban.
Feljegyzés
A LEGTÖBB HDFS-parancs (például ls
, copyFromLocal
és mkdir
) a várt módon működik az Azure Storage-ban. Az Azure Storage-ban csak a natív HDFS-implementációra (más néven elosztott fájlrendszerre) fschk
dfsadmin
jellemző parancsok mutatnak eltérő viselkedést.