首页 > 其他分享 >flink 源代码启动

flink 源代码启动

时间:2023-06-13 09:13:11浏览次数:35  
标签:1.16 log 启动 flink SNAPSHOT 源代码 target

Flink源码编译启动

 

背景
纯小白新手入门flink,由于自身基础差底子薄,启动个源码各种查资料找资源,终于启动好了 值得记录一下,本文源码启动是基于idea+jdk8+maven在windows上启动flink1.16源码。

(1)下载源码
源码地址:https://github.com/apache/flink/tree/release-1.16

(2)项目编译
首先在idea中打开命令终端Terminal,然后进行编译

在flink目录中执行:

mvn clean install -DskipTests -Dmaven.javadoc.skip=false -T 1C
进入flink-dist目录(cd flink-dist)执行:

mvn install -DskipTests
这个过程较慢,需要耐心等一会。。。

如果在此过程中报错:Too many files with unapproved license, 需要加入-Drat.skip=true 跳过许可证发行检查。

检验是否成功:进入flink-dist目录查看target文件下是否有flink-1.16-SNAPSHOT-bin文件夹(启动配置时需要用),如下图:

 

(3) 启动StandaloneSessionClusterEntrypoint
a.基础配置:

在flink-runtime模块下的StandaloneSessionClusterEntrypoint类中,不修改直接启动会报错。

 

 

这是一个help信息,要求我们用-c参数输入一个配置文件所在目录。

这个配置文件目录就是flink编译后的conf目录。即:flink-dist模块下target文件下(上第一步编译后的target文件),所以我们在idea的application执行界面的program arguments中填入编译后的conf目录:

-c E:\myStudy\flink1.16\flink-dist\target\flink-1.16-SNAPSHOT-bin\flink-1.16-SNAPSHOT\conf

#注意:-c 是固定格式,后面的路径是项目本身的target文件下的具体地址,需要根据自己项目动态调整

 

 

b.主类缺失:

这时候再次点击main方法启动时,还是报错:Exception in thread "main" java.lang.NullPointerException,

所以我们需要依赖其他的jar包,即:在IDEA的File -> project structure->Modules中给flink-runtime-添加依赖,依赖jar包来源于flink-dist模块下target文件下(上第一步编译后的target文件)下\flink-1.16-SNAPSHOT-bin\flink-1.16-SNAPSHOT\lib目录下的所有jar包都添加进去。

 

 

c.启动:

重新启动该类的main方法,就启动起来了,可以打开localhost:8081可以出现flink界面。

 

 

d.日志配置:

能够启动项目了但是无法看到日志,需要在jvm启动命令中指定log4j配置文件。

-Dlog4j.configurationFile=file:/E:/myStudy/flink1.16/flink-dist/target/flink-1.16-SNAPSHOT-bin/flink-1.16-SNAPSHOT/conf/log4j-console.properties

#注意:-Dlog4j.configurationFile=file: 是固定格式,后面的路径是项目本身的target文件下的具体地址,需要根据自己项目动态调整

 

 

在log4j-console.properties文件中,日志目录被配置为$sys:log.file$,即从系统环境变量中取log.file,如果没有配置的话仍然会无法显示日志或者报错,所以需要提前配置好。

我这边不打算采用系统环境变量的方式,而是用自定义的环境变量log.file=target/log/flink.log,并把log4j-console.properties中的$sys:log.file$都改成$env:log.file$,这样的好处是可以把JobManager和TaskManager的日志分开。

(4) 启动TaskManagerRunner
同StandaloneSessionClusterEntrypoint类启动大体一致,都需要配置a,b两步,但是由于b步在StandaloneSessionClusterEntrypoint中已经配置过,所以在此不用再次配置,只需要配置步骤a。

a.基础配置:

在idea的application执行界面的program arguments中填入编译后的conf目录,同StandaloneSessionClusterEntrypoint类中配置相同,可直接拷贝过来。

b.创建临时目录:

启动时会创建一个临时目录,这个目录的名字格式是:tm_localhost:63324-413063,其中冒号在windows里是不被允许的,所以需要修改TaskManagerRunner类中getTaskManagerResourceID()方法,把ip和端口的连接符号从冒号改成下划线,如下图:

 

 

c.配置项添加

进入flink-dist模块下找target文件,找到flink-1.16-SNAPSHOT-bin下的conf配置文件夹下的flink-conf.yaml文件(即路径为:flink-dist\target\flink-1.16-SNAPSHOT-bin\flink-1.16-SNAPSHOT\conf\flink-conf.yaml),进行配置文件的修改:

## ================== 单独启动时添加 ===================
taskmanager.cpu.cores: 2

taskmanager.memory.task.heap.size: 750mb
taskmanager.memory.task.off-heap.size: 0mb

taskmanager.memory.managed.size: 2048mb

taskmanager.memory.network.min: 128mb
taskmanager.memory.network.max: 128mb

taskmanager.memory.framework.heap.size: 128mb
taskmanager.memory.framework.off-heap.size: 128mb
taskmanager.log.path: target/log/jobmanager/flink.log

# jvm
taskmanager.memory.jvm-metaspace.size: 256mb
taskmanager.memory.jvm-overhead.max: 256mb
taskmanager.memory.jvm-overhead.min: 256mb
## ==================================================

其中taskmanager.log.path是task的日志文件,根据自己项目情况动态调整。

d.启动:

刷新localhost:8081界面,Taskmaanger启动成功后会自动注册到JobManager,所以在flink界面能够看到TaskManager的数量从0变成了1。

 

 

e.日志配置

同同StandaloneSessionClusterEntrypoint类的日志配置相同。

结束
至此,flink源码启动完成,如有错误之处,还望各位大佬体谅与指教!

原文链接:https://blog.csdn.net/weixin_44733185/article/details/89345572

标签:1.16,log,启动,flink,SNAPSHOT,源代码,target
From: https://www.cnblogs.com/leolzi/p/17476540.html

相关文章

  • nohub命令和java -jar启动Spring Boot
    1.nohub命令启动SpringBoot项目nohupjava-Xms1024m-Xmx2048m-jardemo-0.0.1-SNAPSHOT.jar1>start.out2>&1&2.java-jar启动SpringBoot项目java-Xms800m-Xmx800m-XX:PermSize=256m-XX:MaxPermSize=512m-XX:MaxNewSize=512m-jardemo-0.0.1-SNAPSHOT.jar&g......
  • nohup java -jar 启动java项目
    一、java-jara.jar&直接启动jar文件,在当前会话进程中开启一个子进程来运行程序,这个子进程会随着会话进程的结束而结束。这种情况适合短时间测试用。二、nohupjava-jara.jar&先交代一下名词:hangup(挂断),终端退出时会发送hangup信号来通知其关闭所有子进程。nohup(不挂断......
  • 内核在Linux启动中的中流砥柱
        内核时操作系统中最基本的部分,它在系统启动时被加载到内存里面,然后留在内存中管理系统的资源、调度进程等。 内核可以管理进程、用户、内存等主要部分。在编译过程中静态链接到主机的内核模块中。有一种可加载的内核模块,在编译时没有链接到主机,但是在系统启动时或启动......
  • Linux控制服务启动关闭
    systemctl命令Linux系统很多软件(内置或第三方)均支持使用systemctl命令。系统内置服务均可被systemct控制第三方软件,如果自动注册了可以被systemct控制第三方软件,如果没有自动注册,可以手动注册。systemctl命令控制:启动,停止,开机自启。能够被systemctl管理的软件,一般称之为:服......
  • Web安全测试—查看网页的HTML源代码
      浏览器中浏览网页,查看网页的源代码,是测试中很简单的,很基本的方法,也是非常值得做的。查看源代码最基本的两项作用:可以帮助你发现最明显的安全问题,可以帮助为将来的测试建立一个比较的基准。也可以帮忙你对比攻击失败前后的源代码,调整你的输入,了解到通过的和没有通过,可以再次......
  • mysql启动报can't create/write to file 'var/run/mysqld/mysqld.pid 错误解决办法
    msql启动报错,启动不了。进入mysql日志默认的路径为/var/log/mysqld.log查看日志,发现报错信息如下:can'tcreate/writetofile'var/run/mysqld/mysqld.pid解决办法:将/var/run/mysqld/权限赋给mysql执行以下命令即可:chown-Rmysql/var/run/mysqldchgrp-Rmysql/var/ru......
  • 项目启动会必须汇报的26个要素
    项目启动会是项目正式开始实施的重要里程碑,一般需要多方参与并且确定项目的项目经理。项目经理需要通过与售前、商务、采购负责人提前沟通项目的前期情况,同时与领导申请与项目相关的资源。一般项目启动会的流程包括:1、项目总负责人说明项目的来源、客户对项目的期望以及项目可能出......
  • 2.x Nacos 启动失败
    今天在官网下载了最新版本的Nacos,启动的时候出现错误:nestedexceptionisjava.lang.IllegalArgumentException:thelengthofsecretkeymustgreatthanorequal32bytes;Andthesecretkeymustbeencodedbybase64.Pleaseseehttps://nacos.io/zh-cn/docs/v2/guid......
  • c++中string类的源代码
    一:回顾(1)c++中的string类是在面试中和笔试中经常考的题目;工程代码免费下载 string类的自行实现(2)c++中的string类和fstream类合起来是处理外部数据的利器;(3)string类经常用到findfind_first_offind_first_not_offind_last_offind_last_not_ofsubstrreplace等,以及联合使用来达......
  • Android中Activity的启动模式
    Android中Activity的启动模式一共有4种,分别是standard、singleTop、singleTask、singleInstance,可以在AndroidManifest.xml中通过给<activity>标签指定android:launchMode属性来指定启动模式。1、standard在standard模式下,每当启动一个新的Activity,他就会在返回栈中入栈,并处于......