Dela via


Hive-arbetsbelastningsmigrering till nytt konto i Azure Storage

Lär dig hur du använder skriptåtgärder för att kopiera Hive-tabeller mellan lagringskonton i HDInsight. Detta kan vara användbart när du migrerar till Azure Data Lake Storage Gen2.

Information om hur du kopierar en enskild Hive-tabell manuellt i HDInsight 4.0 finns i Exportera/importera Hive.

Förutsättningar

Hur det fungerar

Vi kör en skriptåtgärd för att exportera Hive-tabeller från det ursprungliga klustret till en angiven HDFS-katalog. Se Skriptåtgärd till ett kluster som körs.

Sedan kör vi en annan skriptåtgärd i det nya klustret för att importera Hive-tabellerna från HDFS-katalogen.

Skriptet återskapar tabellerna till det nya klustrets standardfilsystem. Interna tabeller kopierar också sina data i lagringen. Icke-interna tabeller kopieras endast per definition. Mer information om icke-interna tabeller finns i Hive Storage Handlers .

Sökvägen till externa tabeller som inte finns i Hive-lagerkatalogen bevaras. Andra tabeller kopieras till målklustrets standardsökväg för Hive. Se Hive-egenskaper hive.metastore.warehouse.external.dir och hive.metastore.warehouse.dir.

Skripten bevarar inte anpassade filbehörigheter i målklustret.

Kommentar

Den här guiden stöder kopiering av metadataobjekt relaterade till Hive-databaser, tabeller och partitioner. Andra metadataobjekt måste återskapas manuellt.

  • För Viewsstöder SHOW VIEWS Hive kommando från och med Hive 2.2.0 på HDInsight 4.0. Används SHOW CREATE TABLE för visningsdefinition. För tidigare versioner av Hive frågar du metaarkivet SQL DB för att visa vyer.
  • För Materialized Viewsanvänder du kommandon SHOW MATERIALIZED VIEWS, DESCRIBE FORMATTEDoch CREATE MATERIALIZED VIEW. Mer information finns i Materialiserade vyer .
  • För Constraints, som stöds från och med Hive 2.1.0 i HDInsight 4.0, använder DESCRIBE EXTENDED du för att lista begränsningar för en tabell och använder ALTER TABLE för att lägga till begränsningar. Mer information finns i Ändra tabellbegränsningar .

Kopiera Hive-tabeller

  1. Använd åtgärden "exportera" skript på det ursprungliga klustret med följande fält.

    Detta genererar och kör hive-mellanliggande skript. De sparar till den angivna <hdfs-export-path>.

    Du kan också använda --run-script=false för att anpassa dem innan du kör dem manuellt.

    Property Värde
    Bash-skript-URI https://hdiconfigactions.blob.core.windows.net/linuxhivemigrationv01/export-hive-data-v01.sh
    Nodtyper Head
    Parametrar <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. När exporten har slutförts tillämpar du åtgärden "importera" skript på det nya klustret med följande fält.

    Property Värde
    Bash-skript-URI https://hdiconfigactions.blob.core.windows.net/linuxhivemigrationv01/import-hive-data-v01.sh
    Nodtyper Head
    Parametrar <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
    
    

Verifiering

Ladda ned och kör skriptet som rotanvändare hive_contents.sh på den primära noden i varje kluster och jämför innehållet i utdatafilen /tmp/hive_contents.out. Se Ansluta till HDInsight (Apache Hadoop) med hjälp av SSH.

Rensa ytterligare lagringsanvändning

När lagringsmigreringen har slutförts och verifierats kan du ta bort data i den angivna HDFS-exportsökvägen.

Alternativet är att använda HDFS-kommandot hdfs dfs -rm -R.

Alternativ: Minska ytterligare lagringsanvändning

Exportskriptåtgärden fördubblar sannolikt lagringsanvändningen på grund av Hive. Det går dock att begränsa den ytterligare lagringsanvändningen genom att migrera manuellt, en databas eller tabell i taget.

  1. Ange --run-script=false för att hoppa över körningen av det genererade Hive-skriptet. Hive-export- och importskripten skulle fortfarande sparas i exportsökvägen.

  2. Kör kodfragment i Hive-export- och importskripten databas-för-databas eller tabell-för-tabell, rensa exportsökvägen manuellt efter varje migrerad databas eller tabell.

Nästa steg