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-co
镜像构建
镜像包括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-co