Udostępnij za pośrednictwem


Migracja obciążenia hive do nowego konta w usłudze Azure Storage

Dowiedz się, jak używać akcji skryptu do kopiowania tabel programu Hive między kontami magazynu w usłudze HDInsight. Może to być przydatne podczas migracji do Azure Data Lake Storage Gen2programu .

Aby ręcznie skopiować pojedynczą tabelę Programu 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:

  • 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ć informacje o dozwolonych typach magazynu pomocniczego.

    Oto kilka opcji:

    • Dodaj docelowe konto magazynu do oryginalnego klastra.
    • Dodaj oryginalne konto magazynu do nowego klastra.
    • Dodaj pośrednie konto magazynu zarówno do oryginalnych, jak i nowych klastrów.

Jak to działa

Uruchomimy akcję skryptu, aby wyeksportować tabele programu Hive z oryginalnego klastra do określonego katalogu systemu plików HDFS. Zobacz Akcja skryptu w uruchomionym klastrze.

Następnie uruchomimy kolejną akcję skryptu w nowym klastrze, aby zaimportować tabele programu 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 Programy obsługi magazynu Hive.

Ścieżka tabel zewnętrznych, które nie są 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ć uprawnień do plików niestandardowych w klastrze docelowym.

Uwaga

Ten przewodnik obsługuje kopiowanie obiektów metadanych związanych z bazami danych, tabelami i partycjami Programu Hive. Inne obiekty metadanych należy utworzyć ponownie ręcznie.

  • W przypadku Viewsprogramu Hive obsługuje SHOW VIEWS polecenie programu Hive w wersji 2.2.0 w usłudze HDInsight 4.0. Służy SHOW CREATE TABLE do definicji widoku. W przypadku wcześniejszych wersji programu Hive wyślij zapytanie do bazy danych SQL magazynu metadanych, aby wyświetlić widoki.
  • W przypadku Materialized Viewsprogramu użyj poleceń SHOW MATERIALIZED VIEWS, DESCRIBE FORMATTEDi CREATE MATERIALIZED VIEW. Aby uzyskać szczegółowe informacje, zobacz zmaterializowane widoki .
  • W przypadku Constraintsprogramu , obsługiwanego w wersji Hive 2.1.0 w usłudze HDInsight 4.0, użyj DESCRIBE EXTENDED polecenia , aby wyświetlić listę ograniczeń dla tabeli i użyć polecenia ALTER TABLE , aby dodać ograniczenia. Aby uzyskać szczegółowe informacje, zobacz Alter Table Constraints (Zmienianie ograniczeń tabeli).

Kopiowanie tabel programu Hive

  1. Zastosuj akcję skryptu "eksportuj" w oryginalnym klastrze z następującymi polami.

    Spowoduje to wygenerowanie i wykonanie pośredniczących skryptów Programu 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ści 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)
    
  2. Po pomyślnym zakończeniu eksportowania zastosuj akcję skryptu "importuj" w nowym klastrze z następującymi polami.

    Właściwości 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.outwyjś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 -RHDFS .

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.

  1. Określ, --run-script=false aby pominąć wykonywanie wygenerowanego skryptu Programu Hive. Skrypty eksportowania i importowania programu Hive będą nadal zapisywane w ścieżce eksportu.

  2. Wykonaj fragmenty kodu eksportu programu Hive i zaimportuj skrypty database-by-database lub table-by-table, ręcznie czyszcząc ścieżkę eksportu po każdej zmigrowanej bazie danych lub tabeli.

Następne kroki