Aracılığıyla paylaş


Azure Depolama Blobları ile Azure Data Lake Storage 2. Nesil arasında veri kopyalamak için DistCp kullanma

DistCp kullanarak verileri genel amaçlı bir V2 depolama hesabı ile hiyerarşik ad alanı etkinleştirilmiş genel amaçlı V2 depolama hesabı arasında kopyalayabilirsiniz. Bu makalede, DistCp aracının kullanımıyla ilgili yönergeler sağlanır.

DistCp çeşitli komut satırı parametreleri sağlar ve kullanımınızı iyileştirmek için bu makaleyi okumanızı kesinlikle öneririz. Bu makalede, hiyerarşik ad alanı etkin bir hesaba veri kopyalama kullanımına odaklanırken temel işlevler gösterilmektedir.

Önkoşullar

  • Azure aboneliği. Daha fazla bilgi için bkz. Azure ücretsiz deneme sürümünü edinme.
  • Data Lake Storage 2. Nesil özellikleri (hiyerarşik ad alanı) etkinleştirilmemiş mevcut bir Azure Depolama hesabı.
  • Data Lake Storage 2. Nesil özellikleri (hiyerarşik ad alanı) etkinleştirilmiş bir Azure Depolama hesabı. Hesap oluşturma yönergeleri için bkz. Azure Depolama hesabı oluşturma
  • Depolama hesabında hiyerarşik ad alanı etkinleştirilmiş olarak oluşturulmuş bir kapsayıcı.
  • Hiyerarşik ad alanı özelliği etkinleştirilmiş bir depolama hesabına erişimi olan bir Azure HDInsight kümesi. Daha fazla bilgi için bkz. Azure HDInsight kümeleriyle Azure Data Lake Storage 2. Nesil hizmetini kullanma. Küme için Uzak Masaüstü'nü etkinleştirdiğinizden emin olun.

HDInsight Linux kümesinden DistCp kullanma

HDInsight kümesi, farklı kaynaklardan hdInsight kümesine veri kopyalamak için kullanılabilen DistCp yardımcı programıyla birlikte gelir. HDInsight kümesini Azure Blob Depolama ve Azure Data Lake Storage birlikte kullanacak şekilde yapılandırdıysanız, DistCp yardımcı programı arasında veri kopyalamak için kullanıma açık olarak kullanılabilir. Bu bölümde, DistCp yardımcı programının nasıl kullanılacağına bakacağız.

  1. HDI kümenizde bir SSH oturumu oluşturun. Daha fazla bilgi için bkz . Linux tabanlı HDInsight kümesine bağlanma.

  2. Mevcut genel amaçlı V2 hesabınıza erişip erişemeyeceğinizi doğrulayın (hiyerarşik ad alanı etkinleştirilmeden).

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

    Çıktı, kapsayıcıdaki içeriklerin listesini sağlamalıdır.

  3. Benzer şekilde, kümeden hiyerarşik ad alanı etkin depolama hesabına erişip erişemeyeceğinizi doğrulayın. Şu komutu çalıştırın:

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

    Çıktı, Data Lake depolama hesabındaki dosyaların/klasörlerin listesini sağlamalıdır.

  4. WASB'den bir Data Lake Storage hesabına veri kopyalamak için DistCp kullanın.

    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
    

    komut Blob depolamadaki /example/data/gutenberg/ klasörünün içeriğini Data Lake Storage hesabındaki /myfolder klasörüne kopyalar.

  5. Benzer şekilde, Data Lake Storage hesaptan Blob Depolama'ya (WASB) veri kopyalamak için DistCp kullanın.

    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
    

    komut, Data Lake Store hesabındaki /myfolder içeriğini WASB'deki /example/data/gutenberg/ klasörüne kopyalar.

DistCp kullanırken performansla ilgili dikkat edilmesi gerekenler

DistCp'nin en düşük ayrıntı düzeyi tek bir dosya olduğundan, en fazla eşzamanlı kopya sayısını ayarlamak, Data Lake Storage karşı en iyi duruma getirmek için en önemli parametredir. Eşzamanlı kopya sayısı, komut satırındaki eşleyici (m) parametresinin sayısına eşittir. Bu parametre, verileri kopyalamak için kullanılan en fazla eşleyici sayısını belirtir. Varsayılan değer 20'dir.

Örnek

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

Kullanılacak eşleyici sayısını Nasıl yaparım? belirlersiniz?

Aşağıda kullanabileceğiniz bazı yönergeler verilmiştir.

  • 1. Adım: 'varsayılan' YARN uygulama kuyruğu için kullanılabilir toplam belleği belirleme - İlk adım, 'varsayılan' YARN uygulama kuyruğu için kullanılabilir belleği belirlemektir. Bu bilgiler kümeyle ilişkilendirilmiş Ambari portalında bulunabilir. YARN'a gidin ve 'varsayılan' uygulama kuyruğunda kullanılabilen YARN belleğini görmek için Yapılandırmalar sekmesini görüntüleyin. Bu, DistCp işiniz için toplam kullanılabilir bellektir (aslında bir MapReduce işidir).

  • 2. Adım: Eşleyici sayısını hesaplama - m değeri, YARN kapsayıcı boyutuna bölünen toplam YARN belleğinin bölümüne eşittir. YARN kapsayıcı boyutu bilgileri ambari portalında da kullanılabilir. YARN'a gidin ve Yapılandırmalar sekmesini görüntüleyin. YARN kapsayıcı boyutu bu pencerede görüntülenir. Eşleyici sayısına (m) varacak denklem

    m = (düğüm sayısı * her düğüm için YARN belleği) / YARN kapsayıcı boyutu

Örnek

4x D14v2s kümeniz olduğunu ve 10 farklı klasördeki 10 TB veriyi aktarmaya çalıştığınızı varsayalım. Klasörlerin her biri farklı miktarlarda veri içerir ve her klasördeki dosya boyutları farklıdır.

  • Toplam YARN belleği: Ambari portalından YARN belleğinin bir D14 düğümü için 96 GB olduğunu belirlersiniz. Bu nedenle, dört düğüm kümesi için toplam YARN belleği:

    YARN belleği = 4 * 96 GB = 384 GB

  • Eşleyici sayısı: Ambari portalından, BIR D14 küme düğümü için YARN kapsayıcı boyutunun 3.072 MB olduğunu belirlersiniz. Bu nedenle eşleyici sayısı:

    m = (4 düğüm * 96 GB) / 3072 MB = 128 eşleyici

Diğer uygulamalar bellek kullanıyorsa, DistCp için kümenizin YARN belleğinin yalnızca bir bölümünü kullanmayı seçebilirsiniz.

Büyük veri kümelerini kopyalama

Taşınacak veri kümesinin boyutu büyükse (örneğin, >1 TB) veya birçok farklı klasörünüz varsa, birden çok DistCp işi kullanmayı düşünmelisiniz. Büyük olasılıkla herhangi bir performans kazancı yoktur, ancak işleri yayar, böylece herhangi bir iş başarısız olursa, işin tamamı yerine yalnızca bu işi yeniden başlatmanız gerekir.

Sınırlamalar

  • DistCp, performansı iyileştirmek için boyutu benzer eşleyiciler oluşturmaya çalışır. Eşleyicilerin sayısını artırmak her zaman performansı artırmayabilir.

  • DistCp, dosya başına yalnızca bir eşleyici ile sınırlıdır. Bu nedenle, dosyalardan daha fazla eşleyiciniz olmamalıdır. DistCp bir dosyaya yalnızca bir eşleyici atayabildiği için bu, büyük dosyaları kopyalamak için kullanılabilecek eşzamanlılık miktarını sınırlar.

  • Az sayıda büyük dosyanız varsa, daha fazla eşzamanlılık sağlamak için bunları 256 MB dosya öbeğine bölmeniz gerekir.