RapidMiner ServerのDockerイメージ
本ドキュメントでは、以下のDockerイメージについて説明しています。
- RapidMiner Server(rapidminer/rapidminer-server:latest)
- Python環境マネージャーをサポートしているRapidMiner Server (rapidminer/rapidminer-server:latest-python)
このイメージは、Docker Hubでダウンロードできます。
概要
このイメージにはRapidMiner Serverインスタンスが含まれており、スケーラブルなアーキテクチャを使用して共同作業を行うことができ、実運用へデプロイすることができます。RapidMinerのプロセスを実行するには、少なくとも1つのジョブエージェントと接続する必要があります。
利用可能なバージョンについては、タグを参照してください。
組み込みのジョブエージェントやデータベースを含んでいる、トライアルやテスト用の自己完結型のデプロイメントを作成しました。これは、RapidMiner Serverとその機能をつかむためにのみ使用してください。自己完結型のデプロイメントの仕様は以下をご覧ください。
ブートストラップ処理
RapidMiner Serverは、ユーザーの設定をデータベースとRapidMinerホームディレクトリのファイルシステムに保存します。このイメージは、既存の設定を保持していても、していなくても使用できます。コンテナの起動ごとに実行される、任意の初期化処理と必須の起動処理を実装しました。
- 既存のRapidMinerホームボリュームがマウントされておらず(マウントポイントが空)、データベースが空の状態で起動すると、初期化処理が起動します。
- マウントされた空のボリュームをデフォルトのRapidMiner Homeフォルダの内容で初期化します。
- 提供された場合は、外部から提供されたJDBCドライバ(/jdbc-drivesボリュームマウント)、JDBC_JAR_FILENAMEおよびJDBC_DRIVER_CLASSパラメータを確認します。
- オプションで提供されているJDBC設定および/またはDBTYPEパラメータに基づいて、RapidMiner Server / JBossのJDBCドライバモジュールとデータソース定義を設定します。PostgreSQL、Microsoft SQL、Oracleデータベース用のデフォルトのJDBCドライバを提供していますが、MySQL用ではありません。提供しているデフォルトのJDBCドライバではなく他のバージョンを使用したい場合は、前述のJDBCドライバ設定を使用して、カスタムJDBCドライバを使用することもできます。
- デフォルトの内容でRapidMinerデータベースの初期化を実行します(Hibernateテクノロジーを使用したRapidMiner Server / JBossの起動時)。
- 既存の(空ではない)RapidMinerホームボリュームと初期化されたRapidMinerデータベースのコンテンツが提供された場合は、初期化手順をスキップして(例えば、JDBCドライバの初期化をスキップして、デフォルトのRapidMinerホームディレクトリとデフォルトのデータベースコンテンツをロードしません)、起動処理を続けます。
- オプションで、外部パラメータを使用して、データベース接続(ホスト、ポート、ユーザー名、パスワード)を設定できます。
- オプションで、外部パラメータを使用して、ActiveMQの認証情報(ユーザー名とパスワード)を設定できます。
- 外部にマウントされたオプションのブートストラップスクリプト(/bootstrap.dボリュームマウント)を実行します。
- RapidMiner Server / JBossを起動します。
構成
- ボリューム
- /persistent-rapidminer-home: すべての設定ファイル、エクステンション、ライセンス、ログ、リポジトリデータを含む、RapidMinerホームフォルダを保存するボリュームマウントです。詳細は、後述のデータの持続性の章をご覧ください。
- /bootstrap.d: 初期化フェーズの後、RapidMiner Server (JBoss)の起動前に実行される、オプションの起動時の設定スクリプト用のボリュームマウントです。
- /jdbc-drives: 外部から提供されたJDBCドライバのjarファイル(MySQLデータベース用など)をマウントするボリュームです。
- ポート:
- 1081と1082ポート(Radoop Proxyの通信に使用)
- 5672ポート(ActiveMQの通信に使用)
- 8080ポート(webインタフェースに使用)
- 環境変数:
- DBTYPE: 既存のデータベースがなく、RapidMinerホームフォルダを初期化した状態でコンテナを起動する場合、希望のデータベースタイプを使用する(初期化処理を行う)ために、この変数にはサポートされているデータベースプラットフォーム(mysql、pgsql、mssql、oracle)のいずれかを設定します。デフォルト値は”pgsql”です。MySQLをデータベースタイプに選択した場合、JDBCドライバのjarファイルも提供する必要がありますが、ライセンス条件により、コンポーネントには同梱されていません。
- DBHOST、DBPORT、DBUSER、DBPASS、DBSCHEMA: これらの変数を設定して、RapidMiner Serverが外部のデータベースに接続できるよう設定します。提供されたデータベースが空の場合は、最初のRapidMiner Serverデータベースで初期化されます。
- JDBC_JAR_FILENAME: 外部のJDBCドライバのjarファイルを/jdbc-driversマウントポイントにマウントした場合、そのドライバを取得して使用するために、コンテナの初期化処理中にそのファイル名(フルパスではなく、ファイル名のみ)を与えておく必要があります。
- JDBC_DRIVER_CLASS: このパラメータは、JDBC_JAR_FILENAMEと一緒にオプションで提供されます。設定した場合は、RapidMiner Server DataSource定義でこのJavaクラスが指定されます。何も指定しなかった場合は、ブートストラップ処理は、提供されたJDBCのjarファイルを基にJavaクラス名を推測します。
- BROKER_ACTIVEMQ_USERNAME、BROKER_ACTIVEMQ_PASSWORD: Serverとそれと接続するジョブエージェント間の通信に使用されるActiveMQサービスの認証情報です。
- JOBSERVICE_AUTH_SECRET: Serverとそれと接続するジョブエージェント間の通信に使用される認証シークレットです。ジョブエージェント間の通信を可能にするために、ジョブエージェントにも同じシークレットを提供する必要があります。ここでは、Base64エンコード文字列が期待されます。
- PROXY_INTERNALPROXIES、PROXY_HTTP_PORT、PROXY_HTTPS_PORT: リバースプロキシの後ろでRapidMiner Serverを使用している場合、これらの値を設定して、RapidMiner Serverにプロキシとそのポートについて知らせ、これらのパラメータに基づいてRapidMiner Serverが外部URLを構築できます(例: リダイレクト)。
- PROXY_INTERNALPROXIESには、内部で使用されるRemoteIpValveモジュールのinternalProxiesのパラメータのネットワーク定義を含む必要があります。デフォルトでは、10/8、192.168/16、169.254/16、127/8、172.16/12のネットワークが含まれています。
- PROXY_HTTP_PORTとPROXY_HTTPS_PORTのデフォルト値は80と443です。
- INTERACTIVE_MODE: この変数を “1”に設定すると、RapidMiner Serverプロセスを起動せずにインタラクティブなbashシェルを起動します。サーバーの設定やプラグインのインストールができ、その後RapidMiner Serverプロセスを手動で起動することができます。これはトラブルシューティングのみを目的としたものです。
- TZ: TZデータベースフォーマットに基づくタイムゾーンの指定(例: America/New_York)
- PA_BASE_URL: Platform Adminコンポーネントへのアクセスに使用されるHTTP URLです。-pythonバージョンのイメージでのみ利用可能です。
- SSO_PUBLIC_URL、SSO_IDP_REALM、SSO_CLIENT_ID、SSO_CLIENT_SECRET: RapidMiner Identity and Securityの設定です。initサービスで自動的に入力されます。
- SERVER_MAX_MEMORY: RapidMiner Serverが使用できる最大メモリ量です。
- LEGACY_REST_BASIC_AUTH_ENABLED: ServerのRESTのエンドポイントでHTTP Basic認証を許可します。デフォルトはfalseです。有効にするとセキュリティの安全性が低下するため、レガシーな方法を用いる理由がある場合にのみ有効化を検討してください。
- JUPYTER_URL_SUFFIX、 GRAFANA_URL_SUFFIX: JupyterHubやダッシュボードにアクセスするための外部URLサフィックスです。
データの持続性
RapidMinerのホームディレクトリには、RapidMiner Serverイメージに関連するすべてのデータと設定が保存されます。
このデータを持続させるには、マウントポイント/persistent-rapidminer-homeにボリュームをマウントした状態でコンテナを起動しているか確認します。
- マウントされたボリュームが空の場合は、RapidMiner Serverが使用するために、初期化段階でデフォルトの設定とデータコンテンツがボリュームに入ります。
- ボリュームに以前の実行時のデータが含まれている場合は、サーバーはそのデータを使って起動します。
このボリュームには、すべての設定ファイル、エクステンション、ライセンス、ログ、リポジトリのデータが含まれます。最初の実行(空のボリュームがマウントされている状態)の後、以下のデータを編集することができます。
- エクステンションは、<volume>/resources/extensionsフォルダに追加してインストールできます。
- ライセンスは<volume>/resources/licensesにインストールできます。
- 設定情報は、<volume>/configurationに格納されたファイルを介して調整することができます。
Good to know
- RapidMiner Serverには最低8GB以上のメモリが必要です。Windowsホストでは、Docker Engineが十分なメモリで動作するように設定されているか確認してください。
- ライセンスのマウントポイントは、標準的なRapidMinerライセンスフォルダでなければならず、rapidminer-server、rapidminer-studio、radoopという名前のサブフォルダにライセンスファイルを含むようにします。
- Windowsシステムでボリュームをマウントするには、Windows固有のDockerボリュームのマウント設定があることに注意する必要があります。
- Dockerの設定でドライブが共有されていることを確認します。
- docker-composeを使用する場合は、環境変数 “COMPOSE_CONVERT_WINDOWS_PATHS=1″にする設定を検討してください。
- Dockerがマウントされたファイルやフォルダに読み込みや書き込みができることを確認します。
自己完結型のデプロイメント
これは、自身のコンピュータ上で一人で簡単に試用することを目的としています。このデプロイでは、データの持続性は実装されていません。上記の使用目的以外の場合は、デプロイメントのテンプレートのいずれかから開始してください。
自己完結型のデプロイメントでは、組み込まれたジョブエージェントとデータベースを使用してジョブを実行します。自己完結型のデプロイメントを開始するには、以下の環境変数を指定する必要があります。
- EMBEDDED_DATABASE: コンテナに組み込まれたPostgreSQLデータベースサーバーを起動するために、これを”1″に設定します。なお、組み込まれているデータベースサーバーを使用したデータの持続性は実装されていません。
- BUNDLED_JOB_AGENT: バンドルされているジョブエージェントを起動するために、これを “1”に設定します。
- JOBAGENT_QUEUE_ACTIVEMQ_USERNAME、JOBAGENT_QUEUE_ACTIVEMQ_PASSWORD: Serverとバンドルされているジョブエージェント間の通信に使用されるActiveMQサービスの認証情報です。
- JOBAGENT_AUTH_SECRET: バンドルされたジョブエージェントの認証シークレットを設定するために使用されます。ここでは、Base64エンコード文字列が期待されます。