Flink应用篇——配置文件详解

 

  • 部署和端口
jobmanager.rpc.address: localhost  # JM的host,只在standalone中有效,其他例如Yarn、K8S等或者HA模式都是无效的,都被其他服务自动选举
jobmanager.rpc.port: 6123 # JM的port,生效时机同上
metrics.internal.query-service.port: 0  # 用于及指标查询服务的端口,默认会随机找一个端口,也可以通过50100,50101,50200-50300等方式指定范围内挑选
rest.address: 
rest.port
rest.bind-address: # web服务绑定的address
rest.bind-port: # web服务端绑定的port
taskmanager.data.port: # TM用于外部数据交换的端口
taskmanager.host: # TM对外暴露的端口
taskmanager.rpc.port: # TM用于rpc的端口
  • 容错

可配置参数说明:
①可以配置多种不同的job restart策略
②每种重启策略有不同的参数
③可以配置checkpoint相关参数(策略、存储位置等)

restart-strategy: none  # 默认的重启策略(当job失败时如何恢复),当checkpoint配置时才能生效,不配checkpoint默认为none,配了则默认为fixed-delay
restart-strategy.fixed-delay-attempts: 1  # 当重启策略为fixed-delay时的重启次数
restart-strategy.fixed-delay.delay: 1s  # 当重启策略为fixed-delay时的重启延时时长
restart-strategy.failure-rate.delay: 1s # 当重启策略为failure rate时的延时时长
restart-strategy.failure-rate.max-failures-per-interval: 
  • 高可用性

可配置参数说明:
①高可用模式
②高可用下JM metadata存储路径

high-availability  # 高可用模式,例如ZOOKEEPER,也可以选择指定为某个高可用的class类
high-availability.storageDir: hdfs:///flink/ha # 高可用模式下持久化JM的metadata的文件系统路径
high-availability.zookeeper.path.root: /flink # zookeeper的root node路径
high-availability.zookeeper.quorum: none # zookeeper的HA模式下的zk地址
  • 内存设置
  • 安全
### Java Flink JAR包创建、结构、部署与使用详解 #### 创建Flink应用程序JAR包 对于希望集成外部库并将其作为独立的应用程序分发的情况,通常的做法是创建一个包含所有依赖项的uber/fat jar。这可以通过Maven或Gradle等构建工具来实现,在pom.xml(针对Maven项目)中配置`maven-shade-plugin`插件或者在build.gradle里指定shadowJar任务,从而将应用自身的代码连同所需的第三方库一起被打入单个jar文件内[^1]。 ```xml <!-- Maven pom.xml snippet --> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> <version>3.2.4</version> <executions> <!-- Configuration omitted for brevity --> </executions> </plugin> </plugins> </build> ``` #### Flink JAR包内部结构 标准的Flink应用程序JAR应该至少包含以下组成部分: - `META-INF/MANIFEST.MF`: 清晰定义了入口点以及任何必要的元数据。 - 主类:实现了`StreamExecutionEnvironment`或`ExecutionEnvironment`逻辑的地方;这是执行计划启动之处。 - 所有自定义函数/操作符的具体实现。 - 如果适用的话,则还有额外资源文件夹下的静态资源配置。 #### 部署方式说明 当涉及到实际运行环境时,有两种主要途径可用于加载这些外部组件至集群节点上——要么是在启动前手动放置于classpath之下,要么就是通过打包成fat-jar的形式直接上传给JobManager进程处理。后者更为推荐,因为它能确保一致性和便于版本控制。 另外值得注意的是,某些特定类型的连接器比如MySQL CDC可能还需要额外声明其依赖关系以便正确解析和工作[^2]。 #### 使用REST API提交作业实例 除了命令行界面外,还可以借助HTTP请求向远程服务器发送指令以触发新任务的初始化流程。此方法允许更细粒度的操作权限管理和跨平台兼容性增强。下面给出了一段Python脚本片段展示怎样调用官方文档所描述的一系列接口完成整个过程[^3]。 ```python import requests from pathlib import Path flink_job_jar_path = "path/to/flink-job.jar" response = requests.post( 'http://localhost:8081/jars/upload', files={'file': open(flink_job_jar_path, 'rb')} ) upload_result = response.json() job_id = upload_result['filename'].split('/')[-1].replace('.jar', '') run_response = requests.post( f'http://localhost:8081/jars/{job_id}/run' ) print(run_response.text) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值