Flink连接器:thin与uber打包全攻略,openHarmony之storage_daemon:分区挂载与设备节点管理机制讲解。
·
Flink 连接器与格式thin/uber制品
Flink连接器是Flink生态系统的重要组成部分,用于对接外部数据源和数据汇。常见的连接器包括Kafka、JDBC、HDFS等。在打包时,开发者可以选择thin或uber(fat)JAR策略,以适应不同的部署需求。
thin JAR仅包含项目自身的代码和资源,依赖项由运行环境提供(如Flink集群的lib/目录)。这种方式适合依赖项较为固定且集群环境可控的场景,部署包体积小,启动速度快。
uber JAR则将所有依赖项打包到单个JAR文件中,便于独立运行和迁移。适合依赖项复杂或需要隔离环境的场景,但会导致包体积较大,且可能存在依赖冲突风险。
打包策略选择
thin JAR配置示例(Maven)
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<classpathPrefix>lib/</classpathPrefix>
</manifest>
</archive>
</configuration>
</plugin>
uber JAR配置示例(Maven)
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<filters>
<filter>
<artifact>*:*</artifact>
<excludes>
<exclude>META-INF/*.SF</exclude>
<exclude>META-INF/*.DSA</exclude>
</excludes>
</filter>
</filters>
</configuration>
</execution>
</executions>
</plugin>
上线清单与部署检查
为确保Flink作业稳定上线,需准备以下检查清单:
依赖项检查
- 确认所有运行时依赖(如连接器、格式库)与集群版本兼容。
- 避免传递依赖冲突,使用
mvn dependency:tree分析依赖树。
资源配置
- 设置合理的并行度、堆内存(
taskmanager.memory.process.size)和网络缓冲区。 - 检查外部系统连接配置(如Kafka的
bootstrap.servers)。
监控与容错
- 启用Checkpoint或Savepoint配置,指定存储路径(如HDFS)。
- 配置指标上报(Prometheus、InfluxDB)和日志聚合(ELK)。
启动命令示例
# 提交thin JAR(依赖在集群lib/目录)
./bin/flink run -c com.MainJob ./path/to/thin-job.jar
# 提交uber JAR
./bin/flink run -c com.MainJob ./path/to/uber-job.jar
通过合理选择打包策略和严格遵循上线清单,可显著提升Flink作业的部署效率和运行稳定性。
更多推荐
所有评论(0)