Denodo Platform Container 8.0 クイックスタートガイド

pdf形式で文書をダウンロードする


You can translate the document:

Docker コンテナーでの Denodo Platform の実行

前提条件

  1. Docker CE/EE バージョン 18.03 以降をインストールできる互換 OS
  2. tar 形式の Denodo Platform Container イメージ
  3. 有効な Denodo Platform ライセンス: スタンドアロンライセンス、または既存の Denodo Solution Manager で管理されるライセンス

Docker のインストール

使用しているオペレーティングシステムに対応した、Docker 公式 Web サイトの使用説明書に従い操作してください。たとえば、Ubuntu の使用説明書はこちらにあります。Docker をインストールしたら、次のコマンドをターミナルで実行することで Docker のバージョンを確認できます。

$ docker version

Client:

 Version:      18.03.1-ce

 API version:  1.37

 Go version:   go1.9.5

 Git commit:   9ee9f40

 Built:        Thu Apr 26 07:12:48 2018

 OS/Arch:      windows/amd64

 Experimental: false

 Orchestrator: swarm

Server:

 Engine:

  Version:      18.03.1-ce

  API version:  1.37 (minimum version 1.12)

  Go version:   go1.9.5

  Git commit:   9ee9f40

  Built:        Thu Apr 26 07:22:38 2018

  OS/Arch:      linux/amd64

  Experimental: true

Denodo Platform イメージを読み込む

denodo-container-8.0-xxxxxxxx.zip ファイルをダウンロードしたら、このファイルを展開して tar 形式の Denodo Platform コンテナーイメージを取り出す必要があります。このイメージは、docker load コマンドにより Docker に読み込ませることができます。

たとえば、次のコマンドを実行することで、denodo-platform-latest.tar ファイルを読み込むことができます。

$ docker load -i denodo-platform-latest.tar

Loaded image: denodo-platform:8.0-latest

Denodo Platform イメージを実行する

Denodo Platform コンテナーイメージは、スタンドアロン Denodo ライセンス (Denodo Express ライセンスや評価版ライセンスなど)、または Denodo Solution Manager で管理されるライセンスのどちらかで使用できます。

スタンドアロンライセンス

スタンドアロン Denodo ライセンス (Denodo Express ライセンスや評価版ライセンスなど) を使用している場合は、ライセンスファイルをダウンロードしてホスト OS の任意の場所に置く必要があります。そうすることで、次のコマンドを実行するだけで、このイメージを起動できるようになります。

$ docker run -d -h <hostname> -p 9999:9999 -p 9997:9997 -p 9996:9996 -p 9995:9995 -p 9090:9090 -v <path>:/opt/denodo/conf/denodo.lic --rm --name denodo-vdpserver denodo-platform:8.0-latest ./denodo-container-start.sh --vdpserver

各オプションの意味は次のとおりです。

-d

オプション。バックグラウンドでコンテナーを実行し、コンテナー ID を表示します。

-h <hostname>

新しいコンテナーの内部名を設定します。このコンテナーで実行されている VDP サーバーへの接続に使用するホスト名を hostname に指定する必要があります。また、このホスト名が解決され、クライアントアプリケーションからアクセスできる必要があります。localhost を使用すると、ホストから接続する場合に簡単になります。

-p 9999:9999 -p 9997:9997 -p 9996:9996 -p 9995:9995 -p 9090:9090

コンテナーのポートをパブリッシュします。VDP サーバーが使用する次のデフォルトポートがホストへパブリッシュされます: 9999、9997、9996、9995、9090。別の構成を使用したい場合は、後述の「Denodoポートを変更する」を参照してください。

-v <path>:/opt/denodo/conf/denodo.lic

Denodo サーバーが使用するスタンドアロン Denodo ライセンスファイルを指定します。各オプションの意味は次のとおりです。

<path> - ホスト OS におけるライセンスファイルのパス。例: /home/denodo/denodo.lic

/opt/denodo/conf/denodo.lic - コンテナーにおけるライセンスファイルのパス (このパスを変更しないこと)

--rm

オプション。このフラグにより、コンテナーを終了させるときに、自動的にコンテナーをクリーンアップしてファイルシステムを削除するよう、Docker に指示します。

--name denodo-vdpserver

オプション。ホストシステムから参照するコンテナーの名称です。

        

Denodo Solution Manager で管理されるライセンス

Denodo Solution Manager を使用してライセンスを管理している場合、必要なのは、Solution Manager において、コンテナーで実行されている VDP サーバーに対応する新しいサーバーを作成することだけです。

Solution Manager 管理ツールで VDP サーバーを登録するときは、host フィールドがコンテナーに割り当てるホスト名に一致すること、また port フィールドが 9999 (VDP サーバーがコンテナー内部で使用するデフォルトポート) を指すことが重要です。

Solution Manager 構成ファイルをホスト OS の任意の場所に作成する必要があります。この構成ファイルでは、License Manager の host と port の値を指定する必要があります。host は、コンテナーによって、License Manager が動作している IP アドレスに名前解決される必要があります。また port は License Manager がリッスンしているポート (デフォルトでは、このポートは 10091) を指定します。コンテナーは、その IP アドレスとポート番号に接続できる必要があります。

Solution Manager がデフォルトポート構成で solution-manager という名前のホストで動作している場合、対応する SolutionManager.properties ファイルは次のとおりです。

com.denodo.license.host=solution-manager

com.denodo.license.port=10091

構成ファイルが作成されると、次のコマンドによりコンテナーで VDP サーバーを起動できます。

$ docker run -d -h <hostname> -p 9999:9999 -p 9997:9997 -p 9996:9996 -p 9995:9995 -p 9090:9090 -v <path>:/opt/denodo/conf/SolutionManager.properties --rm --name denodo-vdpserver denodo-platform:8.0-latest ./denodo-container-start.sh --vdpserver

各オプションの意味は次のとおりです。

-d

オプション。バックグラウンドでコンテナーを実行し、コンテナー ID を表示します。

-h <hostname>

コンテナーのホスト名を指定します。この名前は、この VDP サーバーの Denodo Solution Manager の定義で使用される名前と一致する必要があります、また、このホスト名が解決され、クライアントアプリケーションからアクセスできる必要があります。 

-p 9999:9999 -p 9997:9997 -p 9996:9996 -p 9995:9995 -p 9090:9090

コンテナーのポートをパブリッシュします。VDP サーバーが使用する次のデフォルトポートがホストへパブリッシュされます: 9999、9997、9996、9995、9090。別の構成を使用したい場合は、後述の「Denodoポートを変更する」を参照してください。

-v <path>:/opt/denodo/conf/SolutionManager.properties

Denodo サーバーが使用する Solution Manager の構成ファイルを指定します。各オプションの意味は次のとおりです。

<path> - ホスト OS における Solution Manager の構成ファイルのパス。例: /home/denodo/SolutionManager.properties

/opt/denodo/conf/SolutionManager.properties - コンテナーにおける SolutionManager.properties ファイルのパス (このパスを変更しないこと)

--rm

オプション。このフラグにより、コンテナーを終了させるときに、自動的にコンテナーをクリーンアップしてファイルシステムを削除するよう、Docker に指示します。

--name denodo-vdpserver

オプション。ホストシステムから参照するコンテナーの名称です。

Solution Manager イメージを読み込む

solution-manager-container-8.0-xxxxxxxx.zip ファイルをダウンロードしたら、このファイルを展開して tar 形式の Solution Manager コンテナーイメージを取り出す必要があります。このイメージは、docker load コマンドにより Docker に読み込ませることができます。

たとえば、次のコマンドを実行することで、solution-manager-latest.tar ファイルを読み込むことができます。

$ docker load -i solution-manager-latest.tar

Loaded image: solution-manager:8.0-latest

Solution Manager イメージを実行する

Solution Manager コンテナーイメージにはローカルにデプロイされた Solution Manager ライセンスが必要なため、ライセンスファイルをダウンロードしてホスト OS の任意の場所に置いておく必要があります。そうすることで、次のコマンドを実行するだけで、このイメージを起動できるようになります。

$ docker run -d -h <hostname> -p 10090:10090 -p 10091:10091 -p 19090:19090 -v <path>:/opt/denodo/conf/denodo.lic --rm --name solution-manager solution-manager:8.0-latest ./denodo-container-start.sh --lmserver --smserver --smadmin

各オプションの意味は次のとおりです。

-d

オプション。バックグラウンドでコンテナーを実行し、コンテナー ID を表示します。

-h <hostname>

新しいコンテナーの内部名を設定します。このコンテナーで実行されている VDP サーバーへの接続に使用するホスト名を hostname に指定する必要があります。また、このホスト名が解決され、クライアントアプリケーションからアクセスできる必要があります。localhost を使用すると、ホストから接続する場合に簡単になります。

-p 10090:10090 -p 10091:10091 -p 19090:19090

コンテナーのポートをパブリッシュします。Solution Manager が使用する次のデフォルトポートがホストへパブリッシュされます: 10090、10091、19090。別の構成を使用したい場合は、後述の「Denodoポートを変更する」を参照してください。

-v <path>:/opt/denodo/conf/denodo.lic

Denodo サーバーが使用するスタンドアロン Denodo ライセンスファイルを指定します。各オプションの意味は次のとおりです。

<path> - ホスト OS におけるライセンスファイルのパス。例: /home/denodo/denodo.lic

/opt/denodo/conf/denodo.lic - コンテナーにおけるライセンスファイルのパス (このパスを変更しないこと)

--rm

オプション。このフラグにより、コンテナーを終了させるときに、自動的にコンテナーをクリーンアップしてファイルシステムを削除するよう、Docker に指示します。

--name solution-manager

オプション。ホストシステムから参照するコンテナーの名称です。

付録

コンテナーを停止する

docker kill コマンドではなく、docker stop コマンドを使用してコンテナーを正常に停止することをお勧めします。これにより、コンテナーを停止する前に、実行中のサービスが停止し、確保されたリソースが開放されるようになります。これは、VDP サーバーが Denodo Solution Manager で管理されるライセンスを使用している場合、特に重要です。なぜなら、適切なシャットダウン中に VDP サーバーがライセンスを開放しないと、猶予期間中にライセンスがロックされることになるからです。コンテナーを正常に停止するコマンドは次のとおりです。

$ docker stop denodo-vdpserver

ここで、denodo-vdpserver は、コンテナーに割り当てた名前です。

メタデータを読み込む

コンテナーが実行されると、以下の 2 つの方法でメタデータをインポートできます。

  • docker cp コマンドを使って VQL エクスポートファイルをコピーし、docker exec コマンドで $DENODO_HOME/bin ディレクトリにある import.sh スクリプトを実行します。あるいは、
  • VDP Administration Tool の「[File] > [Import]」オプションを使って通常行っているように、VQL エクスポートファイルをインポートします。

メタデータの読み込みにコマンドラインを使用する例:

$ docker cp metadata.vql denodo-vdpserver:/opt/denodo

$ docker exec denodo-vdpserver ./bin/import.sh --singleuser -f metadata.vql -h localhost/admin?admin@admin

VQL をインポートしたら、コンテナーの状態を保存して、コンテナーへの変更を永続化できます。

コンテナーの状態を保存する

コンテナーにおけるメタデータの変更を永続化させたい場合は、Docker ボリュームを使用する、あるいは docker commit コマンドにより変更をコミットして新しい Docker イメージを作成することができます。

次のコマンドを発行してコミットできます。

$ docker commit denodo-vdpserver [repository:tag]

コンテナーに名前がない場合は、まず docker ps を実行してコンテナー ID を取得し、名前の代わりに ID を使用する必要があります。オリジナルのイメージを上書きしたい場合は、コンテナーの実行に使用されるものと同じ repository:tag を使用できます。repository:tag の値を指定しない場合は、名前のないイメージが作成されます。

VDP Administration Tool を使用して接続する

ホストまたは別のコンピュータで実行されている VDP Administration Tool を使用して、コンテナーで実行されている VDP サーバーに接続することができます。ただし、VDP Administration Tool を実行したいコンピュータが、Docker コンテナーに割り当てた名前を解決できるようにする必要があります (DNS または hosts ファイルを使用)。

次のデフォルト接続設定を使用します。

ログイン:                admin

パスワード:                admin

サーバー URI:                //<hostname>:9999/admin

ここで、9999 は、VDP サーバーコンテナーのパブリッシュされた (外部) ポートを表します。

追加ツールを起動する

VDP サーバーが実行されている同じコンテナーで Denodo Data Catalog や Denodo Diagnostic & Monitoring Tool を起動できるよう、Denodo コンテナーイメージがあらかじめ構成されています。

これらの追加ツールを起動したい場合は、次のコマンドを使用します。

$ docker run -d -h <hostname> -p 9999:9999 -p 9997:9997 -p 9996:9996 -p 9995:9995 -p 9090:9090 -v <path>:/opt/denodo/conf/SolutionManager.properties --rm --name denodo-vdpserver denodo-platform:8.0-latest ./denodo-container-start.sh --vdpserver --datacatalog --dmt

各オプションの意味は次のとおりです。

--datacatalog

オプション。Denodo Data Catalog Web アプリケーションを起動します。

--dmt

オプション。Denodo Diagnostic & Monitoring Tool を起動します。

これら 2 つの追加ツールは、スタンドアロン Denodo ライセンスでも起動できます。

追加アプリケーションを実行するにはローカルの VDP サーバーが必要になるため、VDP サーバーも格納しないと、個別のコンテナーでアプリケーションを実行することはできません。

Denodo ポートを変更する

この Docker コマンドについてはすでに説明していますが、コンテナー内部で Denodo Platform が使用するポートと同じポートをホスト内でパブリッシュしています。これは、Docker コマンドの引数により次のように定義されています。

-p 9999:9999 -p 9997:9997 -p 9996:9996 -p 9995:9995 -p 9090:9090

Denodo Platform では、このポートをデフォルトで以下のように使用しています。

9999 - Denodo (JDBC、VDP Admin Tool...)

9997 - RMI レジストリ (JMX)

9996 - ODBC

9995 - RMI ファクトリ (JMX)

9090 - Web コンテナー

Solution Manager では、このポートをデフォルトで以下のように使用しています。

10090 - Solution Manager

10091 - License Manager

19090 - Web Administration

複数の Denodo Platform コンテナーを同じホストで実行する場合、パブリッシュされたポートはコンテナーごとに異なっている必要があります。前述の Docker の引数を次のものに置き換えると、どのポートでも変更できます。

-e FACTORY_PORT=<factory_port> -p <factory_port>:<factory_port> -p <server_port>:9999 -p <registry_port>:9997 -p <odbc_port>:9996 -p <web_port>:9090

各オプションの意味は次のとおりです。

<factory_port>

JDBC ドライバーが必要とする RMI ファクトリポートとして使用されるホストのポート番号を表します。同じポートがホスト、およびコンテナー内部でも使用されます。

<server_port>, <registry_port>, <odbc_port>, <web_port>

各内部ポートにマッピングされるホストのポート番号を表します: 9999、9997、9996、9090。この目的でコンテナー内部で使用されるポートは、デフォルト構成を維持します。

Denodo 設定を変更する

Denodo Administration の標準手順に従うことで、コンテナーイメージのすべての Denodo 設定を変更できます。次のコマンドを実行すると、Denodo コンテナーでインタラクティブシェルを開くことができます。

$ docker exec -it denodo-vdpserver bash

変更を完了して bash のインタラクティブセッションを終了すると、すでに説明したように、コンテナーの状態を保存できます。

要求に合わせて JVM メモリオプションを構成することがよくあります。この値を変更する前に、Denodo ナレッジベース (KB) の記事「Denodo Admin and Development Best Practices」 (Denodo 管理と開発ベストプラクティス) の「JVM Configuration」 (JVM 構成) を読むことをお勧めします。

コア数を制限する

Denodo コンテナーが使用するプロセッサー数を制限したい場合は、Docker オプション --cpuset-cpus を使用して、Docker コンテナーを実行できるコアを制限できます。このパラメーターで設定する CPU の範囲が、Docker デーモンに割り当てられる CPU の最大数を超えることができないことに注意してください。

次のコマンドにより、VDP サーバーの実行をコア 0 から 3 に制限します。

$ docker run --cpuset-cpus 0-3 -d -h <hostname> -p 9999:9999 -p 9997:9997 -p 9996:9996 -p 9995:9995 -p 9090:9090 -v <path>:/opt/denodo/conf/SolutionManager.properties --rm --name denodo-vdpserver denodo-platform:8.0-latest ./denodo-container-start.sh --vdpserver

ネットワークを構成する

コンテナーの固有 IP アドレスは、既存の Docker ネットワークから割り当てる、あるいは新しい Docker ネットワークを作成することで割り当てることができます。新しいネットワークを作成するには、次のコマンドを使用できます。

$ docker network create --subnet=172.19.0.0/16 denodonet

そして、次のコマンドを使用することで、この新しいネットワークから IP をコンテナーに割り当てることができます。

$ docker run --net denodonet --ip 172.19.0.3 -d -h <hostname> -p 9999:9999 -p 9997:9997 -p 9996:9996 -p 9995:9995 -p 9090:9090 -v <path>:/opt/denodo/conf/SolutionManager.properties --rm --name denodo-vdpserver denodo-platform:8.0-latest ./denodo-container-start.sh --vdpserver

Denodo Platform と Solution Manager の両方を起動する

Denodo Platform と Solution Manager の両方を、同じまたは別のコンピュータにあるコンテナーとして実行できます。ただし、各コンテナーはもう一方のコンテナーに接続できる必要があることを考慮する必要があります。つまり、コンテナーのホスト名をアクセス可能な IP アドレスに解決できる必要があります。

これを実現するには、外部 DNS リゾルバーを利用して適切なホスト名をコンテナーに割り当てる、あるいは Docker の hosts ファイル編集機能を利用してカスタムホスト名を使います。

hosts ファイルを構成するには、まずコンテナーが実行されている 1 つまたは複数のコンピュータのパブリック IP を取得する必要があります。ローカル IP アドレスは、Linux コマンド hostname -I、あるいは Windows コマンド ipconfig | findstr Ipv4 により取得できます。Denodo Platform と Solution Manager の IP アドレスを <denodo-public-ip><solman-public-ip> と表すことにしますが、両方のコンテナーが同じコンピュータで動作している場合は、IP アドレスは同じ値になります。 

次のコマンドで Solution Manager を起動する必要があります。

$ docker run -d --name <solman-container-name> -h <solman-hostname> --add-host <denodo-hostname>:<denodo-public-ip> -p 10090:10090 -p 10091:10091 -p 19090:19090 -v <path-to-solution-manager-license>:/opt/denodo/conf/denodo.lic solution-manager:8.0-latest ./denodo-container-start.sh --lmserver --smserver --smadmin

次に、Solution Manager Web ツール http://localhost:19090/solution-manager-web-tool/ に接続して新しい Denodo Platform サーバーを登録し、そのサーバー用に使用する <denodo-hostname> の値が、後で実際のサーバーを起動するときに使用するものと同じ値になるようにする必要があります。Solution Manager の起動を完了させるには少し時間がかかること、またコンテナーの一時性により、Solution Manager のコンテナーが削除されると、そのデータはすべて削除されることに注意してください。詳細については、KB の記事「Data Persistence in Containers」(コンテナーにおけるデータ永続性) を参照してください。

サーバーが登録されると、Denodo Platform のインスタンスを起動できます。「Denodo Solution Manager で管理されるライセンス」に従い Denodo Platform を構成するには、以下の内容を含むカスタム SolutionManager.properties ファイルが必要になります。

com.denodo.license.host=<solman-hostname>

com.denodo.license.port=10091

Denodo Platform の起動コマンドは次のようになります。

$ docker run -d --name <denodo-container-name> -h <denodo-hostname> --add-host <solman-hostname>:<solman-public-ip> -p 9999:9999 -p 9997:9997 -p 9996:9996 -p 9995:9995 -p 9090:9090 -v <path-to-solution-manager-properties>:/opt/denodo/conf/SolutionManager.properties denodo-platform:8.0-latest ./denodo-container-start.sh --vqlserver

Solution Manager の [License Usages] セクションを調べると、Denodo Platform サーバーがライセンスを取得しているかどうかを確認できます。