开发者社区 问答 正文

如何把多个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 4366 分享
分享
版权
举报
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 举报
    赞同 1

    评论

    全部评论 (1)

    登录后可评论
    头像
    多条sql使用 per sql per job好还是 使用 addInsertSql 模式好? 有没有两者的对比或者说明文档
    2021-08-24 10:19:12
    赞同回复举报
  • flink job是 per sql per job。 不同sql在一个job内调度会比较复杂;每条sql作为一个job是合理的。

    2021-03-22 13:59:31 举报
    赞同 评论

    评论

    全部评论 (0)

    登录后可评论