如何将数据集成服务独立部署
数据集成是 HAP 系统中的扩展模块,用户可自主选择是否启用,快速部署可参考启用数据集成功能
快速部署是将数据集成服务部署在与 HAP 微服务同一台服务器上,对硬件的可用资源要求较高,如果单台服务器无法满足,可以参考此文档将数据集成服务独立部署在一台新服务器上,服务器配置可参考单机数据集成服务器配置
安装 Docker
安装 Docker,可参考官方对不同 Linux 版本的 安装说明 或 参考部署示例中的 Docker 安装章节
微服务调整
数据集成服务需要用到文件存储与 Kafka 组件,这时需要映射出单机模式 sc 服务中的这两个组件访问入口
如果你的 HAP 私有部署环境为集群模式则不需要调整,后续配置数据集成服务直接连接件存储与 Kafka 组件即可
单机模式映射文件存储与 Kafka 组件的端口需要修改 docker-compose.yaml 文件,添加环境变量、端口映射。新增信息如下
app:
environment:
ENV_FLINK_URL: http://192.168.10.30:58081 # 新增,填写 Flink 服务的地址,注意修改为实际的 IP 地址
sc:
ports:
- 9000:9000 # 新增端口映射
- 9092:9092 # 新增端口映射
docker-compose.yaml 配置文件示例
version: '3'
services:
app:
image: nocoly/hap-community:5.8.3
environment: &app-environment
ENV_ADDRESS_MAIN: "https://hap.domain.com"
ENV_APP_VERSION: "5.8.3"
ENV_API_TOKEN: "******"
ENV_FLINK_URL: http://192.168.10.30:58081 # 新增,填写 Flink 服务的地址,注意修改为实际的 IP 地址
ports:
- 8880:8880
volumes:
- ./volume/data/:/data/
- ../data:/data/hap/data
sc:
image: nocoly/hap-sc:3.0.0
environment:
<<: *app-environment
volumes:
- ./volume/data/:/data/
ports:
- 9000:9000 # 新增端口映射
- 9092:9092 # 新增端口映射
volumes:
- ./volume/data/:/data/
修改后在安装管理器目录下执行 bash service.sh restartall
重启微服务生效
数据集成服务部署
-
初始化 swarm 环境
docker swarm init
-
创建目录
mkdir -p /data/hap/script/volume/data
-
创建配置文件
cat > /data/hap/script/flink.yaml <<EOF
version: '3'
services:
flink:
image: nocoly/hap-flink:1.17.1.530
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:9000" # 5.1.0(不包含5.1.0)以前的版本填 app,5.1.0+(包含5.1.0)的版本填sc
ENV_FLINK_S3_BUCKET: "mdoc"
ENV_FLINK_LOG_LEVEL: "INFO"
ENV_FLINK_JOBMANAGER_MEMORY: "2000m"
ENV_FLINK_TASKMANAGER_MEMORY: "10000m"
ENV_FLINK_TASKMANAGER_SLOTS: "50"
ENV_KAFKA_ENDPOINTS: "sc:9092" # 5.1.0(不包含5.1.0)以前的版本填 app,5.1.0+(包含5.1.0)的版本填sc;如果kafka使用的是外部组件,则填实际Kafka的ip即可
ports:
- 58081:8081
volumes:
- ./volume/data/:/data/
extra_hosts:
- "sc:192.168.10.28" # 这里是 sc 服务 Host 解析(对应 ENV_KAFKA_ENDPOINTS 值中填写的是 "sc:9092"),注意修改为实际的 IP 地址
#- "app:192.168.10.28" # 这里是 app 服务 Host 解析(对应 ENV_KAFKA_ENDPOINTS 值中填写的是 "app:9092"),注意修改为实际的 IP 地址
EOF -
配置启动脚本
cat > /data/hap/script/startflink.sh <<-EOF
docker stack deploy -c /data/hap/script/flink.yaml flink
EOF
chmod +x /data/hap/script/startflink.sh