Azure Depolama'da yeni hesaba Hive iş yükü geçişi

HDInsight'taki depolama hesapları arasında Hive tablolarını kopyalamak için betik eylemlerini kullanmayı öğrenin. Bu, öğesine Azure Data Lake Storage Gen2geçiş yaparken yararlı olabilir.

HDInsight 4.0'da tek bir Hive tablosunu el ile kopyalamak için bkz . Hive dışarı/içeri aktarma.

Önkoşullar

  • Aşağıdaki yapılandırmalara sahip yeni bir HDInsight kümesi:

    • Varsayılan dosya sistemi hedef depolama hesabındadır. Bkz. Azure HDInsight kümeleri ile Azure depolamayı kullanma.
    • Küme sürümü, kaynak kümenin sürümüyle eşleşmelidir.
    • Yeni bir dış Hive meta veri deposu veritabanı kullanır. Bkz . Dış meta veri depolarını kullanma.
  • Hem özgün hem de yeni kümeler için erişilebilir bir depolama hesabı. İzin verilen ikincil depolama türleri için bkz . HDInsight'a ek depolama hesapları ekleme ve Depolama türleri ve özellikleri .

    Aşağıda bazı seçenekleri görebilirsiniz:

    • Hedef depolama hesabını özgün kümeye ekleyin.
    • Özgün depolama hesabını yeni kümeye ekleyin.
    • Hem özgün hem de yeni kümelere bir aracı depolama hesabı ekleyin.

Nasıl çalışır?

Hive tablolarını özgün kümeden belirli bir HDFS dizinine aktarmak için bir betik eylemi çalıştıracağız. Bkz. Çalışan kümeye betik eylemi.

Ardından, HDFS dizininden Hive tablolarını içeri aktarmak için yeni kümede başka bir betik eylemi çalıştıracağız.

Betik, tabloları yeni kümenin varsayılan dosya sisteminde yeniden oluşturur. Yerel tablolar da verilerini depolama alanına kopyalar. Yerel olmayan tablolar yalnızca tanıma göre kopyalanır. Yerel olmayan tablolarla ilgili ayrıntılar için bkz . Hive Depolama İşleyicileri .

Hive ambarı dizininde olmayan dış tabloların yolu korunur. Diğer tablolar hedef kümenin varsayılan Hive yoluna kopyalanır. Bkz. Hive özellikleri hive.metastore.warehouse.external.dir ve hive.metastore.warehouse.dir.

Betikler hedef kümedeki özel dosya izinlerini korumaz.

Not

Bu kılavuz Hive veritabanları, tablolar ve bölümler ile ilgili meta veri nesnelerinin kopyalanmasını destekler. Diğer meta veri nesneleri el ile yeniden oluşturulmalıdır.

  • için ViewsHive, HDInsight 4.0 üzerinde Hive 2.2.0 itibarıyla komutu destekler SHOW VIEWS . Görünüm tanımı için kullanın SHOW CREATE TABLE . Hive'ın önceki sürümleri için meta veri deposu SQL DB'sini sorgular ve görünümleri gösterir.
  • için Materialized Views, DESCRIBE FORMATTEDve CREATE MATERIALIZED VIEWkomutlarını SHOW MATERIALIZED VIEWSkullanın. Ayrıntılar için bkz . Gerçekleştirilmiş görünümler .
  • için Constraints, HDInsight 4.0 üzerinde Hive 2.1.0 itibarıyla desteklenir, bir tablonun kısıtlamalarını listelemek için kullanın DESCRIBE EXTENDED ve kısıtlamalar eklemek için kullanın ALTER TABLE . Ayrıntılar için bkz . Tablo Kısıtlamalarını Değiştirme.

Hive tablolarını kopyalama

  1. Aşağıdaki alanlarla özgün kümeye "dışarı aktar" betik eylemini uygulayın.

    Bu işlem aracı Hive betikleri oluşturur ve yürütür. Belirtilen <hdfs-export-path>öğesine kaydederler.

    İsteğe bağlı olarak, el ile yürütmeden önce bunları özelleştirmek için kullanın --run-script=false .

    Özellik Değer
    Bash betik URI'si https://hdiconfigactions.blob.core.windows.net/linuxhivemigrationv01/export-hive-data-v01.sh
    Düğüm türleri Head
    Parametreler <hdfs-export-path> --run-script
    usage: generate Hive export and import scripts and export Hive data to specified HDFS path
           [--run-script={true,false}]
           hdfs-export-path
    
    positional arguments:
    
        hdfs-export-path      remote HDFS directory to write export data to
    
    optional arguments:
        --run-script={true,false}
                            whether to execute the generated Hive export script
                            (default: true)
    
  2. Dışarı aktarma işlemi başarıyla tamamlandıktan sonra, aşağıdaki alanlarla yeni kümeye "içeri aktar" betik eylemini uygulayın.

    Özellik Değer
    Bash betik URI'si https://hdiconfigactions.blob.core.windows.net/linuxhivemigrationv01/import-hive-data-v01.sh
    Düğüm türleri Head
    Parametreler <hdfs-export-path>
    usage: download Hive import script from specified HDFS path and execute it
           hdfs-export-path
    
    positional arguments:
    
      hdfs-export-path      remote HDFS directory to download Hive import script from
    
    

Doğrulama

Betiği her kümenin birincil düğümünde kök kullanıcı hive_contents.sh olarak indirip çalıştırın ve çıktı dosyasının /tmp/hive_contents.outiçeriğini karşılaştırın. Bkz . SSH kullanarak HDInsight'a (Apache Hadoop) bağlanma.

Ek depolama kullanımını temizleme

Depolama geçişi tamamlandıktan ve doğrulandıktan sonra, belirtilen HDFS dışarı aktarma yolundaki verileri silebilirsiniz.

Seçenek, HDFS komutunu hdfs dfs -rm -Rkullanmaktır.

Seçenek: Ek depolama kullanımını azaltma

Dışarı aktarma betiği eylemi hive nedeniyle depolama kullanımını büyük olasılıkla ikiye katlar. Ancak, el ile, tek seferde bir veritabanı veya tablo geçirerek ek depolama kullanımını sınırlandırmak mümkündür.

  1. Oluşturulan Hive betiğinin yürütülmesini atlamak için belirtin --run-script=false . Hive dışarı aktarma ve içeri aktarma betikleri yine de dışarı aktarma yoluna kaydedilir.

  2. Hive dışarı aktarmanın kod parçacıklarını yürütün ve betikleri veritabanına göre veya tabloya göre içeri aktarın; geçirilen her veritabanı veya tablodan sonra dışarı aktarma yolunu el ile temizleyin.

Sonraki adımlar