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


Adatok másolása az Azure Storage-blobok és a Azure Data Lake Storage Gen2 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 olyan á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áról.

A DistCp számos parancssori paramétert biztosít, és nyomatékosan javasoljuk, hogy olvassa el ezt a cikket a használat optimalizálása érdekében. Ez a cikk alapvető funkciókat mutat be, miközben az adatok hierarchikus névtérrel rendelkező fiókba való másolására összpontosít.

Előfeltételek

  • Azure-előfizetés. További információ: Ingyenes Azure-próbaverzió beszerzése.
  • Egy meglévő Azure Storage-fiók, Data Lake Storage Gen2 képességek (hierarchikus névtér) engedélyezése nélkül.
  • Engedélyezve van egy Azure Storage-fiók Data Lake Storage Gen2 képességekkel (hierarchikus névtér). A létrehozással 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 tárfiókhoz, és engedélyezve van a hierarchikus névtér funkció. További információ: Az Azure Data Lake Storage Gen2 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 HDInsight-fürtökhez tartozik a DistCp segédprogram, amellyel különböző forrásokból származó adatokat másolhat egy HDInsight-fürtbe. Ha úgy konfigurálta a HDInsight-fürtöt, hogy Azure Blob Storage és Azure Data Lake Storage együtt használja, a DistCp segédprogram használható a beépített adatok közötti másoláshoz is. Ebben a szakaszban a DistCp segédprogram használatát vizsgáljuk meg.

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

  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ürtbő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 WASB-ból 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 másoljon adatokat 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 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 meghatározni 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 rendelkezésre álló teljes memóriát – Az első lépés az "alapértelmezett" YARN-alkalmazássor számára rendelkezésre álló memória meghatározása. Ezek az információk a fürthöz társított Ambari portálon érhetők el. Lépjen a YARN lapra, és tekintse meg a Konfigurációk lapot az "alapértelmezett" alkalmazássorhoz elérhető YARN-memória megtekintéséhez. Ez a DistCp-feladat teljes rendelkezésre álló memóriája (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 YARN-memória teljes 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 leképezők számához (m) tartozó 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. Az egyes mappák különböző mennyiségű adatot tartalmaznak, és az egyes mappákban lévő fájlméretek eltérőek.

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

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

  • A 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. Tehát a leképezők száma a következő:

    m = (4 csomópont * 96 GB) / 3072MB = 128 leképező

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

Nagyméretű 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 több DistCp-feladatot használnia. Valószínűleg nincs teljesítménynövekedés, de szétosztja a feladatokat, így ha valamelyik feladat meghiúsul, csak az adott feladatot kell újraindítania a teljes feladat helyett.

Korlátozások

  • A DistCp hasonló méretű leképezőket próbál létrehozni a teljesítmény optimalizálása érdekében. 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 nem lehet több leképezője, mint a fájloknak. 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 kis számú nagy fájllal rendelkezik, akkor 256 MB-os fájltömbökre kell felosztani őket, hogy több lehetséges egyidejűséget biztosítson.