通过java代码的方式提交任务远程到flink集群

本文介绍了如何通过Java代码将Flink任务提交到远程集群。首先,需要在pom文件中引入相关依赖。接着,利用PackagedProgram类的Builder方法设置mainClass和jarPath等信息,并配置SavepointRestoreSettings。然后,通过PackagedProgramUtils的createJobGraph方法创建JobGraph,可以选择指定或随机生成JobId。最后,配置并行度,抑制输出,并将JobGraph提交到远程Flink集群。

flink通过java代码的方式提交任务

1. 引入pom文件
 <dependency>
     <groupId>org.apache.flink</groupId>
     <artifactId>flink-clients_2.12</artifactId>
     <version>1.13.0</version>
 </dependency>
2.PackagedProgram类创建
2.1 PackaghedProgram.newBuilder

可以通过它的Builder方法实现,需要设置一些必备的信息,比如mainClass,jarPath这些

val packagedProgram: PackagedProgram = PackagedProgram
    .newBuilder()
    .setEntryPointClassName("你的flink程序文件主函数入口")
     //"你的flink程序文件"
    .setJarFile(jarFile)
     //"savepoint的信息"
    .setSavepointRestoreSettings(SavepointRestoreSettings.</
Flink中,不直接打包为JAR提交任务是一种常见的场景,特别是当你希望频繁迭代或测试小规模的计算任务时。可以使用Flink的命令行客户端`flink run`或者`DataStream API`直接在本地运行你的WordCount任务。以下是一个基本步骤: 1. **使用Shell脚本**: - 首先,你需要确保你的WordCount源代码在一个可以直接访问的地方,例如`src/main/java`目录下。 - 创建一个shell脚本或者使用`run.sh`这样的文件,里面添加类似这样的内容: ```bash #!/bin/bash export JAVA_OPTS="-Dlog4j.configuration=log4j.properties" ./bin/flink run -m local[1] -c com.example.WordCount your_source.py ``` 这里假设你的WordCount类位于`com.example.WordCount`,并将输入数据源替换为实际的文件名或数据来源。 2. **通过API运行**: 如果你想在Flink环境中运行,而不涉及打包,可以在Flink Shell中创建并运行JobGraph,这需要对Flink API有一定的理解。示例: ```java StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment(); DataStream<String> text = ... // 获取输入文本流 DataStream<Tuple2<String, Integer>> counts = text.map(new Tokenizer()) .flatMap(new WordCounter()) .keyBy(0) .sum(1); counts.print(); env.execute("WordCount Example"); ``` 然后在Flink Shell中运行这个JobGraph。 3. **使用Flink CLI工具**: 使用Flink的命令行客户端`./bin/flink run`,提供你的类名和参数,如下所示: ``` ./bin/flink run -m local[1] your_job_class MainClass --arg1 your_input_file --arg2 word_count_config ``` 记住,`-m local[1]`表示本地单机模式,如果要在远程集群上运行,你需要提供正确的`-m`参数(如`-m yarn-cluster`)并调整其他相关配置。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值