使用Docker如何构建Flink集群?

本文详细介绍了如何使用Docker和docker-compose在HA模式下构建Flink集群,包括Flink、Hadoop和Zookeeper镜像的构建,以及Flink配置文件的修改,最后展示了如何通过docker-compose编排和运行集群。
Docker是在硬件资源不富裕的的情况下获得集群体验的一个非常不错的方式,本篇文章实现通过docker-compose编排Flink 高可用(HA)模式集群。集群构建两个JobManager和N个TaskManager,JobManager启动后向Zookeeper注册信息,并选举出leader,JobManager的数据备份保存在HDFS上;TaskManager从ZooKeeper上获取leader JobManager并发起注册请求。希望通过本文的分享,对大家学习Docker有所帮助。
  镜像构建
  镜像包括Flink、Hadoop、ZooKeeper。镜像Dockerfile整理在 Github 上,下面分别来看镜像的构建与配置,完整文件可以再 这里下载 :
  Flink镜像构建
  Flink镜像可以从DockerHub上直接pull下来也可以根据Dockerfile自己构建,这里通过Dockerfile来构建。进到docker-flink目录下:
  docker-flink/
  ├── build.sh
  ├── docker-compose.yml
  ├── docker-entrypoint.sh
  ├── Dockerfile
  ├── flink-conf.yaml
  Dockerfile内容如下:
  FROM java:8-jre-alpine
  # Install requirementsRUN apk add --no-cache bash snappy# Configure Flink version
  ARG FLINK_VERSION=1.1.1
  ARG HADOOP_VERSION=27
  ARG SCALA_VERSION=2.11
  # Flink environment variables
  ARG FLINK_INSTALL_PATH=/optENV FLINK_HOME $FLINK_INSTALL_PATH/flinkENV PATH $PATH:$FLINK_HOME/bin
  # Install build dependencies and flink
  ...
  ...# Configure containerADD flink-conf.yaml $FLINK_HOME/conf/flink-conf.yaml#USER flinkADD docker-entrypoint.sh $FLINK_HOME/bin/ENTRYPOINT ["docker-entrypoint.sh"]CMD ["sh", "-c"]
  这里Dockerfile首先指定基础镜像java:8-jre-alpine,指定Flink版本并下载Flink包。最后将flink-conf.y
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值