docker下安装与配置streampark

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
实时计算 Flink 版,5000CU*H 3个月
简介: docker下安装与配置streampark

01 引言

本文记录在docker下安装和配置streampark。

安装部署官网教程:

02 安装

官方使用的方式很简单,如下:

## 下载docker-compose.yaml
wget https://raw.githubusercontent.com/apache/incubator-streampark/dev/deploy/docker/docker-compose.yaml
## 下载.env
wget https://raw.githubusercontent.com/apache/incubator-streampark/dev/deploy/docker/.env
## 安装
docker-compose up -d

如果按照官方的教程是可以成功启动的,但是会有很多问题,比如:

  1. 使用的是H2作为数据库,容器重启后所有配置失效
  2. 没有配置hadoop等环境
  3. 很多配置都需要手动上传到容器某个目录,如:maven的settings.xml
  4. 。。。。。

接下来,本文主要讲解docker-compose.yaml.env这两个文件的配置。

03 配置

我期望的是存储到mysql数据库,且hadoop配置指定到某一个目录。

3.1 env配置

以下是修改后的.env文件:

TZ=Asia/Shanghai
# 数据库:h2、mysql, pgsql
SPRING_PROFILES_ACTIVE=mysql 
# mysql数据库连接
SPRING_DATASOURCE_URL=jdbc:mysql://127.0.0.1:3306/streampark?useSSL=false&useUnicode=true&characterEncoding=UTF-8&allowPublicKeyRetrieval=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8
#SPRING_DATASOURCE_URL=jdbc:postgresql://localhost:5432/streampark?stringtype=unspecified
# 数据库账号密码
SPRING_DATASOURCE_USERNAME=root
SPRING_DATASOURCE_PASSWORD=root
# flink相关
FLINK=flink1.14.5
FLINK_IMAGE=flink:1.14.5-scala_2.12
# 启动命令(下载mysql-connector,启动streampark.sh)
RUN_COMMAND='/bin/sh -c "wget -P lib https://repo1.maven.org/maven2/com/mysql/mysql-connector-j/8.0.31/mysql-connector-j-8.0.31.jar && bash bin/streampark.sh start_docker "'
# job manager 远程调用地址
JOB_MANAGER_RPC_ADDRESS=flink-jobmanager
# hadoop 配置目录
HADOOP_HOME=/streampark/hadoop

注意:需要先在mysql先创建streampark数据库,然后手动执行对应的schemadata里面对应数据源的sql,可以下载安装包(https://streampark.apache.org/zh-CN/download/)并解压,具体目录如下:

.
streampark-console-service-1.2.1
├── bin
│    ├── startup.sh                           //启动脚本
│    ├── setclasspath.sh                      //java 环境变量相关的脚本 ( 内部使用,用户无需关注 )
│    ├── shutdown.sh                          //停止脚本
│    ├── yaml.sh                              //内部使用解析 yaml 参数的脚本 ( 内部使用,用户无需关注 )
├── conf
│    ├── application.yaml                     //项目的配置文件 ( 注意不要改动名称 )
│    ├── flink-application.template           //flink 配置模板 ( 内部使用,用户无需关注 )
│    ├── logback-spring.xml                   //logback
│    └── ...
├── lib
│    └── *.jar                                //项目的 jar 包
├── client
│    └── streampark-flink-sqlclient-1.0.0.jar    //Flink SQl 提交相关功能 ( 内部使用,用户无需关注 )
├── script
│     ├── schema                             
│     │      ├── mysql-schema.sql            // mysql的ddl建表sql
│     │      └── pgsql-schema.sql            // pgsql的ddl建表sql
│     ├── data                             
│     │      ├── mysql-data.sql              // mysql的完整初始化数据
│     │      └── pgsql-data.sql              // pgsql的完整初始化数据
│     ├── upgrade                            
│     │      ├── 1.2.3.sql                   //升级到 1.2.3版本需要执行的升级sql      
│     │      └── 2.0.0.sql                   //升级到 2.0.0版本需要执行的升级sql   
│     │      ... 
├── logs                                     //程序 log 目录
├── temp                                     //内部使用到的临时路径,不要删除

3.2 docker-compose配置

ok,docker-compose.yaml会引用env文件的配置,修改后的配置如下:

version: '3.8'
services:
  ## streampark-console容器
  streampark-console:
    ## streampark的镜像
    image: apache/streampark:latest
    ## streampark的镜像启动命令
    command: ${RUN_COMMAND}
    ports:
      - 10000:10000
    ## 环境配置文件
    env_file: .env
    environment:
      ## 声明环境变量
      HADOOP_HOME: ${HADOOP_HOME}
    volumes:
      - flink:/streampark/flink/${FLINK}
      - /var/run/docker.sock:/var/run/docker.sock
      - /etc/hosts:/etc/hosts:ro
      - ~/.kube:/root/.kube:ro
    privileged: true
    restart: unless-stopped
    networks:
      - streampark
  ## flink-jobmanager容器
  flink-jobmanager:
    image: ${FLINK_IMAGE}
    ports:
      - "8081:8081"
    command: jobmanager
    volumes:
      - flink:/opt/flink
    env_file: .env
    restart: unless-stopped
    privileged: true
    networks:
      - streampark
  ## streampark-taskmanager容器
  flink-taskmanager:
    image: ${FLINK_IMAGE}
    depends_on:
      - flink-jobmanager
    command: taskmanager
    deploy:
      replicas: 1
    env_file: .env
    restart: unless-stopped
    privileged: true
    networks:
      - streampark
networks:
  streampark:
    driver: bridge
volumes:
  flink:

最后,执行启动命令:

docker-compose up -d

可以使用docker ps来查看是否安装成功,显示如下信息,表示安装成功:

3.3 上传配置至容器

在前面的env文件,声明了HADOOP_HOME,对应的目录为“/streampark/hadoop”,所以需要上传hadoop安装包下的/etc/hadoop/streampark/hadoop目录,命令如下:

## 上传hadoop资源
docker cp etc整个目录 streampark-docker_streampark-console_1:/streampark/hadoop
## 进入容器
docker exec -it streampark-docker_streampark-console_1 bash
## 查看
ls

同时,其它配置文件,如maven的settings.xml文件也是以同样的方式上传。

03 使用

浏览器登录 http://服务器ip:10000 ,输入默认密码: admin / streampark

登录成功,然后配置flink home:

接着配置flin 集群(这里配置了yarn session和standalone集群):

最后新建Application,可以看到都运行成功了:

这里具体的使用细节就不再详述了,本文大致记录了docker下安装与配置streampark的过程,希望能帮助到大家,谢谢大家的阅读,本文完!

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
9天前
|
应用服务中间件 Docker 容器
docker应用部署---Tomcat的部署配置
这篇文章介绍了如何使用Docker部署Tomcat服务器,包括搜索和拉取Tomcat镜像、创建容器并设置端口映射和目录映射,以及如何创建一个HTML页面并使用外部机器访问Tomcat服务器。
docker应用部署---Tomcat的部署配置
|
9天前
|
关系型数据库 MySQL 数据安全/隐私保护
docker应用部署---MySQL的部署配置
这篇文章介绍了如何使用Docker部署MySQL数据库,包括搜索和拉取MySQL镜像、创建容器并设置端口映射和目录映射、进入容器操作MySQL,以及如何使用外部机器连接容器中的MySQL。
docker应用部署---MySQL的部署配置
|
9天前
|
应用服务中间件 nginx Docker
docker应用部署---nginx部署的配置
这篇文章介绍了如何使用Docker部署Nginx服务器,包括搜索和拉取Nginx镜像、创建容器并设置端口映射和目录映射,以及如何创建一个测试页面并使用外部机器访问Nginx服务器。
|
9天前
|
Docker 容器
Docker安装及镜像源修改
本文介绍了Docker的安装过程和如何修改Docker镜像源以加速下载。包括更新系统包、安装所需软件包、设置yum源、安装Docker以及验证安装是否成功。接着,提供了修改Docker镜像源的步骤,包括创建配置文件、编辑配置文件以设置镜像加速地址,并提供了几个常用的国内镜像源地址。最后,通过重启Docker服务和检查配置是否生效来完成镜像源的修改。
Docker安装及镜像源修改
|
10天前
|
Docker 容器
centos7.3之安装docker
centos7.3之安装docker
|
1月前
|
NoSQL 关系型数据库 Redis
mall在linux环境下的部署(基于Docker容器),Docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongo
mall在linux环境下的部署(基于Docker容器),docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongodb、minio详细教程,拉取镜像、运行容器
mall在linux环境下的部署(基于Docker容器),Docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongo
|
1月前
|
Linux Docker Windows
Docker配置https证书案例
本文介绍了如何为Docker的Harbor服务配置HTTPS证书,包括安装Docker和Harbor、修改配置文件以使用证书、生成自签名证书、配置证书以及验证配置的步骤。
36 2
Docker配置https证书案例
|
1月前
|
Ubuntu Linux Docker
Ubuntu 18.04 安装Docker实战案例
关于如何在Ubuntu 18.04系统上安装Docker的实战案例,包括安装步骤、配置镜像加速以及下载和运行Docker镜像的过程。
163 3
Ubuntu 18.04 安装Docker实战案例
|
1月前
|
存储 Linux Docker
CentOS 7.6安装Docker实战案例及存储引擎和服务进程简介
关于如何在CentOS 7.6上安装Docker、介绍Docker存储引擎以及服务进程关系的实战案例。
93 3
CentOS 7.6安装Docker实战案例及存储引擎和服务进程简介
|
20天前
|
Prometheus 监控 Cloud Native
docker安装prometheus+Granfan并监控容器
【9月更文挑战第14天】本文介绍了在Docker中安装Prometheus与Grafana并监控容器的步骤,包括创建配置文件、运行Prometheus与Grafana容器,以及在Grafana中配置数据源和创建监控仪表盘,展示了如何通过Prometheus抓取数据并利用Grafana展示容器的CPU使用率等关键指标。
下一篇
无影云桌面