实战之通过Zeppelin部署在K8S上使用FlinkSQL(已在生产环境跑通版)
下载zeppelin-0.9.0-preview2-bin-all.tgz截止到目前止,zeppelin官方并没有提供zeppelin-0.9.0-preview2的官方镜像,因此我们下载tar包http://www-eu.apache.org/dist/zeppelin/zeppelin-0.9.0-preview2/zeppelin-0.9.0-preview2-bin-all.tgz使用do
·
下载zeppelin-0.9.0-preview2-bin-all.tgz
截止到目前止,zeppelin官方并没有提供zeppelin-0.9.0-preview2的官方镜像,因此我们下载tar包
http://www-eu.apache.org/dist/zeppelin/zeppelin-0.9.0-preview2/zeppelin-0.9.0-preview2-bin-all.tgz
使用docker构建自定义Zeppelin镜像
为什么要自定义镜像呢?因为Zeppelin需要配置本地Flink Client,而官方Zeppelin镜像中是没有Flink Client的。从Flink官方镜像中拉去Flink
Dockerfile
FROM flink:1.11.1-scala_2.11 as flink
# base image
FROM 'JDK镜像,请用自己的替代,这个镜像必须设置好JAVA_HOME'
# 创建/data以及相关子目录 并赋予权限
RUN sudo mkdir -p /data/flink/ && \
sudo mkdir -p /data/dependency/ && \
sudo chown -R ${AppUser}:${AppGroup} /data
USER root
# copy binary
COPY --from=flink /opt/flink/ /data/flink
COPY ./zeppelin.tgz /data
RUN tar -zxvf /data/zeppelin.tgz && \
mv /data/zeppelin-0.9.0-preview2-bin-all /data/zeppelin
# 将Zeppelin自定义的配置文件拷贝,覆盖tar包中的文件
COPY ./zeppelin/* /data/zeppelin/conf/
# 将Flink需要使用的第三方依赖拷贝到pod中
COPY ./lib/* /data/dependency/
RUN chown -R ${AppUser}:${AppGroup} .
USER 'XXX' 比如USER zhangsan
# copy dependency lib
RUN cp /data/flink/opt/flink-s3-fs-hadoop-*.jar /data/flink/lib/ && \
cp /data/flink/plugins/metrics-prometheus/flink-metrics-prometheus-*.jar /data/flink/lib/ && \
rm -rf /data/zeppelin/conf/*.template
RUN sudo chown -R ${AppUser}:${AppGroup} /data
# set workdir
WORKDIR /data
# 启动Zeppelin
CMD ["/bin/bash","-c","bash /data/zeppelin/bin/zeppelin-daemon.sh start"]
更多本文内容可以查看公众号:BeBetter4Me
更多推荐
已为社区贡献3条内容
所有评论(0)