Azure Marketplace への HDInsight アプリケーションの発行
Azure HDInsight アプリケーションは、Linux ベースの HDInsight クラスターにインストールできます。 この記事では、HDInsight アプリケーションを Azure Marketplace に発行する方法について説明します。 Azure Marketplace への発行全般に関する情報については、Azure Marketplace へのプランの発行方法に関する記事を参照してください。
HDInsight アプリケーションは、"ライセンス持ち込み (BYOL)" モデルを使用します。 BYOL シナリオでは、アプリ ユーザーに対するアプリケーションの使用許諾はアプリケーション提供者が行います。 また、アプリ ユーザーへの課金はアプリ ユーザーが作成した Azure リソース (HDInsight クラスターとクラスターの VM/ノードなど) についてのみ行われます。 現在、アプリケーションそのものに対する課金は Azure で発生しません。
詳しくは、次の HDInsight アプリケーションに関連する記事を参照してください。
- HDInsight アプリケーションをインストールする。 HDInsight アプリケーションをクラスターにインストールする方法を説明します。
- カスタム HDInsight アプリケーションをインストールする。 カスタム HDInsight アプリケーションをインストールしてテストする方法について説明します。
前提条件
カスタム アプリケーションを Azure Marketplace に送信するには、まず、カスタム アプリケーションを作成してテストします。
さらに、開発者アカウントの登録が必要となります。 詳しくは、Azure Marketplace へのプランの発行に関するページおよび「Microsoft 開発者アカウントの作成」をご覧ください。
アプリケーションの定義
Marketplace へのアプリケーションの発行は、2 段階の手順で実行されます。 最初に、createUiDef.json ファイルを定義します。 createUiDef.json ファイルは、どのクラスターがアプリケーションと互換性があるかを示します。 次に、Azure Portal からテンプレートを発行します。 以下に createUiDef.json ファイルの例を示します。
{
"handler": "Microsoft.HDInsight",
"version": "0.0.1-preview",
"clusterFilters": {
"types": ["Hadoop", "HBase", "Spark"],
"versions": ["4.0"]
}
}
フィールド | 説明 | 設定可能な値 |
---|---|---|
types | アプリケーションと適合するクラスターの種類。 | Hadoop、HBase、Spark のいずれか (またはその任意の組み合わせ) |
versions | アプリケーションと適合する HDInsight クラスターの種類。 | 3.4 |
アプリケーションのインストール スクリプト
アプリケーションがクラスター (既存のクラスターか新しいクラスターのいずれか) にインストールされると、エッジ ノードが作成されます。 アプリケーションのインストール スクリプトが、エッジ ノードで実行されます。
重要
アプリケーションのインストール スクリプトの名前は、個々のクラスターに一意である必要があります。 スクリプト名の形式は、以下のとおりです。
"name": "[concat('hue-install-v0','-' ,uniquestring(‘applicationName’)]"
スクリプト名は、3 つの部分で構成されます。
- スクリプト名のプレフィックス。アプリケーション名またはアプリケーションに関連する名前のどちらかが含まれている必要があります。
- ハイフン (読みやすくするため)。
- 一意の文字列の関数 (パラメーターとしてアプリケーション名を指定)。
保存されたスクリプト アクションの一覧では、上の例は hue-install-v0-4wkahss55hlas と表示されます。 JSON ペイロードのサンプルをご覧ください。
インストール スクリプトに必要な特性を次に示します。
- べき等スクリプトにします。 スクリプトを複数回呼び出すと、同じ結果が生成されます。
- スクリプトのバージョンを適切に管理します。 変更をアップグレードまたはテストするときに、スクリプト用に別の場所を使用します。 これにより、アプリケーションをインストールする顧客は、更新またはテストの影響を受けることがなくなります。
- スクリプトは、ポイントごとに適切なログ記録を持ちます。 通常、スクリプト ログは、アプリケーション インストールに関する問題をデバッグする唯一の方法です。
- インストールがネットワークの一時的な問題に影響されないように、外部サービスやリソースへの呼び出しの再試行数は十分に確保します。
- スクリプトがノードでサービスを開始する場合は、サービスを確実に監視し、ノードの再起動時にサービスが自動的に開始されるように構成します。
アプリケーションをパッケージ化する
HDInsight アプリケーションのインストールに必要なすべてのファイルを含んだ .zip ファイルを作成します。 .zip ファイルを使用してアプリケーションを発行します。 .zip ファイルには、次のファイルが含まれます。
- createUiDefinition.json
- mainTemplate.json (サンプルについては、「カスタム HDInsight アプリケーションのインストール」を参照してください。)
- 必要なすべてのスクリプト
注意
パブリックにアクセスできる任意のエンドポイントでアプリケーション ファイル (任意の Web アプリ ファイルを含む) をホストできます。
アプリケーションを発行する
HDInsight アプリケーションを発行するには:
Azure 発行にサインインします。
左側のメニューで、[ソリューション テンプレート] を選択します。
タイトルを入力し、[Create a new solution template](新しいソリューション テンプレートを作成する) を選択します。
組織をまだ登録していない場合は、[Create Dev Center account and join the Azure program](デベロッパー センター アカウントを作成して Azure プログラムに参加する) を選択します。 詳しくは、「Microsoft 開発者アカウントの作成」を参照してください。
[Define some Topologies to get Started](いくつかのトポロジを定義して開始する) を選択します。 ソリューション テンプレートは、作成したすべてのトポロジの「親」となります。 1 つのプランまたはソリューション テンプレートでは、複数のトポロジを定義できます。 プランをステージングにプッシュすると、すべてのトポロジも一緒にプッシュされます。
トポロジ名を入力し、 [+] を選択します。
新しいバージョンを入力し、 [+] を選択します。
アプリケーションのパッケージ化の際に、作成した .zip ファイルをアップロードします。
[Request Certification](証明書の要求) を選択します。 Microsoft の認定チームがファイルを確認し、トポロジを認定します。
次のステップ
- クラスターに HDInsight アプリケーションをインストールする方法を確認します。
- カスタム HDInsight アプリケーションをインストールし、未発行の HDInsight アプリケーションを HDInsight にデプロイする方法について確認します。
- Script Action を使って Linux ベースの HDInsight クラスターをカスタマイズし、アプリケーションをさらに追加する方法について説明します。
- Azure Resource Manager テンプレートを使用して、HDInsight での Linux ベースの Apache Hadoop クラスターを作成する方法を確認します。
- HDInsight クラスター、テスト HDInsight アプリケーション、およびホスティング HDInsight アプリケーションにアクセスするために HDInsight で空のエッジ ノードを使用する方法を確認します。