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

Ha Azure Data Lake Storage Gen1-hez hozzáféréssel rendelkező HDInsight-fürttel rendelkezik, a Hadoop ökoszisztéma-eszközei, például a DistCp használatával adatokat másolhat egy HDInsight-fürttárolóba (WASB) egy Data Lake Storage Gen1-fiókba. Ez a cikk a DistCp eszköz használatát mutatja be.

Előfeltételek

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

A HDInsight-fürtökhöz tartozik a DistCp eszköz, 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 a Data Lake Storage Gen1 további tárolóként használja, a DistCp beépített használatával átmásolhatja az adatokat egy Data Lake Storage Gen1-fiókba és onnan. Ebben a szakaszban a DistCp eszköz használatát vizsgáljuk meg.

  1. Az asztalról az SSH használatával csatlakozzon a fürthöz. Lásd: Csatlakozás Linux-alapú HDInsight-fürthöz. Futtassa a parancsokat az SSH-parancssorból.

  2. Ellenőrizze, hogy hozzáfér-e az Azure Storage-blobokhoz (WASB). Futtassa az alábbi parancsot:

    hdfs dfs –ls wasb://<container_name>@<storage_account_name>.blob.core.windows.net/
    

    A kimenet a tárolóblobban található tartalomlistát tartalmazza.

  3. Hasonlóképpen ellenőrizze, hogy hozzáfér-e az Data Lake Storage Gen1-fiókhoz a fürtből. Futtassa az alábbi parancsot:

    hdfs dfs -ls adl://<data_lake_storage_gen1_account>.azuredatalakestore.net:443/
    

    A kimenet a Data Lake Storage Gen1 fiókban található fájlok és mappák listáját tartalmazza.

  4. A DistCp használatával adatokat másolhat a WASB-ből egy Data Lake Storage Gen1-fiókba.

    hadoop distcp wasb://<container_name>@<storage_account_name>.blob.core.windows.net/example/data/gutenberg adl://<data_lake_storage_gen1_account>.azuredatalakestore.net:443/myfolder
    

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

  5. Ehhez hasonlóan a DistCp használatával is másolhat adatokat egy Data Lake Storage Gen1-fiókból a WASB-be.

    hadoop distcp adl://<data_lake_storage_gen1_account>.azuredatalakestore.net:443/myfolder wasb://<container_name>@<storage_account_name>.blob.core.windows.net/example/data/gutenberg
    

    A parancs a Data Lake Storage Gen1 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 eszköz legkisebb részletessége egyetlen fájl, az egyidejű másolatok maximális számának beállítása a legfontosabb paraméter az Data Lake Storage Gen1 való optimalizálásához. Az egyidejű másolatok számát a parancssorban a leképezők ('m') paraméterének beállításával szabályozhatja. 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 wasb://<container_name>@<storage_account_name>.blob.core.windows.net/example/data/gutenberg adl://<data_lake_storage_gen1_account>.azuredatalakestore.net:443/myfolder -m 100

A használandó leképezők számának meghatározása

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

  • 1. lépés: A YARN teljes memóriájának meghatározása – Az első lépés annak a fürtnek elérhető YARN-memória meghatározása, ahol a DistCp-feladatot futtatja. Ezek az információk a fürthöz társított Ambari-portálon érhetők el. Nyissa meg a YARN-t, és tekintse meg a Konfigurációk lapot a YARN-memória megtekintéséhez. A YARN teljes memóriájának lekéréséhez szorozza meg a csomópontonkénti YARN-memóriát a fürtben található csomópontok számával.

  • 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éretére vonatkozó információk az Ambari portálon is elérhetők. Lépjen a YARN-hoz, és tekintse meg a Konfigurációk lapot. Ebben az ablakban megjelenik a YARN-tároló mérete. A mapperek (m) számának eléréséhez szükséges egyenlet a következő:

    m = (number of nodes * YARN memory for each node) / YARN container size

Példa:

Tegyük fel, hogy négy D14v2s csomóponttal rendelkezik a fürtben, és 10 TB adatot szeretne átvinni 10 különböző mappából. Minden mappa különböző mennyiségű adatot tartalmaz, és az egyes mappákon belüli 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ópont esetében. Tehát négy csomópontfürt összes YARN-memóriája a következő:

    YARN memory = 4 * 96GB = 384GB

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

    m = (4 nodes * 96GB) / 3072MB = 128 mappers

Ha más alkalmazások is használnak memóriát, 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 áthelyezni kívánt adathalmaz mérete nagy (például > 1 TB), vagy ha sok különböző mappával rendelkezik, fontolja meg több DistCp-feladat használatát. 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 hasonló méretű leképezőket próbál létrehozni a teljesítmény optimalizálása érdekében. A leképezők számának növelése nem feltétlenül növeli a teljesítményt.

  • A DistCp fájlonként csak egy leképezőre korlátozódik. Ezért nem szabad több leképezőt rendelkeznie, mint amennyi fájllal rendelkezik. 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 mértékét.

  • Ha kevés nagy fájllal rendelkezik, ossza fel őket 256 MB-os fájltömbökre, hogy több lehetséges egyidejűséget biztosítson.

  • Ha Azure Blob Storage-fiókból másol, lehetséges, hogy a másolási feladat szabályozva van a Blob Storage oldalán. Ez csökkenti a másolási feladat teljesítményét. Az Azure Blob Storage korlátaival kapcsolatos további információkért lásd: Azure Storage-korlátok az Azure-előfizetések és -szolgáltatások korlátainál.

Lásd még