HDInsight クラスターを作成するときにカスタム Apache Hive ライブラリを追加する
HDInsight で Apache Hive ライブラリを事前に読み込む方法を説明します。 このドキュメントには、クラスターの作成時にスクリプト操作を使ってライブラリを事前に読み込む方法についての情報が含まれます。 このドキュメントの手順を使用して追加されたライブラリは、Hive でグローバルに使用できます。ADD JAR を使用して読み込む必要はありません。
しくみ
クラスターを作成するときは、スクリプト アクションを使用して、作成されたクラスター ノードを変更できます。 このドキュメントのスクリプトは、唯一のパラメーターでライブラリの場所を受け取ります。 この場所は Azure Storage アカウントである必要があり、ライブラリは jar ファイルとして格納されている必要があります。
クラスターの作成時に、そのスクリプトによってファイルが列挙され、ヘッド ノードとワーカー ノードの /usr/lib/customhivelibs/
ディレクトリにコピーされて、core-site.xml
ファイルの hive.aux.jars.path
プロパティに追加されます。 Linux ベースのクラスターでは、それらのファイルの場所に合わせて hive-env.sh
ファイルも更新されます。
この記事のスクリプト アクションを使用すると、WebHCat および HiveServer2 用に Hive クライアントを使用するときにライブラリが使用可能になります。
スクリプトは、以下のことを行います
スクリプトの場所
https://hdiconfigactions.blob.core.windows.net/setupcustomhivelibsv01/setup-customhivelibs-v01.ps1
必要条件
このスクリプトは、ヘッド ノードとワーカー ノードの両方に適用する必要があります。
インストールする jar は、Azure Blob Storage の 単一のコンテナーに格納する必要があります。
jar ファイルのライブラリを含むストレージ アカウントを、作成時に HDInsight クラスターにリンクする必要があります。 これは既定のストレージ アカウントか、またはストレージ アカウントの設定によって追加されたアカウントのどちらかである必要があります。
コンテナーへの WASB パスは、スクリプト アクションのパラメーターとして指定する必要があります。 たとえば、jar が mystorage という名前のストレージ アカウント上の libs という名前のコンテナーに格納されている場合、パラメーターは
wasbs://libs@mystorage.blob.core.windows.net/
になります。Note
このドキュメントでは、既にストレージ アカウントと BLOB コンテナーを作成し、そこにファイルをアップロードしていることを前提としています。
ストレージ アカウントを作成していない場合は、Azure Portal で作成できます。 その後、Azure Storage エクスプローラー などのユーティリティを使用して、アカウントにコンテナーを作成し、そこにファイルをアップロードできます。
スクリプトを使用してクラスターを作成する
Linux での HDInsight クラスターのプロビジョニングに関するページの手順を使用してクラスターのプロビジョニングを開始しますが、プロビジョニングを完了しないでください。 Azure PowerShell または HDInsight .NET SDK を使用し、このスクリプトを使用してクラスターを作成することもできます。 これらの方法の詳細については、 スクリプト アクションを使用した HDInsight クラスターのカスタマイズに関するページを参照してください。 Azure portal の場合は、 [構成と価格] タブで、 [+ スクリプト アクションの追加] を選択します。
[ストレージ] で、jar ファイルのライブラリが含まれているストレージ アカウントがクラスターに使用されるアカウントと異なる場合は、[Additional storage accounts] (追加のストレージ アカウント) に入力します。
[スクリプト アクション] では、次の情報を指定します。
プロパティ 値 スクリプトの種類 - Custom 名前 ライブラリ Bash スクリプト URI https://hdiconfigactions.blob.core.windows.net/linuxsetupcustomhivelibsv01/setup-customhivelibs-v01.sh
ノードの種類 ヘッド、ワーカー パラメーター jar が格納されているコンテナーとストレージ アカウントの WASB アドレスを入力します。 たとえば、「 wasbs://libs@mystorage.blob.core.windows.net/
」のように入力します。Note
Apache Spark 2.1 の場合は、次の bash スクリプト URI を使用します。
https://hdiconfigactions.blob.core.windows.net/linuxsetupcustomhivelibsv01/setup-customhivelibs-v00.sh
「Linux の HDInsight クラスターのプロビジョニング」の説明に従って、クラスターのプロビジョニングを続行します。
クラスターの作成が完了したら、ADD JAR
ステートメントを使用しなくても、このスクリプトによって追加された jar を Hive から使用できます。
次のステップ
Hive の操作の詳細については、HDInsight での Apache Hive の使用に関するページを参照してください