Flink1,java 从入门到精通第四版 pdf 下载
IDEA 上运行 flink job 工程
在 IDEA 上创建 flink job 的 maven 工程并运行,请参考《IDEA上运行Flink任务》
假设您已按上面的步骤在 IDEA 建好了 flink job 工程;
运行起来,在浏览器打开 flink 页面,如下图,绿框中显示一共有 8 个 Task Slot:
之所以会有 8 个 Task Slot,和下图红框中的代码有关,这是段 flink 框架源码(StreamExecutionEnvironment.java),入参 parallelism 是 CPU 核数,我这里是开了超线程的四核 i5 处理器,所以 parallelism 等于 8:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200411213153170.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,s
hadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2JvbGluZ19jYXZhbHJ5,size_16,color_FFFFFF,t_70)
今天的目标就是修改上图红框中的源码,然后在网页上看是不是生效了(Task Slot 数量从 8 改成 5);
准备工作
maven 中央仓库地址建议用阿里云的,否则会经常遇到 jar 下载超时错误,地址:http://192.168.50.43:8081/repository/aliyun-proxy/
flink1.9.2 源码的 maven 工程依赖了一个中央仓库没有的 jar,GAV 是 io.confluent:kafka-schema-registry-client:3.3.1,您需要下载下来在本地仓库做 mvn install 操作,下载地址:http://packages.confluent.io/maven/io/confluent/kafka-schema-registry-client/3.3.1/kafka-schema-registry-client-3.3.1.jar
上述准备工作都需要您在本地 maven 上操作,但是如果您的条件允许,还是强烈推荐在内网搭建 maven 私服 nexus3,参考:《群晖DS218+做maven私服(nexus3)》、《Ubuntu部署和体验Nexus3》、《Nexus3常用功能备忘》
下载 flink1.9.2 源码
flink1.9.2 源码的下载地址:http://ftp.jaist.ac.jp/pub/apache/flink/flink-1.9.2/flink-1.9.2-src.tgz
修改和编译构建
将下载好的 flink-1.9.2-src.tgz 解压,得到文件夹 flink-1.9.2
打开这个文件:flink-1.9.2/flink-streaming-java/src/main/java/org/apache/flink/streaming/api/environment/StreamExecutionEnvironment.java
如下图红框,找到 createLocalEnvironment 方法,把 setParallelism 的入参改成一个固定的数字(每个 Task Slot 都要分配内存,所以这个数字请不要改得太大,否则启动 flink 就会报错了,我这里改成了 5):
在文件夹 flink-1.9.2 下,执行编译构建的命令:mvn clean install -DskipTests -Dfast
经历漫长等待后提示构建成功:
确认这个文件已生成,稍后就要用到:flink-1.9.2/flink-dist/target/flink-dist_2.11-1.9.2.jar
设置
为了用上刚刚构建出来的 flink 框架 jar,要做些设置,打开之前运行的 flink job 应用,在项目上点击右键,点击菜单 Open Module Settings,如下图:
接下来要做三个和 jar 有关的操作,注意每一步都很重要:
下图红框 1 中的 flink-dist_2.11-1.9.2.jar 文件,是《IDEA上运行Flink任务》一文中添加的,目的是提供网页服务,现在将其删除,操作如下图红框所示:
下图红框 1 中的 maven 依赖:org.apache.flink:flink-streaming-java_2.11:1.9.2,也请删除,操作如下图红框所示:
点击下图红框中的加号:
在弹出的窗口选中刚才构建好的文件 flink-1.9.2/flink-dist/target/flink-dist_2.11-1.9.2.jar:
记得点击右下角的 OK 按钮保存,修改完毕,接下来验证咱们修改的 flink 框架源码是否生效了
验证
当前 flink job 工程来自《IDEA上运行Flink任务》一文,StreamingJob 的工作是读取本机 18081 端口的数据,所以我们要把 18081 端口的服务启动起来,不然 StreamingJob 运行时是连不上端口的,打开一个控制台,执行命令:nc -l 18081
现在可以将 StreamingJob 运行起来,如下图,右键点击 StreamingJob,选择 Run ‘StreamingJob.main()’:即可启动 flink 任务:
评论