Windows10在本地编译flink1.13.1源码

1、拉取源码

可以选择在github或者gitee上拉取flink1.13.1的源码
在这里插入图片描述
ps:如果clone不下来的话,直接下载zip包也是可以的

2、环境准备

本地需要安装maven,我的两台电脑分别使用了maven3.6.1和maven3.8.1,都可以编译成功。最好配置一下aliyun的镜像,下载依赖可以快一些
控制面板 -> 程序 -> 启用或关闭Windows功能,里面有一个选项是 适用于Linux的Windows子系统 ,一定要把这个选项勾上,不然在命令行打包好的shell脚本是dos格式,不是unix格式,在Linux运行的时候会出问题。(win11系统默认应该就是,不会出现这个问题)

3、编译

先不要用idea打开项目
以管理员身份运行命令行,进入源码的目录,执行编译命令

mvn clean install -T4.0C -DskipTests -Dfast
-T4.0C 表示采用多线程编译,可以不写

第一遍执行应该会在flink-runtime-web这个包的 frontend-maven-plugin 插件报错,flink1.13.1使用的node版本是10.9.0,去node官网把这个版本的node下载下来,把压缩包放到本地maven仓库的 com\github\eirslett\node\10.9.0 这个路径下,node-10.9.0-win-x64.zip 这个是文件的名字,之后修改 flink-runtime-web 这个包下的pom文件
在这里插入图片描述
我主要修改了两个地方,第265行是增加了10.9.0的node对应的npm版本,第274行是把

ci --cache-max=0 --no-save 替换成了 install -g --registry=http://registry.npmmirror.com --cache-max=0 --no-save

网上好多人用的都是旧的aliyun镜像仓库,这个是新的

修改完成之后,可以再单独编译flink-runtime-web这个包,整个flink源码编译的难点就在这个包内,先编译这个包,后面整体编译的时候,在parent的pom中把这个model注释掉就可以,不影响正常使用
在flink-runtime-web目录下执行

mvn clean install -DskipTests -Dfast

如果出现与ng相关的报错,可以先安装ng

npm install -g @angular/cli

再次重新编译,可能会提示node版本过低,那就在本地安装一个符合要求的node,但是之前复制到本地maven仓库的那个node不要切换,继续用10.9.0
重新编译flink-runtime-web,如果报错 找不到与@angular相关的模块,可以进入到

flink-runtime-web\web-dashboard\node_modules@angular\cli

执行

npm install -save-dev @angular-devkit/build-angular

等待安装结束,再重新编译flink-runtime-web,应该就会success,坑基本就这么多

找到父级的pom文件,把flink-runtime-web这个model注释掉
如果这段写的不清晰,可以看 https://blog.csdn.net/dzh284616172/article/details/107571972

之后全部编译,如果出现某个dependency拒绝访问的情况,重新编译,多编译几次就可以了

4、验证

编译成功以后,进入 flink-release-1.13.1\flink-release-1.13.1\flink-dist\target 这个目录下,flink-1.13.1-bin文件夹就是咱们需要的文件夹,把它上传到Linux服务器上,bin目录下是flink相关的一系列启动脚本
执行

chmod -R 775 bin/

给脚本执行权限,进到bin目录下,执行

./start-cluster.sh

访问ip:8081,查看flink界面是否正常,taskmanager是否有值
之后启动一个测试的jar包跑一下
先在机器上执行

nc -lk 9000

另开一个窗口,进入flink1.13.1目录,执行

./bin/flink run ./examples/streaming/SocketWindowWordCount.jar --port 9000

待任务提交以后,查看flink界面,看任务状态是否为RUNNING
在刚才nc的端口 输入一些字符,查看flink任务的日志,看看有没有打印
如果一切正常,那就代表flink编译成功

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值