开发者社区> 问答> 正文

如何把多个FLINK SQL放到同一个Yarn JOB里

在一个FLINK Application中(一个main class)用FLINK Kafka SQL Connector 都多个Kafka TOPIC, 然后对每一个Kafka Table, 取出一些字段后, insert后续Kafka Table。

任务提交到Yarn后, 为什么每一个SQL语句都会启动一个JobManager? 甚至都一个Kafka Source Table, SINK两次的话, 每一个SINK都是一个独立的Job?

是我的用户不对吗? 请各位指教。

展开
收起
游客kpgrmhlkg4uoy 2021-01-10 17:48:19 4192 0
2 条回答
写回答
取消 提交回答
  • // 运行多条 INSERT 语句,将原表数据输出到多个结果表中
    StatementSet stmtSet = tEnv.createStatementSet();
    // `addInsertSql` 方法每次只接收单条 INSERT 语句
    stmtSet.addInsertSql(
      "INSERT INTO RubberOrders SELECT product, amount FROM Orders WHERE product LIKE '%Rubber%'");
    stmtSet.addInsertSql(
      "INSERT INTO GlassOrders SELECT product, amount FROM Orders WHERE product LIKE '%Glass%'");
    // 执行刚刚添加的所有 INSERT 语句
    TableResult tableResult2 = stmtSet.execute();
    // 通过 TableResult 来获取作业状态
    System.out.println(tableResult1.getJobClient().get().getJobStatus());
    
    2021-06-23 18:07:53
    赞同 展开评论 打赏
  • flink job是 per sql per job。 不同sql在一个job内调度会比较复杂;每条sql作为一个job是合理的。

    2021-03-22 13:59:31
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Flink CDC Meetup PPT - 龚中强 立即下载
Flink CDC Meetup PPT - 王赫 立即下载
Flink CDC Meetup PPT - 覃立辉 立即下载