次の方法で共有


HDInsight クラスターの作成時にカスタム Apache Hive ライブラリを追加する

HDInsight で Apache Hive ライブラリを事前に読み込む方法について説明します。 このドキュメントでは、クラスターの作成時にスクリプト アクションを使用してライブラリを事前に読み込む方法について説明します。 このドキュメントの手順を使用して追加されたライブラリは、Hive でグローバルに使用できます。 ADD JAR を使用して読み込む必要はありません。

しくみ

クラスターを作成するときに、スクリプト アクションを使用して、クラスター ノードの作成時に変更できます。 このドキュメントのスクリプトは、ライブラリの場所である 1 つのパラメーターを受け入れます。 この場所は Azure ストレージ アカウント内にあり、ライブラリは 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 は、1 つのコンテナー内の Azure Blob Storage に格納する必要があります。

  • jar ファイルのライブラリを含むストレージ アカウントは、作成時に HDInsight クラスターにリンクされている 必要があります 。 既定のストレージ アカウントであるか、ストレージ アカウント 設定で追加されたアカウントである必要があります。

  • コンテナーへの WASB パスは、スクリプト アクションのパラメーターとして指定する必要があります。 たとえば、jar が mystorage という名前のストレージ アカウントの libs という名前のコンテナーに格納されている場合、パラメーターはwasbs://libs@mystorage.blob.core.windows.net/

    このドキュメントでは、ストレージ アカウント、BLOB コンテナーを既に作成し、ファイルをアップロード済みであることを前提としています。

    ストレージ アカウントを作成していない場合は、 Azure portal から作成できます。 その後、 Azure Storage Explorer などのユーティリティを使用して、アカウントにコンテナーを作成し、それにファイルをアップロードできます。

スクリプトを使用してクラスターを作成する

  1. 「Linux で HDInsight クラスターをプロビジョニングする」の手順を使用してクラスターのプロビジョニングを開始しますが、プロビジョニングは完了しません。 Azure PowerShell または HDInsight .NET SDK を使用して、このスクリプトを使用してクラスターを作成することもできます。 これらのメソッドの使用方法の詳細については、「スクリプト アクションを使用して HDInsight クラスターをカスタマイズする」を参照してください。 Azure portal の [ 構成 + 価格 ] タブで、[ + スクリプトの追加] アクションを選択します。

  2. ストレージの場合、jar ファイルのライブラリを含むストレージ アカウントがクラスターに使用されているアカウントと異なる場合は、追加のストレージ アカウントを完了します。

  3. スクリプト アクションの場合は、次の情報を指定します。

    プロパティ 価値
    スクリプトの種類 - カスタム
    名前 ライブラリ
    バッシュスクリプト URI https://hdiconfigactions.blob.core.windows.net/linuxsetupcustomhivelibsv01/setup-customhivelibs-v01.sh
    ノードの種類 主任、労働者
    パラメーター jar を含むコンテナーとストレージ アカウントの WASB アドレスを入力します。 たとえば、wasbs://libs@mystorage.blob.core.windows.net/ のようにします。

    Apache Spark 2.1 の場合は、次の bash スクリプト URI: https://hdiconfigactions.blob.core.windows.net/linuxsetupcustomhivelibsv01/setup-customhivelibs-v00.shを使用します。

  4. Linux での HDInsight クラスターのプロビジョニングに関する記事の説明に従って 、クラスターのプロビジョニングを続行します。

クラスターの作成が完了すると、 ADD JAR ステートメントを使用しなくても、Hive からこのスクリプトで追加された jar を使用できます。

次のステップ

Hive の操作の詳細については、HDInsight での Apache Hive の使用に関する記事を参照してください。