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


Adatok másolása az Azure Storage-blobok és az Azure Data Lake Storage között a DistCp használatával

A DistCp használatával adatokat másolhat egy általános célú V2-tárfiók és egy általános célú V2-tárfiók között, amelyen engedélyezve van a hierarchikus névtér. Ez a cikk útmutatást nyújt a DistCp eszköz használatához.

A DistCp különböző parancssori paramétereket biztosít, és határozottan javasoljuk, hogy olvassa el ezt a cikket a használat optimalizálása érdekében. Ez a cikk az alapvető funkciókat mutatja be, miközben az adatok hierarchikus névtér-kompatibilis fiókba való másolására összpontosít.

Előfeltételek

  • Azure-előfizetés. További információ: Ingyenes Azure-próbaidőszak lekérése.
  • Egy meglévő Azure Storage-fiók, amely nem rendelkezik engedélyezve Data Lake Storage-képességekkel (hierarchikus névtér).
  • Egy Azure Storage-fiók, amelyen engedélyezve vannak a Data Lake Storage képességei (hierarchikus névtér). Az azure storage-fiók létrehozásával kapcsolatos utasításokért lásd: Azure Storage-fiók létrehozása
  • A tárfiókban létrehozott tároló, amelyen engedélyezve van a hierarchikus névtér.
  • Egy Azure HDInsight-fürt, amely hozzáféréssel rendelkezik egy olyan tárfiókhoz, amelyben engedélyezve van a hierarchikus névtér funkció. További információ: Az Azure Data Lake Storage használata Azure HDInsight-fürtökkel. Győződjön meg arról, hogy engedélyezi a távoli asztalt a fürthöz.

A DistCp használata HDInsight Linux-fürtből

A DistCp segédprogram, amely egy HDInsight-fürthöz tartozik, lehetővé teszi különböző forrásokból adatokat másolni egy HDInsight-fürtbe. Ha úgy konfigurálta a HDInsight-fürtöt, hogy egyszerre használja az Azure Blob Storage-t és az Azure Data Lake Storage-t, akkor a DistCp segédprogram közvetlenül használható az adatok másolására is. Ebben a szakaszban a DistCp segédprogram használatát vizsgáljuk meg.

  1. Hozzon létre egy SSH-munkamenetet a HDInsight-fürtön. További információért lásd: Csatlakozás Linux-alapú HDInsight klaszterhez.

  2. Ellenőrizze, hogy hozzáfér-e a meglévő általános célú V2-fiókhoz (nincs-e engedélyezve hierarchikus névtér).

    hdfs dfs -ls wasbs://<container-name>@<storage-account-name>.blob.core.windows.net/
    

    A kimenetnek meg kell adnia a tároló tartalmának listáját.

  3. Hasonlóképpen ellenőrizze, hogy hozzáfér-e a tárfiókhoz a fürtről engedélyezett hierarchikus névtérrel. Futtassa az alábbi parancsot:

    hdfs dfs -ls abfss://<container-name>@<storage-account-name>.dfs.core.windows.net/
    

    A kimenetnek meg kell adnia a Data Lake Storage-fiók fájljainak/mappáinak listáját.

  4. A DistCp használatával adatokat másolhat a Windows Azure Storage Blobból (WASB) egy Data Lake Storage-fiókba.

    hadoop distcp wasbs://<container-name>@<storage-account-name>.blob.core.windows.net/example/data/gutenberg abfss://<container-name>@<storage-account-name>.dfs.core.windows.net/myfolder
    

    A parancs a Blob Storage /example/data/gutenberg/ mappájának tartalmát a Data Lake Storage-fiók /myfolder mappájába másolja.

  5. Hasonlóképpen, a DistCp használatával adatokat másolhat a Data Lake Storage-fiókból a Blob Storage-ba (WASB).

    hadoop distcp abfss://<container-name>@<storage-account-name>.dfs.core.windows.net/myfolder wasbs://<container-name>@<storage-account-name>.blob.core.windows.net/example/data/gutenberg
    

    A parancs a Data Lake Store-fiókban lévő /myfolder tartalmát a WASB /example/data/gutenberg/ mappájába másolja.

Teljesítménnyel kapcsolatos szempontok a DistCp használata során

Mivel a DistCp legalacsonyabb részletessége egyetlen fájl, az egyidejű példányok maximális számának beállítása a legfontosabb paraméter a Data Lake Storage-hoz való optimalizálásához. Az egyidejű másolatok száma megegyezik a parancssorban található mappers (m) paraméter számával. Ez a paraméter határozza meg az adatok másolásához használt leképezők maximális számát. Az alapértelmezett érték 20.

Példa

hadoop distcp -m 100 wasbs://<container-name>@<storage-account-name>.blob.core.windows.net/example/data/gutenberg abfss://<container-name>@<storage-account-name>.dfs.core.windows.net/myfolder

Hogyan határozza meg a használni kívánt leképezők számát?

Az alábbiakban olvashat némi útmutatást ezzel kapcsolatban.

  • 1. lépés: Határozza meg az "alapértelmezett" YARN-alkalmazássor számára elérhető teljes memóriát – Az első lépés az "alapértelmezett" YARN-alkalmazássor számára elérhető memória meghatározása. Ezek az információk a klászterhez társított Ambari portálon érhetők el. Lépjen a YARN-ra, és tekintse meg a Konfigurációk lapot az "alapértelmezett" alkalmazás üzenetsorában elérhető YARN-memória megtekintéséhez. Ez a Teljes rendelkezésre álló memória a DistCp-feladathoz (ami valójában egy MapReduce-feladat).

  • 2. lépés: A leképezők számának kiszámítása – Az m értéke megegyezik a YARN-tároló méretével osztva a TELJES YARN-memória hányadosával. A YARN-tároló méretadatai az Ambari portálon is elérhetők. Lépjen a YARN lapra, és tekintse meg a Konfigurációk lapot. Ebben az ablakban megjelenik a YARN-tároló mérete. A mapperek számának (m) eléréséhez szükséges egyenlet a következő:

    m = (csomópontok száma * YARN memória minden csomóponthoz) / YARN-tároló mérete

Példa

Tegyük fel, hogy 4x D14v2s-fürtje van, és 10 TB adatot próbál átvinni 10 különböző mappából. Minden mappa különböző mennyiségű adatot tartalmaz, és az egyes mappákban lévő fájlméretek eltérőek.

  • Teljes YARN-memória: Az Ambari portálon megállapíthatja, hogy a YARN memória 96 GB egy D14-csomóponthoz. Így négy csomópontfürt teljes YARN-memóriája a következő:

    YARN memória = 4 * 96 GB = 384 GB

  • Leképezők száma: Az Ambari portálon megállapíthatja, hogy a YARN-tároló mérete 3072 MB egy D14-fürtcsomópont esetében. A mapperek száma tehát a következő:

    m = (négy csomópont * 96 GB) / 3072 MB = 128 mappers

Ha más alkalmazások memóriát használnak, akkor dönthet úgy, hogy a fürt YARN-memóriájának csak egy részét használja a DistCp-hez.

Nagy adathalmazok másolása

Ha az áthelyezendő adathalmaz mérete nagy (például >1 TB), vagy ha sok különböző mappával rendelkezik, érdemes lehet több DistCp-feladatot használnia. Valószínűleg nincs teljesítménynövekedés, de szétterjed a feladatok között, így ha valamelyik feladat meghiúsul, csak az adott feladatot kell újraindítania a teljes feladat helyett.

Korlátozások

  • A DistCp a teljesítmény optimalizálásához hasonló méretű térképezőket próbál létrehozni. Előfordulhat, hogy a leképezők számának növelése nem mindig növeli a teljesítményt.

  • A DistCp fájlonként csak egy leképezőre korlátozódik. Ezért ne legyen több leképező, mint amennyi fájl van. Mivel a DistCp csak egy leképezőt tud hozzárendelni egy fájlhoz, ez korlátozza a nagy méretű fájlok másolásához használható egyidejűség mennyiségét.

  • Ha van néhány nagy fájlja, akkor 256 MB-os fájltömbökre kell felosztani őket, hogy több lehetséges egyidejűséget biztosítson.