Denodo Platform Container 8.0 クイックスタートガイド
You can translate the document:
Docker コンテナーでの Denodo Platform の実行
前提条件
- Docker CE/EE バージョン 18.03 以降をインストールできる互換 OS
- tar 形式の Denodo Platform Container イメージ
- 有効な 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 サーバーがライセンスを取得しているかどうかを確認できます。