当前位置:   article > 正文

streampark使用_streampark账号

streampark账号

一、基础配置

1.1 启动与基础设置

1.1.1 启动容器

        这里假设你已经启动了,并且可以登录web了(如果没启动,可以参考我上一篇streampark部署的文章)        

1.1.2 web页面基础设置

        部署完成,启动后,进入web界面,需要完成的几步:

        (1)去设置flink home,这里填写的就是放到streampark里面的flink的地址,也是FLINK_HOME地址

        -- 如果你前面有往容器放hadoop,也设置了hadoop环境变量,到这里已经可以去跑任务了;

         (2)设置告警(这个根据自己要求,跟着官网设置就可以了)

        (3)设置docker地址

                如果你使用到了flink on k8s,那么是需要用到docker在本地制作镜像,推送镜像,最后使用镜像到k8s创建容器

3.2 启动任务

这里可以看见flink任务大致是两类,on yarn 和 on k8s

3.2.1 flink on yarn

       这里有两种选择方式,一个是sql,一个是jar,无论是哪一个,根据官网配置即可,大致也就是设置一下flink的资源,一些flink的启动命令,启动类,告警什么的,挨个配置填写好,几乎都可以跑起来;

        -- on yarn模式我就是测试跑了两个任务,都成功了,后面就没用on yarn了。如果你实在没跑起来,就看看配置(建议只填写必填选项,其他就别管了),看看日志,或者找一个最简单的肯定没问题的flink 的jar包来试试;

3.2.2 flink on k8s

(1)前期准备:

        1.k8s的证书文件(如果不知道就找运维问,其实就是一个config文件)

        2.docker仓库地址、账号、密码(这个docker仓库应该是你的或者公司的私有仓库)

        3.配置rbac资源 (这个是在k8s上操作的,具体操作可以看streampark官网)

        4.ImagePullSecrets(这个是Kubernetes 中用于拉取私有容器镜像的凭据对象,如果没有配置这个,k8s的pod容器就启动本来,状态就是ImagePullBackOff)

        5.创建一个pvc,用来在k8s中把flink的日志挂载出来

(2)开始动手:

        1.将k8s的证书挂载到streampark容器中(使用docker run 的 -v /root/.kube:/root/.kube命令)

        2.在web端设置docker仓库地址、账号密码等,这个要用来推送镜像的

        3.配置rbac资源(这个看官网)

        4.创建imagePullSecrets(这个百度一下就可以找到怎么创建)

         5.创建pvc和pv

  1. # pv的创建
  2. apiVersion: v1
  3. kind: PersistentVolume
  4. metadata:
  5. name: flink-logs-pv
  6. namespace: flink-cluster
  7. spec:
  8. capacity:
  9. storage: 500Mi
  10. accessModes:
  11. - ReadWriteOnce
  12. hostPath:
  13. path: "/opt/flink/logs"
  14. storageClassName: local-path
  15. # pvc的创建
  16. apiVersion: v1
  17. kind: PersistentVolumeClaim
  18. metadata:
  19. name: flink-logs-pvc
  20. namespace: flink-cluster
  21. spec:
  22. accessModes:
  23. - ReadWriteOnce
  24. resources:
  25. requests:
  26. storage: 500Mi
  27. storageClassName: local-path

        6.创建flink基础镜像

        找一个flink基础镜像(最好和你在用的flink一个版本的),将这个flink镜像推送到之前填写的docker仓库中;如果用到hadoop作为状态后端,把官网说的那个hadoop的jar包放到这个flink基础镜像中(注意给这个jar包加上权限,不让flink运行的时候,虽然有这个jar包,但是没权限用),最后把这个镜像推送到自己的docker仓库就可以了;

        下面是我的flink基础镜像的Dockerfile

  1. FROM flink:1.14.5-scala_2.12
  2. RUN mkdir -p $FLINK_HOME/usrlib
  3. COPY ./flink-shaded-hadoop-2-uber-3.2.2-10.0.jar $FLINK_HOME/lib/flink-shaded-hadoop-2-uber-3.2.2-10.0.jar
  4. RUN chmod 777 $FLINK_HOME/lib/flink-shaded-hadoop-2-uber-3.2.2-10.0.jar
  5. #下面是为了支持mysql的几个jar包
  6. COPY ./flink-connector-jdbc_2.12-1.14.5.jar $FLINK_HOME/lib
  7. COPY ./flink-connector-starrocks-1.2.6_flink-1.14_2.12.jar $FLINK_HOME/lib
  8. COPY ./flink-sql-connector-mysql-cdc-2.2-SNAPSHOT.jar $FLINK_HOME/lib
  9. RUN chmod 777 $FLINK_HOME/lib/flink-connector-jdbc_2.12-1.14.5.jar
  10. RUN chmod 777 $FLINK_HOME/lib/flink-connector-starrocks-1.2.6_flink-1.14_2.12.jar
  11. RUN chmod 777 $FLINK_HOME/lib/flink-sql-connector-mysql-cdc-2.2-SNAPSHOT.jar

执行命令:

        docker build -t {image_name}:{tag} .      (制作镜像)

        docker tag {image_name}:{tag}  {new_image_name}:{tag}  (给镜像打标签)

        docker push {new_image_name}:{tag}  (推送镜像到自己仓库)

例如:

        docker tag flink13:1.0.3  仓库地址/仓库的命名空间/native_realtime:1.0.3
        docker push 仓库地址/仓库的命名空间/native_realtime:1.0.3

(3)创建任务

        其他基础信息都正常填写即可,比如项目名称、flink version、flink基础镜像(就是刚刚推送到仓库的镜像)、flink任务主类地址等

        重点是pod文件编写与其他基础配置

        pod文件示例:

  1. apiVersion: v1
  2. kind: Pod
  3. metadata:
  4. name: pod-template
  5. namespace: flink-cluster
  6. spec:
  7. nodeSelector:
  8. biz-node-label-1: "1"
  9. hostAliases:
  10. - ip: 11.111.11.11
  11. hostnames:
  12. - "flink101"
  13. containers:
  14. # Do not change the main container name
  15. - name: flink-main-container
  16. image: 仓库地址/命名空间/native_realtime:1.0.3
  17. imagePullPolicy: Always
  18. resources:
  19. requests:
  20. cpu: 500m
  21. memory: 1024Mi
  22. limits:
  23. cpu: 1
  24. memory: 10240Mi
  25. volumeMounts:
  26. - name: flink-logs
  27. mountPath: /opt/flink/log
  28. subPath: rscsynjob
  29. volumes:
  30. - name: flink-logs
  31. persistentVolumeClaim:
  32. claimName: flink-logs-pvc
  33. imagePullSecrets:
  34. - name: flinkregistrykey

 dynamic properties示例:

  1. -Dkubernetes.container.image.pull-policy=Always
  2. -Djobmanager.memory.process.size=1536m
  3. -Dtaskmanager.memory.process.size=9216m
  4. -Dtaskmanager.numberOfTaskSlots=3
  5. -Dtaskmanager.memory.managed.size=256m
  6. -Dtaskmanager.memory.jvm-metaspace.size=1024m

到此,配置差不多就完成了,然后就可以启动任务了,启动的时候去k8s看一下pod状态和日志即可

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/神奇cpp/article/detail/859855
推荐阅读
相关标签
  

闽ICP备14008679号