Flinkサービスを個別にデプロイする方法
Flinkは HAP システムの拡張モジュールです。ユーザーはモジュールの有効・無効を選択できます。迅速なデプロイについては「Flinkサービスのデプロイ」をご参照ください。
クイックデプロイでは、Flinkサービスを HAP のマイクロサービスと同じサーバー上にデプロイしますが、高いハードウェアリソースが必要です。単一サーバーで要件を満たせない場合は、本ドキュメントを参考に新規サーバー上でFlinkサービスを個別にデプロイしてください。サーバー構成の目安は「単体Flinkサーバー構成」を参照してください。
Dockerのインストール
Dockerのインストール方法は、Docker公式ガイドまたは、デプロイ手順例の「Dockerインストール」セクションをご覧ください。
現行HAPサービスに独立MinIOサービスが存在するか確認
HAPサーバー上で以下のコマンドを実行し、出力内にstart minioキーワード を含む行が存在するか確認します。
docker logs $(docker ps | grep sc | awk '{print $1}') | grep minio
- 出力があれば、独立したMinIOサービスが存在します。
- 出力がなければ、独立MinIOサービスは存在しません。
HAPマイクロサービス側の調整
- 独立 MinIO サービスあり
- 独立 MinIO サービスなし
FlinkサービスはMinIO、Kafka、MongoDBサービスへのアクセスが必要です。この場合、(スタンドアロンモードの場合)ローカルストレージコンテナの3つのサービス公開ポートをマッピングしてください。HAPがクラスターモードの場合は調整不要です。
下記の設定例を参考に、docker-compose.yamlを修正してください。
- MinIO、Kafka、MongoDBサービスのポートをマッピングします。
集計テーブル機能を有効にする場合のみFlinkはMongoDBへのアクセスが必要です。未使用の場合はMongoDBのポートマッピングは不要です。
MongoDBのポートマッピングが必要な場合、スタンドアロンモードの内蔵MongoDBでは認証がデフォルトで無効です。変更時はデータセキュリティのドキュメントを必ず参照してください。
- FlinkサービスへのHAP接続用環境変数を設定します。
app:
environment:
ENV_FLINK_URL: http://192.168.10.30:58081 # 追加:Flinkサービスのアドレスを指定。実際のIPに応じて修正
sc:
ports:
- 9010:9010 # 新規:MinIOポートマッピング
- 9092:9092 # 新規:Kafkaポートマッピング
- 27017:27017 # 新規:MongoDBポートマッピング
例:docker-compose.yaml設定ファイル
- Linux amd64
- Linux arm64
version: '3'
services:
app:
image: nocoly/hap:7.5.1
environment: &app-environment
ENV_ADDRESS_MAIN: "https://hap.domain.com"
ENV_APP_VERSION: "7.5.1"
ENV_API_TOKEN: "******"
ENV_FLINK_URL: http://192.168.10.30:58081 # 追加:Flinkサービスのアドレス。実運用に応じて修正
ports:
- 8880:8880
volumes:
- ./volume/data/:/data/
- ../data:/data/hap/data
sc:
image: nocoly/sc:3.2.0
environment:
<<: *app-environment
volumes:
- ./volume/data/:/data/
ports:
- 9010:9010 # 新規:MinIOポートマッピング
- 9092:9092 # 新規:Kafkaポートマッピング
- 27017:27017 # 新規:MongoDBポートマッピング
version: '3'
services:
app:
image: nocoly/hap-arm64:-
environment: &app-environment
ENV_ADDRESS_MAIN: "https://hap.domain.com"
ENV_APP_VERSION: "-"
ENV_API_TOKEN: "******"
ENV_FLINK_URL: http://192.168.10.30:58081 # 追加:Flinkサービスのアドレス。実運用に応じて修正
ports:
- 8880:8880
volumes:
- ./volume/data/:/data/
- ../data:/data/hap/data
sc:
image: nocoly/sc-arm64:-
environment:
<<: *app-environment
volumes:
- ./volume/data/:/data/
ports:
- 9010:9010 # 新規:MinIOポートマッピング
- 9092:9092 # 新規:Kafkaポートマッピング
- 27017:27017 # 新規:MongoDBポートマッピング
修正後、管理スクリプトのディレクトリで以下を実行します。
bash service.sh restartall
これでマイクロサービスが再起動され、変更内容が反映されます。
FlinkサービスはMinIO、Kafka、MongoDBサービスへのアクセスが必要です。ただし、初回導入バージョンが古く、内蔵MinIOを持たない場合は、ローカルストレージ内コンテナのKafkaとMongoDBのサービス公開ポートのみをマッピングしてください(スタンドアロンモード時)。クラスターモードでは調整不要です。
下記設定例を参考にdocker-compose.yamlを修正してください。
- MinIO、Kafka、MongoDBサービスのポートをマッピングします。
集計テーブル機能を有効にする場合のみFlinkはMongoDBにアクセスします。未使用時はMongoDBのポートマッピングは不要です。
MongoDBのポートマッピングが必要な場合、スタンドアロンモード内蔵MongoDBは認証がデフォルトで無効です。変更時はデータセキュリティドキュメントを必ずご確認ください。
- FlinkサービスへのHAP接続用環境変数を設定します。
app:
environment:
ENV_FLINK_URL: http://192.168.10.30:58081 # 追加:Flinkサービスのアドレスを指定。実際のIPに応じて修正
sc:
ports:
- 9092:9092 # 新規:Kafkaポートマッピング
- 27017:27017 # 新規:MongoDBポートマッピング
例:docker-compose.yaml設定ファイル
- Linux amd64
- Linux arm64
version: '3'
services:
app:
image: nocoly/hap:7.5.1
environment: &app-environment
ENV_ADDRESS_MAIN: "https://hap.domain.com"
ENV_APP_VERSION: "7.5.1"
ENV_API_TOKEN: "******"
ENV_FLINK_URL: http://192.168.10.30:58081 # 追加:Flinkサービスのアドレス。実運用に応じて修正
ports:
- 8880:8880
volumes:
- ./volume/data/:/data/
- ../data:/data/hap/data
sc:
image: nocoly/sc:3.2.0
environment:
<<: *app-environment
volumes:
- ./volume/data/:/data/
ports:
- 9092:9092 # 新規:Kafkaポートマッピング
- 27017:27017 # 新規:MongoDBポートマッピング
version: '3'
services:
app:
image: nocoly/hap-arm64:-
environment: &app-environment
ENV_ADDRESS_MAIN: "https://hap.domain.com"
ENV_APP_VERSION: "-"
ENV_API_TOKEN: "******"
ENV_FLINK_URL: http://192.168.10.30:58081 # 追加:Flinkサービスのアドレス。実運用に応じて修正
ports:
- 8880:8880
volumes:
- ./volume/data/:/data/
- ../data:/data/hap/data
sc:
image: nocoly/sc-arm64:-
environment:
<<: *app-environment
volumes:
- ./volume/data/:/data/
ports:
- 9092:9092 # 新規:Kafkaポートマッピング
- 27017:27017 # 新規:MongoDBポートマッピング
修正後、管理スクリプトのディレクトリで以下を実行します。
bash service.sh restartall
これでマイクロサービスが再起動され、変更内容が反映されます。