Migracja obciążenia hive do nowego konta w usłudze Azure Storage
Dowiedz się, jak używać akcji skryptu do kopiowania tabel hive między kontami magazynu w usłudze HDInsight. Może to być przydatne podczas migracji do Azure Data Lake Storage Gen2
programu .
Aby ręcznie skopiować pojedynczą tabelę Hive w usłudze HDInsight 4.0, zobacz Eksportowanie/importowanie programu Hive.
Wymagania wstępne
Nowy klaster usługi HDInsight z następującymi konfiguracjami:
- Jego domyślny system plików znajduje się na docelowym koncie magazynu. Zobacz Używanie usługi Azure Storage z klastrami usługi Azure HDInsight.
- Jego wersja klastra musi być zgodna z klasterem źródłowym.
- Używa ona nowej zewnętrznej bazy danych magazynu metadanych Hive. Zobacz Używanie zewnętrznych magazynów metadanych.
Konto magazynu, które jest dostępne zarówno dla oryginalnych, jak i nowych klastrów. Zobacz Dodawanie dodatkowych kont magazynu do usługi HDInsight i typów i funkcji magazynu , aby uzyskać dozwolone pomocnicze typy magazynów.
Oto kilka opcji:
- Dodaj docelowe konto magazynu do oryginalnego klastra.
- Dodaj oryginalne konto magazynu do nowego klastra.
- Dodaj pośredniczące konto magazynu do oryginalnych i nowych klastrów.
Jak to działa
Uruchomimy akcję skryptu, aby wyeksportować tabele hive z oryginalnego klastra do określonego katalogu systemu plików HDFS. Zobacz Akcja skryptu uruchomionego klastra.
Następnie uruchomimy inną akcję skryptu w nowym klastrze, aby zaimportować tabele Hive z katalogu HDFS.
Skrypt ponownie utworzy tabele w domyślnym systemie plików nowego klastra. Tabele natywne będą również kopiować dane w magazynie. Tabele inne niż natywne będą kopiować tylko według definicji. Aby uzyskać szczegółowe informacje na temat tabel innych niż natywne, zobacz Procedury obsługi magazynu Hive .
Ścieżka tabel zewnętrznych, których nie ma w katalogu magazynu Hive, zostanie zachowana. Inne tabele będą kopiować do domyślnej ścieżki programu Hive klastra docelowego. Zobacz Właściwości hive.metastore.warehouse.external.dir
programu Hive i hive.metastore.warehouse.dir
.
Skrypty nie będą zachowywać niestandardowych uprawnień do plików w klastrze docelowym.
Uwaga
Ten przewodnik obsługuje kopiowanie obiektów metadanych związanych z bazami danych, tabelami i partycjami Hive. Inne obiekty metadanych muszą zostać ponownie utworzone ręcznie.
- W przypadku
Views
programu Hive obsługujeSHOW VIEWS
polecenie programu Hive 2.2.0 w usłudze HDInsight 4.0. SłużySHOW CREATE TABLE
do wyświetlania definicji. W przypadku wcześniejszych wersji programu Hive wyślij zapytanie do bazy danych SQL DB magazynu metadanych, aby wyświetlić widoki. - W przypadku
Materialized Views
polecenia użyj poleceńSHOW MATERIALIZED VIEWS
,DESCRIBE FORMATTED
iCREATE MATERIALIZED VIEW
. Aby uzyskać szczegółowe informacje, zobacz zmaterializowane widoki . - W przypadku
Constraints
programu obsługiwana w wersji Hive 2.1.0 w usłudze HDInsight 4.0 użyj poleceniaDESCRIBE EXTENDED
, aby wyświetlić listę ograniczeń dla tabeli i użyć jejALTER TABLE
do dodawania ograniczeń. Aby uzyskać szczegółowe informacje, zobacz Alter Table Constraints (Zmiany ograniczeń tabeli ).
Kopiowanie tabel programu Hive
Zastosuj akcję skryptu "export" w oryginalnym klastrze z następującymi polami.
Spowoduje to wygenerowanie i wykonanie pośredniczących skryptów Hive. Zostaną one zapisane w określonym
<hdfs-export-path>
obiekcie .Opcjonalnie użyj polecenia
--run-script=false
, aby dostosować je przed ręcznym wykonaniem.Właściwość Wartość Identyfikator URI skryptu powłoki Bash https://hdiconfigactions.blob.core.windows.net/linuxhivemigrationv01/export-hive-data-v01.sh
Typy węzłów Head Parametry <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)
Po pomyślnym zakończeniu eksportu zastosuj akcję skryptu "import" w nowym klastrze z następującymi polami.
Właściwość Wartość Identyfikator URI skryptu powłoki Bash https://hdiconfigactions.blob.core.windows.net/linuxhivemigrationv01/import-hive-data-v01.sh
Typy węzłów Head Parametry <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
Weryfikacja
Pobierz i uruchom skrypt jako użytkownik hive_contents.sh
główny w węźle podstawowym każdego klastra i porównaj zawartość pliku /tmp/hive_contents.out
wyjściowego . Zobacz Nawiązywanie połączenia z usługą HDInsight (Apache Hadoop) przy użyciu protokołu SSH.
Oczyszczanie dodatkowego użycia magazynu
Po zakończeniu i zweryfikowaniu migracji magazynu można usunąć dane w określonej ścieżce eksportu systemu plików HDFS.
Opcja polega na użyciu polecenia hdfs dfs -rm -R
HDFS .
Opcja: zmniejszenie dodatkowego użycia magazynu
Akcja skryptu eksportu prawdopodobnie podwoi użycie magazynu z powodu programu Hive. Istnieje jednak możliwość ograniczenia dodatkowego użycia magazynu przez migrację ręcznie, jedną bazę danych lub tabelę naraz.
Określ,
--run-script=false
aby pominąć wykonywanie wygenerowanego skryptu Hive. Skrypty eksportu i importowania programu Hive nadal będą zapisywane w ścieżce eksportu.Wykonaj fragmenty kodu eksportu i importu skryptów hive database-by-database lub table-by-table, ręcznie czyszcząc ścieżkę eksportu po każdej zmigrowanej bazie danych lub tabeli.