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 Gen2
geç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
Views
Hive, HDInsight 4.0 üzerinde Hive 2.2.0 itibarıyla komutu desteklerSHOW VIEWS
. Görünüm tanımı için kullanınSHOW 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 FORMATTED
veCREATE MATERIALIZED VIEW
komutlarınıSHOW MATERIALIZED VIEWS
kullanı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ınDESCRIBE EXTENDED
ve kısıtlamalar eklemek için kullanınALTER TABLE
. Ayrıntılar için bkz . Tablo Kısıtlamalarını Değiştirme.
Hive tablolarını kopyalama
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)
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.out
iç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 -R
kullanmaktı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.
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.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.