# flink-app-test **Repository Path**: mpv945/flink-app-test ## Basic Information - **Project Name**: flink-app-test - **Description**: flink, flink-cdc, flinkx以及chunjun的使用 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-05-27 - **Last Updated**: 2025-05-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Flink 课程项目 生成项目 https://nightlies.apache.org/flink/flink-docs-release-2.0/docs/dev/configuration/overview/#getting-started 这是一个基于 Apache Flink 2.0 的课程项目,用于学习和实践 Flink 的核心概念和功能。 ## 项目结构 ``` flink-course/ └── src/ └── main/ ├── java/ │ └── com/example/flinkcourse/ │ └── lesson1/ │ ├── source/ # 数据源实现 │ ├── transform/ # 数据转换处理 │ ├── window/ # 窗口处理 │ ├── sink/ # 数据输出 │ ├── state/ # 状态管理 │ ├── time/ # 时间语义 │ └── FlinkLesson1Job.java └── resources/ └── lesson1/ ├── application.yaml # 应用配置 └── log4j.properties # 日志配置 ``` ## 课程内容 ### Lesson 1: 双源流 ETL 项目 本课程实现了一个企业级的双源流 ETL 项目,具有以下特点: 1. **数据源** - Kafka 数据源(支持 Kerberos 认证) - HBase 数据源(支持 Kerberos 认证) 2. **数据处理** - 基础算子:Map、FlatMap、Filter、KeyBy、Reduce - UDF 函数 - RichFunction 实现 3. **窗口处理** - 滚动窗口 - 滑动窗口 - 自定义触发器 4. **状态管理** - ValueState/ListState/MapState - Checkpoint 配置 - 状态恢复 5. **时间语义** - 事件时间处理 - 水位线机制 - 乱序数据处理 6. **数据输出** - Elasticsearch Sink - PostgreSQL Sink ## 环境要求 - JDK 11+ - Maven 3.6+ - Flink 2.0.0 - Kafka 2.x - HBase 2.2.x - Elasticsearch 7.x - PostgreSQL 12+ ## 快速开始 1. 克隆项目 ```bash git clone [项目地址] cd flink-course ``` 2. 编译项目 ```bash mvn clean package ``` 3. 运行作业 ```bash java -jar target/flink-course-1.0-SNAPSHOT.jar ``` ## 配置说明 配置文件位于 `src/main/resources/lesson1/application.yaml`,包含: - Kafka 配置 - HBase 配置 - Elasticsearch 配置 - PostgreSQL 配置 - Checkpoint 配置 - 窗口配置 ## 开发指南 1. 每个课程模块都是独立的,可以单独运行和测试 2. 代码中包含详细的注释,方便理解 3. 建议按照课程顺序学习,循序渐进 ## 注意事项 1. 运行前请确保相关服务(Kafka、HBase、ES、PG)已启动 2. 如果使用 Kerberos 认证,请确保相关配置文件已正确配置 3. 生产环境部署时请注意调整 Checkpoint 和状态后端配置