开发者社区 > 大数据与机器学习 > 实时计算 Flink > 正文

请问,Flink如何将一个sql 脚本用yarn appllication 模式提交到集群?

请问,Flink如何将一个sql 脚本用yarn appllication 模式提交到集群?我尝试使用sql-client.sh 只能以seesion模式提交。

展开
收起
夹心789 2024-05-28 15:18:40 98 0
2 条回答
写回答
取消 提交回答
  • Apache Flink 提供了多种方式来提交作业到集群,包括通过命令行、REST API、以及 Flink SQL Client。如果你想要使用 SQL 脚本,并且想要以 YARN Application 模式提交到集群,你不能直接通过 sql-client.sh 以这种模式提交,因为 sql-client.sh 主要用于交互式 SQL 会话。

    但是,你可以通过编写一个简单的 Java/Scala 程序来读取 SQL 脚本并执行它,然后通过 Flink 的命令行工具以 YARN Application 模式提交这个程序。以下是一个简化的步骤和示例代码:

    1. 编写 Java/Scala 程序读取 SQL 脚本并执行
      假设你有一个 SQL 脚本 my_orders.sql,你可以编写一个 Flink 程序来读取这个脚本并执行其中的 SQL 语句。image.png
      image.png
    2024-06-25 14:18:39
    赞同 展开评论 打赏
  • 要使用Apache Flink的SQL API并将SQL脚本以Application模式提交到YARN集群,你需要通过Flink的Table API & SQL的Java API来实现,而不是直接使用sql-client.sh脚本,因为sql-client.sh主要用于Session模式。以下是基本步骤:

    准备工作
    确保环境准备就绪:确保你的Flink版本支持Application模式,并且已正确配置了YARN环境。
    编写Java程序:创建一个Java项目,引入Flink的相关依赖,特别是包含Table API和SQL的依赖。
    步骤
    1 构建Execution Environment: 首先,你需要创建一个StreamExecutionEnvironment或ExecutionEnvironment,然后转换为StreamTableEnvironment或TableEnvironment(对于批处理)。
    image.png
    2 注册Source和Sink: 根据你的SQL脚本需求,注册数据源(source)和接收器(sink)。例如,如果你的SQL涉及到读取Kafka数据并写入到另一个系统,你需要相应地注册Kafka connector和其他sink。

    3 加载并执行SQL脚本: 你可以直接在Java代码中编写SQL查询,或者从文件加载SQL脚本并执行。
    tEnv.executeSql("CREATE TABLE Orders (...)");
    tEnv.executeSql("INSERT INTO Output SELECT ... FROM Orders WHERE ...");

    或者从文件加载SQL:
    image.png
    4 以Application模式提交到YARN: 使用env.execute()方法提交作业时,指定一个唯一的作业名称,Flink会自动以Application模式提交到YARN。

    env.execute("YourJobName");
    打包与提交
    将上述Java程序打包成JAR文件。
    使用YARN的命令行工具提交这个JAR,指定主类和必要的参数。
    yarn application -submit \
    --class your.package.SqlJobSubmission \
    --queue \
    /path/to/your/jar/file.jar

    2024-06-18 10:19:25
    赞同 展开评论 打赏

实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。

相关产品

  • 实时计算 Flink版
  • 热门讨论

    热门文章

    相关电子书

    更多
    SQL Server在电子商务中的应用与实践 立即下载
    GeoMesa on Spark SQL 立即下载
    原生SQL on Hadoop引擎- Apache HAWQ 2.x最新技术解密malili 立即下载