Bagikan melalui


Gunakan DistCp untuk menyalin data antara Azure Storage Blobs dan Azure Data Lake Storage Gen1

Jika Anda memiliki klaster HDInsight dengan akses ke Azure Data Lake Storage Gen1, Anda dapat menggunakan alat ekosistem Hadoop seperti DistCp untuk menyalin data ke dan dari penyimpanan klaster HDInsight (WASB) ke akun Data Lake Storage Gen1. Artikel ini memperlihatkan cara menggunakan alat DistCp.

Prasyarat

Menggunakan DistCp dari klaster Linux HDInsight

Klaster HDInsight dilengkapi dengan utilitas DistCp dapat digunakan untuk menyalin data dari sumber yang berbeda ke dalam klaster HDInsight. Jika Anda telah mengonfigurasi klaster HDInsight untuk menggunakan Data Lake Storage Gen1 sebagai penyimpanan tambahan, Anda dapat menggunakan DistCp di luar kotak untuk menyalin data ke dan dari akun Data Lake Storage Gen1. Di bagian ini, kami menunjukkan cara menggunakan alat DistCp.

  1. Dari desktop Anda, gunakan SSH untuk menyambungkan ke klaster. Lihat Menghubungkan ke klaster HDInsight berbasis Linux. Jalankan perintah dari prompt SSH.

  2. Verifikasi apakah Anda dapat mengakses blob Azure Storage (WASB). Jalankan perintah berikut:

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

    Output menyediakan daftar konten dalam blob penyimpanan.

  3. Demikian pula, verifikasi apakah Anda dapat mengakses akun Data Lake Storage Gen1 dari klaster. Jalankan perintah berikut:

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

    Output menyediakan daftar file dan folder di akun Data Lake Storage Gen1.

  4. Gunakan DistCp untuk menyalin data dari WASB ke akun Data Lake Storage Gen1.

    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
    

    Perintah menyalin konten folder /example/data/gutenberg/ folder in WASB to /myfolder di akun Data Lake Storage Gen1.

  5. Gunakan DistCp untuk menyalin data dari akun Data Lake Storage Gen1 ke WASB.

    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
    

    Perintah menyalin konten /myfolder di akun Data Lake Storage Gen1 ke folder /example/data/gutenberg/ di WASB.

Pertimbangan performa saat menggunakan DistCp

Karena granularitas terendah DistCp merupakan file tunggal, pengaturan jumlah maksimum salinan simultan adalah parameter terpenting untuk mengoptimalkannya terhadap Data Lake Storage Gen1. Anda dapat mengontrol jumlah salinan simultan dengan mengatur parameter jumlah pemeta ('m') pada baris perintah. Parameter ini menentukan jumlah maksimum pemeta yang digunakan untuk menyalin data. Nilai defaultnya adalah 20.

Contoh:

 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

Cara menentukan jumlah pemeta yang akan digunakan

Berikut adalah beberapa panduan yang dapat Anda gunakan.

  • Langkah 1: Tentukan total memori YARN - Langkah pertama adalah menentukan memori YARN yang tersedia untuk klaster tempat Anda menjalankan pekerjaan DistCp. Informasi ini tersedia di portal Ambari yang terkait dengan klaster. Navigasi ke YARN dan lihat tab Konfigurasi untuk melihat memori YARN. Untuk mendapatkan total memori YARN, Anda harus mengalikan memori YARN per node dengan jumlah node di klaster Anda.

  • Langkah 2: Menghitung jumlah pemeta - Nilai m sama dengan quotient total memori YARN yang dibagi dengan ukuran kontainer YARN. Informasi ukuran kontainer YARN juga tersedia di portal Ambari. Navigasi ke YARN dan lihat tab Konfigurasi. Ukuran kontainer YARN ditampilkan di jendela ini. Persamaan untuk sampai pada jumlah pemeta (m) adalah:

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

Contoh:

Mari kita anggap bahwa Anda memiliki empat node D14v2s di dalam klaster dan Anda ingin mencoba mentransfer 10 TB data dari 10 folder yang berbeda. Masing-masing folder berisi beragam jumlah data dan ukuran file dalam setiap folder berbeda.

  • Total memori YARN - Dari portal Ambari Anda menentukan bahwa memori YARN adalah 96 GB untuk node D14. Jadi, total memori YARN untuk empat klaster node adalah:

    YARN memory = 4 * 96GB = 384GB

  • Jumlah pemeta - Dari portal Ambari Anda menentukan bahwa ukuran kontainer YARN adalah 3072 MB untuk node klaster D14. Sehingga, jumlah pemeta adalah:

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

Jika aplikasi lain menggunakan memori, maka Anda dapat memilih untuk hanya menggunakan sebagian memori YARN klaster Anda untuk DistCp.

Menyalin himpunan data besar

Ketika ukuran himpunan data yang akan dipindahkan besar (misalnya, > 1 TB) atau jika Anda memiliki banyak folder yang berbeda, pertimbangkan untuk menggunakan beberapa pekerjaan DistCp. Kemungkinan tidak ada perolehan performa, tetapi ini akan menyebarkan pekerjaan sehingga jika ada pekerjaan yang gagal, Anda hanya perlu memulai ulang pekerjaan tertentu tersebut, bukan seluruh pekerjaan.

Batasan

  • DistCp mencoba membuat pemeta yang ukurannya mirip untuk mengoptimalkan performa. Meningkatkan jumlah pemeta mungkin tidak selalu meningkatkan performa.

  • DistCp hanya terbatas pada satu pemeta per file. Oleh karena itu, Anda tidak boleh memiliki lebih banyak pemeta daripada file yang dimiliki. Karena DistCp hanya dapat menetapkan satu pemeta ke suatu file, ini membatasi jumlah konkurensi yang dapat digunakan untuk menyalin file besar.

  • Jika Anda memiliki sedikit file besar, maka Anda harus membaginya menjadi gugus file 256 MB guna memberi Anda potensi konkurensi lebih besar.

  • Jika Anda menyalin dari akun penyimpanan Azure Blob, pekerjaan salinan Anda mungkin akan dibatasi di sisi penyimpanan Blob. Hal ini akan menurunkan kinerja pekerjaan salinan Anda. Untuk mempelajari selengkapnya tentang batas penyimpanan Azure Blob, lihat batas Azure Storage di batas langganan dan layanan Azure.

Lihat juga