Flinkサービスを個別にデプロイする方法
Flinkは HAP システムの拡張モジュールです。ユーザーはモジュールの有効・無効を選択できます。迅速なデプロイについては「Flinkサービスのデプロイ」をご参照ください。
クイックデプロイでは、Flinkサービスを HAP のマイクロサービスと同じサーバー上にデプロイしますが、高いハードウェアリソー スが必要です。単一サーバーで要件を満たせない場合は、本ドキュメントを参考に新規サーバー上でFlinkサービスを個別にデプロイしてください。サーバー構成の目安は「単体Flinkサーバー構成」を参照してください。
Dockerのインストール
Dockerのインストール方法は、Docker公式ガイドまたは、デプロイ手順例の「Dockerインストール」セクションをご覧ください。
現行HAPサービスに独立MinIOサービスが存在するか確認
HAPサーバー上で以下のコマンドを実行し、出力内にstart minioキーワードを含む行が存在するか確認します。
docker logs $(docker ps | grep mingdaoyun-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: registry.cn-hangzhou.aliyuncs.com/mdpublic/mingdaoyun-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/mingdao/data
sc:
image: registry.cn-hangzhou.aliyuncs.com/mdpublic/mingdaoyun-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: registry.cn-hangzhou.aliyuncs.com/mdpublic/mingdaoyun-hap-arm64: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/mingdao/data
sc:
image: registry.cn-hangzhou.aliyuncs.com/mdpublic/mingdaoyun-sc-arm64:3.2.0
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: registry.cn-hangzhou.aliyuncs.com/mdpublic/mingdaoyun-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/mingdao/data
sc:
image: registry.cn-hangzhou.aliyuncs.com/mdpublic/mingdaoyun-sc:3.2.0
environment:
<<: *app-environment
volumes:
- ./volume/data/:/data/
ports:
- 9092:9092 # 新規:Kafkaポートマッピング
- 27017:27017 # 新規:MongoDBポートマッピング
version: '3'
services:
app:
image: registry.cn-hangzhou.aliyuncs.com/mdpublic/mingdaoyun-hap-arm64: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/mingdao/data
sc:
image: registry.cn-hangzhou.aliyuncs.com/mdpublic/mingdaoyun-sc-arm64:3.2.0
environment:
<<: *app-environment
volumes:
- ./volume/data/:/data/
ports:
- 9092:9092 # 新規:Kafkaポートマッピング
- 27017:27017 # 新規:MongoDBポートマッピング
修正後、管理スクリプトのディレクトリで以下を実行します。
bash service.sh restartall
これでマイクロサービスが再起動され、変更内容が反映されます。
Flinkサービスのデプロイ
- 独立 MinIO サービスあり
- 独立 MinIO サービスなし
- Swarm環境を初期化します。
docker swarm init
- ディレクトリを作成します。
mkdir -p /data/mingdao/script/volume/data
- Flinkイメージをダウンロードします(オフラインパッケージダウンロードはこちら)。
- Linux amd64
- Linux arm64
docker pull registry.cn-hangzhou.aliyuncs.com/mdpublic/mingdaoyun-flink:1.19.720
docker pull registry.cn-hangzhou.aliyuncs.com/mdpublic/mingdaoyun-flink-arm64:1.19.720
- 設定ファイルを作成します。
- Linux amd64
- Linux arm64
cat > /data/mingdao/script/flink.yaml <<EOF
version: '3'
services:
flink:
image: registry.cn-hangzhou.aliyuncs.com/mdpublic/mingdaoyun-flink:1.19.720
entrypoint: ["/bin/bash"]
command: ["/run.sh"]
environment:
ENV_FLINK_S3_ACCESSKEY: "mdstorage"
ENV_FLINK_S3_SECRETKEY: "eBxExGQJNhGosgv5FQJiVNqH"
ENV_FLINK_S3_SSL: "false"
ENV_FLINK_S3_PATH_STYLE_ACCESS: "true"
ENV_FLINK_S3_ENDPOINT: "sc:9010"
ENV_FLINK_S3_BUCKET: "mdoc"
ENV_FLINK_LOG_LEVEL: "INFO"
ENV_FLINK_JOBMANAGER_MEMORY: "4096m"
ENV_FLINK_TASKMANAGER_MEMORY: "16384m"
ENV_FLINK_TASKMANAGER_SLOTS: "50"
ENV_KAFKA_ENDPOINTS: "sc:9092"
ports:
- 58081:8081
volumes:
- ./volume/data/:/data/
extra_hosts:
- "sc:192.168.10.28" # HAPサーバーの実IPに変更
EOF
cat > /data/mingdao/script/flink.yaml <<EOF
version: '3'
services:
flink:
image: registry.cn-hangzhou.aliyuncs.com/mdpublic/mingdaoyun-flink-arm64:1.19.720
entrypoint: ["/bin/bash"]
command: ["/run.sh"]
environment:
ENV_FLINK_S3_ACCESSKEY: "mdstorage"
ENV_FLINK_S3_SECRETKEY: "eBxExGQJNhGosgv5FQJiVNqH"
ENV_FLINK_S3_SSL: "false"
ENV_FLINK_S3_PATH_STYLE_ACCESS: "true"
ENV_FLINK_S3_ENDPOINT: "sc:9010"
ENV_FLINK_S3_BUCKET: "mdoc"
ENV_FLINK_LOG_LEVEL: "INFO"
ENV_FLINK_JOBMANAGER_MEMORY: "4096m"
ENV_FLINK_TASKMANAGER_MEMORY: "16384m"
ENV_FLINK_TASKMANAGER_SLOTS: "50"
ENV_KAFKA_ENDPOINTS: "sc:9092"
ports:
- 58081:8081
volumes:
- ./volume/data/:/data/
extra_hosts:
- "sc:192.168.10.28" # HAPサーバーの実IPに変更
EOF
- 起動スクリプトを設定します。
cat > /data/mingdao/script/startflink.sh <<-EOF
docker stack deploy -c /data/mingdao/script/flink.yaml flink
EOF
chmod +x /data/mingdao/script/startflink.sh
- Flinkサービスを起動します。
bash /data/mingdao/script/startflink.sh
- Flinkコンテナ起動後、初期化完了まで約5分要する場合があります。
- 停止するには
docker stack rm flinkを実行します。
- Swarm環境を初期化します。
docker swarm init
- ディレクトリを作成します。
mkdir -p /data/mingdao/script/volume/data
- Flinkイメージをダウンロードします(オフラインパッケージダウンロードはこちら)。
- Linux amd64
- Linux arm64
docker pull registry.cn-hangzhou.aliyuncs.com/mdpublic/mingdaoyun-flink:1.19.720
docker pull registry.cn-hangzhou.aliyuncs.com/mdpublic/mingdaoyun-flink-arm64:1.19.720
- 設定ファイルを作成します。
- Linux amd64
- Linux arm64
cat > /data/mingdao/script/flink.yaml <<EOF
version: '3'
services:
flink:
image: registry.cn-hangzhou.aliyuncs.com/mdpublic/mingdaoyun-flink:1.19.720
entrypoint: ["/bin/bash"]
command: ["/run.sh"]
environment:
ENV_FLINK_S3_ACCESSKEY: "mdstorage"
ENV_FLINK_S3_SECRETKEY: "eBxExGQJNhGosgv5FQJiVNqH"
ENV_FLINK_S3_SSL: "false"
ENV_FLINK_S3_PATH_STYLE_ACCESS: "true"
ENV_FLINK_S3_ENDPOINT: "flink-minio:9000"
ENV_FLINK_S3_BUCKET: "mdoc"
ENV_FLINK_LOG_LEVEL: "INFO"
ENV_FLINK_JOBMANAGER_MEMORY: "4096m"
ENV_FLINK_TASKMANAGER_MEMORY: "16384m"
ENV_FLINK_TASKMANAGER_SLOTS: "50"
ENV_KAFKA_ENDPOINTS: "sc:9092"
ports:
- 58081:8081
volumes:
- ./volume/data/:/data/
extra_hosts:
- "sc:192.168.10.28" # HAPサーバーの実IPに変更
flink-minio:
container_name: flink-minio
image: registry.cn-hangzhou.aliyuncs.com/mdpublic/mingdaoyun-minio:RELEASE.2025-04-22T22-12-26Z
environment:
MINIO_ROOT_USER: "mdstorage"
MINIO_ROOT_PASSWORD: "eBxExGQJNhGosgv5FQJiVNqH"
volumes:
- ./volume/data/:/data/
command: minio server /data/flink-minio --console-address ":9001"
EOF
cat > /data/mingdao/script/flink.yaml <<EOF
version: '3'
services:
flink:
image: registry.cn-hangzhou.aliyuncs.com/mdpublic/mingdaoyun-flink-arm64:1.19.720
entrypoint: ["/bin/bash"]
command: ["/run.sh"]
environment:
ENV_FLINK_S3_ACCESSKEY: "mdstorage"
ENV_FLINK_S3_SECRETKEY: "eBxExGQJNhGosgv5FQJiVNqH"
ENV_FLINK_S3_SSL: "false"
ENV_FLINK_S3_PATH_STYLE_ACCESS: "true"
ENV_FLINK_S3_ENDPOINT: "flink-minio:9000"
ENV_FLINK_S3_BUCKET: "mdoc"
ENV_FLINK_LOG_LEVEL: "INFO"
ENV_FLINK_JOBMANAGER_MEMORY: "4096m"
ENV_FLINK_TASKMANAGER_MEMORY: "16384m"
ENV_FLINK_TASKMANAGER_SLOTS: "50"
ENV_KAFKA_ENDPOINTS: "sc:9092"
ports:
- 58081:8081
volumes:
- ./volume/data/:/data/
extra_hosts:
- "sc:192.168.10.28" # HAPサーバーの実IPに変更
flink-minio:
container_name: flink-minio
image: registry.cn-hangzhou.aliyuncs.com/mdpublic/mingdaoyun-minio-arm64:RELEASE.2025-04-22T22-12-26Z
environment:
MINIO_ROOT_USER: "mdstorage"
MINIO_ROOT_PASSWORD: "eBxExGQJNhGosgv5FQJiVNqH"
volumes:
- ./volume/data/:/data/
command: minio server /data/flink-minio --console-address ":9001"
EOF
- MinIOイメージをダウンロードします。
- Linux amd64
- Linux arm64
docker pull registry.cn-hangzhou.aliyuncs.com/mdpublic/mingdaoyun-minio:RELEASE.2025-04-22T22-12-26Z
docker pull registry.cn-hangzhou.aliyuncs.com/mdpublic/mingdaoyun-minio-arm64:RELEASE.2025-04-22T22-12-26Z
インターネット接続不可の場合、オフラインイメージファイルを先にダウンロードしサーバーにアップロードして導入してください。オフラインイメージファイルダウンロードリンク:
- Linux amd64
- Linux arm64
https://pdpublic.mingdao.com/private-deployment/offline/mingdaoyun-minio-linux-amd64-RELEASE.2025-04-22T22-12-26Z.tar.gz
https://pdpublic.mingdao.com/private-deployment/offline/mingdaoyun-minio-linux-arm64-RELEASE.2025-04-22T22-12-26Z.tar.gz
- 起動スクリプトを設定します。
cat > /data/mingdao/script/startflink.sh <<-EOF
docker stack deploy -c /data/mingdao/script/flink.yaml flink
EOF
chmod +x /data/mingdao/script/startflink.sh
- Flinkサービスを起動します。
bash /data/mingdao/script/startflink.sh
- Flinkコンテナ起動後、初期化完了まで約5分要する場合があります。
- 停止するには
docker stack rm flinkを実行します。
- Flinkで必要なバケットをMinIOコンテナ内で作成します。
docker exec -it flink-minio bash
mc alias set myminio http://127.0.0.1:9000 mdstorage eBxExGQJNhGosgv5FQJiVNqH
mc mb myminio/mdoc