From 612c1648ef2255adb286e10bad8e224d8800adc5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BB=A3=E6=AC=A3=E9=9B=A8?= Date: Wed, 28 Jul 2021 15:57:10 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8A=A0=E5=85=A5IDEA=20=E6=9C=AC=E5=9C=B0?= =?UTF-8?q?=E8=BF=90=E8=A1=8C=E8=B0=83=E5=BC=8F=E7=9A=84=20=E6=96=87?= =?UTF-8?q?=E6=A1=A3=E4=BB=8B=E7=BB=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 3 ++- docs/idea-run.md | 51 ++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 53 insertions(+), 1 deletion(-) create mode 100644 docs/idea-run.md diff --git a/README.md b/README.md index db9e72fc..dcf3064e 100644 --- a/README.md +++ b/README.md @@ -52,8 +52,9 @@ https://xie.infoq.cn/article/1af0cb75be056fea788e6c86b 1、 [Flink 和 flink-streaming-platform-web 安装部署](/docs/deploy.md) +2、 [在IDEA中执行运行调试](/docs/idea-run.md) - + ## 三、功能介绍 diff --git a/docs/idea-run.md b/docs/idea-run.md new file mode 100644 index 00000000..732b8726 --- /dev/null +++ b/docs/idea-run.md @@ -0,0 +1,51 @@ +# 关于使用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.3.0.RELEASE.jar + +8、flink-streaming-web 模块是REST服务模块,运行启动类是:com.flink.streaming.web.StartApplication + +9、启动完成后,访问本地: localhost:8080 用户名: admin 密码: 123456 + +10、系统设置:flink_streaming_platform_web_home=你自己的路径/flink-streaming-platform-web/ + +11、如果你开发环境有 YARN 就配置 yarn_rm_http_address (根据你自己的确定) + +12、如果是standalone模式,需要本地运行Flink 集群,并配置 flink_rest_http_address +``` + +## 原理 + +``` +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.3.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.3.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 是告诉任务是流任务还是 批任务 \ No newline at end of file