flink-streaming-platform-web/docs/idea-run.md
2025-03-28 17:52:09 +08:00

51 lines
2.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 关于使用IDEA直接运行(免安装)
## 使用IDEA直接运行的好处
方便看在控制台直接看日志方便本地Debug可以快速阅读底层方便参与贡献
## 步骤
```
1、使用git clone 到本地后使用IDEA打开项目
2、修改数据库连接 flink-streaming-web/src/main/resources/application.properties
3、在本地数据库中创建 flink_web 库,并执行 docs/sql/flink_web.sql 构建数据库表
4、执行 mvn clean package -DskipTests
5、在 flink-streaming-platform-web 主目录下创建 lib 文件夹
6、将 flink-streaming-core/target/flink-streaming-core.jar 移动到 刚创建的lib 中
7、将 flink-streaming-core.jar 改名为 flink-streaming-core-1.5.0.RELEASE.jar
8、flink-streaming-web 模块是REST服务模块运行启动类是com.flink.streaming.web.StartApplication
9、启动完成后访问本地: localhost:8180 用户名: admin 密码: 123456
10、系统设置flink_streaming_platform_web_home=你自己的路径/flink-streaming-platform-web/
11、本地启动flink集群./start-cluster.sh 并在系统配置中 flink_rest_http_address为http://localhost:8180/
12、创建任务,并设置运行模式为Local Cluster然后就可以愉快的写sql了
```
## 原理
```
1、平台提交任务是使用的 Process pcs = Runtime.getRuntime().exec(command); 来执行
2、command 类似于,下面这个命令是 平台生成的 使用 yarn 提交 批任务
/Users/gump/dreamware/flink-1.13.1/bin/flink run -yjm 1024m -ytm 1024m -p 1 -yqu default -ynm flink@my_batch_job -yd -m yarn-cluster -c com.flink.streaming.core.JobApplication /Users/gump/study/source/github/flink-streaming-platform-web/lib/flink-streaming-core-1.5.0.RELEASE.jar -sql /Users/gump/study/source/github/flink-streaming-platform-web/sql/job_sql_3.sql -type 2
3、大家可以去分析这个命令其实就是要知道 Flink 的客户端在哪个目录 提交的jar 就是导入到lib下的 flink-streaming-core-1.5.0.RELEASE.jar
4、yarn 的url 貌似只是 日志那里有使用
5、com.flink.streaming.core.JobApplication 这个就是真正运行的JOB,在IDEA 里面也是可以执行的,配置一下参数就可以了,相信大家可以举一反三的
我debug时用的参数参考 -sql /Users/gump/study/source/github/flink-streaming-platform-web/sql/job_sql_1.sql -type 0
这里有个细节core pom中的Flink 依赖包是 provide 的本地要debug job时可以 注释这个刷新Maven
6、我们在任务中配置的SQL会生成在项目的 /sql 目录下 ,也就是上面命令的 -sql 后的路径 -type 是告诉任务是流任务还是 批任务