实战之通过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

使用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
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/MissWYAN/article/details/113760680
今日推荐