Lägga till anpassade Apache Hive-bibliotek när du skapar ditt HDInsight-kluster

Lär dig hur du läser in Apache Hive-bibliotek i förväg i HDInsight. Det här dokumentet innehåller information om hur du använder en skriptåtgärd för att förinläsa bibliotek när klustret skapas. Bibliotek som läggs till med hjälp av stegen i det här dokumentet är globalt tillgängliga i Hive – du behöver inte använda ADD JAR för att läsa in dem.

Så här fungerar det

När du skapar ett kluster kan du använda en skriptåtgärd för att ändra klusternoder när de skapas. Skriptet i det här dokumentet accepterar en enda parameter, som är platsen för biblioteken. Den här platsen måste finnas i ett Azure Storage-konto och biblioteken måste lagras som jar-filer.

När klustret skapas räknar skriptet upp filerna, kopierar dem till /usr/lib/customhivelibs/ katalogen på huvud- och arbetsnoder och lägger sedan till hive.aux.jars.path dem i egenskapen i core-site.xml filen. I Linux-baserade kluster uppdateras hive-env.sh även filen med platsen för filerna.

Med hjälp av skriptåtgärden i den här artikeln blir biblioteken tillgängliga när du använder en Hive-klient för WebHCat och HiveServer2.

Skriptet

Skriptplats

https://hdiconfigactions.blob.core.windows.net/setupcustomhivelibsv01/setup-customhivelibs-v01.ps1

Krav

  • Skripten måste tillämpas på både huvudnoderna och arbetsnoderna.

  • Jar-filerna som du vill installera måste lagras i Azure Blob Storage i en enda container.

  • Lagringskontot som innehåller biblioteket med jar-filer måste länkas till HDInsight-klustret när det skapas. Det måste antingen vara standardlagringskontot eller ett konto som läggs till via Lagringskontoinställningar.

  • WASB-sökvägen till containern måste anges som en parameter för skriptåtgärden. Om jar-filerna till exempel lagras i en container med namnet libs på ett lagringskonto med namnet mystorage blir wasbs://libs@mystorage.blob.core.windows.net/parametern .

    Anteckning

    Det här dokumentet förutsätter att du redan har skapat ett lagringskonto, en blobcontainer och laddat upp filerna till det.

    Om du inte har skapat ett lagringskonto kan du göra det via Azure Portal. Du kan sedan använda ett verktyg som Azure Storage Explorer för att skapa en container i kontot och ladda upp filer till det.

Skapa ett kluster med hjälp av skriptet

  1. Börja etablera ett kluster med hjälp av stegen i Etablera HDInsight-kluster i Linux, men slutför inte etableringen. Du kan också använda Azure PowerShell eller HDInsight .NET SDK för att skapa ett kluster med det här skriptet. Mer information om hur du använder dessa metoder finns i Anpassa HDInsight-kluster med skriptåtgärder. För Azure Portal går du till fliken Konfiguration + prissättning och väljer åtgärden + Lägg till skript.

  2. För Storage, om lagringskontot som innehåller biblioteket med jar-filer skiljer sig från det konto som används för klustret, slutför du Ytterligare lagringskonton.

  3. Ange följande information för Skriptåtgärder:

    Egenskap Värde
    Typ av skript -Anpassade
    Name Bibliotek
    Bash-skript-URI https://hdiconfigactions.blob.core.windows.net/linuxsetupcustomhivelibsv01/setup-customhivelibs-v01.sh
    Nodtyper Head, Worker
    Parametrar Ange WASB-adressen till containern och lagringskontot som innehåller jar-filerna. Till exempel wasbs://libs@mystorage.blob.core.windows.net/.

    Anteckning

    För Apache Spark 2.1 använder du den här bash-skript-URI:n: https://hdiconfigactions.blob.core.windows.net/linuxsetupcustomhivelibsv01/setup-customhivelibs-v00.sh.

  4. Fortsätt att etablera klustret enligt beskrivningen i Etablera HDInsight-kluster i Linux.

När klustret har skapats kan du använda jar-filerna som lagts till via det här skriptet från Hive utan att behöva använda -instruktionen ADD JAR .

Nästa steg

Mer information om hur du arbetar med Hive finns i Använda Apache Hive med HDInsight