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
Ett nytt HDInsight-kluster med följande konfigurationer:
- Standardfilsystemet finns i mållagringskontot. Se Använda Azure Storage med Azure HDInsight-kluster.
- Dess klusterversion måste matcha källklustrets.
- Den använder en ny extern Hive-metaarkivdatabas. Se Använda externa metadatalager.
Ett lagringskonto som är tillgängligt för både ursprungliga och nya kluster. Mer information om tillåtna sekundära lagringstyper finns i Lägga till ytterligare lagringskonton i HDInsight och Lagringstyper och funktioner .
Här följer några alternativ:
- Lägg till mållagringskontot i det ursprungliga klustret.
- Lägg till det ursprungliga lagringskontot i det nya klustret.
- Lägg till ett mellanliggande lagringskonto i både de ursprungliga och nya klustren.
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
Views
stöderSHOW VIEWS
Hive kommando från och med Hive 2.2.0 på HDInsight 4.0. AnvändsSHOW 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 Views
använder du kommandonSHOW MATERIALIZED VIEWS
,DESCRIBE FORMATTED
ochCREATE 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änderDESCRIBE EXTENDED
du för att lista begränsningar för en tabell och använderALTER TABLE
för att lägga till begränsningar. Mer information finns i Ändra tabellbegränsningar .
Kopiera Hive-tabeller
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)
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.
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.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
Feedback
https://aka.ms/ContentUserFeedback.
Kommer snart: Under hela 2024 kommer vi att fasa ut GitHub-problem som feedbackmekanism för innehåll och ersätta det med ett nytt feedbacksystem. Mer information finns i:Skicka och visa feedback för