Flink K8s Application任务的使用

Flink K8s Application任务的使用

  • Flink K8s Application任务的使用
    • 构键k8s集群
      • 提供flink运行任务的环境
    • 下载flink客户端
    • 任务编程
      • 任务jar生成过程
    • k8s Application运行
      • Application模式架构
      • 启动命令
      • PodTemplate

Flink K8s Application任务的使用

构键k8s集群

  1. 在这里,我们需要搭建一个K8S环境用于提供flink任务的运行时环境。推荐使用kubespray的方式创建k8s集群.
  2. 需要注意的是,我们需要在相应用户的目录下提供一个kubeconfig文件,如下图所示,通过该文件,StreamPark才能顺利地调用K8S客户端提交任务,该config的内容为与K8S的ApiServer进行连接时需要使用的信息。

提供flink运行任务的环境

  1. 将kubeconfig提供出来,供flink客户端调用

  2. 在这里主要提供一个供flink使用命名空间、和sa

    # 创建namespace
    kubectl create ns flink-dev
    # 创建serviceaccount
    kubectl create serviceaccount flink-service-account -n flink-dev
    # 用户授权
    kubectl create clusterrolebinding flink-role-binding-flink --clusterrole=edit --serviceaccount=flink-dev:flink-service-account
    

下载flink客户端

​ flink客户端是控制flink的核心,需要下载并部署

wget https://archive.apache.org/dist/flink/flink-1.14.3/flink-1.14.3-bin-scala_2.12.tgz
tar -xf flink-1.14.3-bin-scala_2.12.tgz

任务编程

任务jar生成过程

​ 在这里,主要提供一个flink任务案例供flink k8s application进行调用

  1. 开发java代码,供使用,本示例项目较为简单,仅为将数据输出至mysql中,调用mysql-connector进行实现

    package cn.ctyun.demo;
    
    import org.apache.flink.api.java.utils.ParameterTool;
    import org.apache.flink.connector.jdbc.JdbcConnectionOptions;
    import org.apache.flink.connector.jdbc.JdbcSink;
    import org.apache.flink.streaming.api.datastream.DataStreamSource;
    import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment;
    
    public class SinkToMySQL {
         
        public static void main

你可能感兴趣的:(flink)