更新一篇知识星球里面的源码分析文章,去年写的,周末自己录了个视频,大家看下效果好吗?如果好的话,后面补录发在知识星球里面的其他源码解析文章。
前言
之前自己本地 clone 了 Flink 的源码,编译过,然后 share 到了 GitHub 上去了,自己也写了一些源码的中文注释,并且 push 到了 GitHub 上去了。这几天阿里开源了宣传已久的 Blink,结果我那个分支不能够继续 pull 下新的代码,再加上自己对 Flink 研究了也有点时间了,所以打算将这两个东西对比着来看,这样可能会学到不少更多东西,因为 Blink 是另外一个分支,所以自己干脆再重新 fork 了一份,拉到本地来看源码。
fork
执行下面命令:
git clone git@github.com:apache/flink.git
拉取的时候找个网络好点的地方,这样速度可能会更快点。
编译
因为自己想看下 Blink 分支的代码,所以需要切换到 blink 分支来,
git checkout blink
这样你就到了 blink 分支了,接下来我们将 blink 源码编译一下,执行如下命令:
mvn clean install -Dmaven.test.skip=true -Dhadoop.version=2.7.6 -Dmaven.javadoc.skip=true -Dcheckstyle.skip=true
maven 编译的时候跳过测试代码、javadoc 和代码风格检查,这样可以减少不少时间。
注意:你的 maven 的 settings.xml 文件的 mirror 添加下面这个:(这样下载依赖才能飞起来)
nexus-aliyun *,!jeecg,!jeecg-snapshots,!mapr-releases Nexus aliyun http://maven.aliyun.com/nexus/content/groups/public mapr-public mapr-releases mapr-releases https://maven.aliyun.com/repository/mapr-public
执行完这个命令后,然后呢,你可以掏出手机,打开微信,搜索下微信号:zhisheng_tian , 然后点击一波添加好友,欢迎来探讨技术。
等了一波时间之后,你可能会遇到这个问题(看到不少童鞋都遇到这个问题,之前编译 Flink 的时候也遇到过):
[ERROR] Failed to execute goal on project flink-mapr-fs: Could not resolve dependencies for project com.alibaba.blink:flink-mapr-fs:jar:1.5.1: Failure to find com.mapr.hadoop:maprfs:jar:5.2.1-mapr in http://maven.aliyun.com/nexus/content/groups/public was cached in the local repository, resolution will not be reattempted until the update interval of nexus-aliyun has elapsed or updates are forced -> [Help 1]
如果你试了两遍都没编译通过,那么我这里就教大家一种方法(执行完编译命令后啥也没动就 OK 的请跳过,谁叫你运气这么好呢):
在 flink-filesystems 中把 flink-mapr-fs module 给注释掉。
上图这是我给大家的忠告,特别管用。
再次执行命令编译起来就没有错误了,如果你还有其他的错误,我猜估计还是网络的问题,导致一些国外的 maven 依赖下载不下来或者不完整,导致的错误,暴力的方法就是和我一样,把这些下载不下来的依赖 module 注释掉,或者你可以像已经编译好的童鞋要下 maven 的 .m2 文件里面已经下载好了的依赖,然后复制粘贴到你的本地路径去,注意路径包名不要弄错了,这样一般可以解决所有的问题了,如果还有问题,我也无能为力了。
编译成功就长下图这样:
运行
然后我们的目录是长这样的:
标记的那个就是我们的可执行文件,就跟我们在 Flink 官网下载的一样,我们可以将它运行起来看下效果。
我把它移到了 /usr/local/blink-1.5.1 下了,个人习惯,喜欢把一些安装的软件安装在 /usr/local/ 目录下面。
目录结构和我以前的安装介绍文章类似,就是多了 batch_conf 目录,和 conf 目录是一样的东西,不知道为啥要弄两个配置文件目录,问过负责的人,没理我,哈哈哈。
那么我们接下来就是运行下 Blink,进入到 bin 目录,执行可执行文件:
./start-cluster.sh
windows 可以点击 start-cluster.bat 启动,这点对 windows 用户比较友好。
执行完后命令后,在浏览器里访问地址,http://localhost:8081/
, 出现下图这样就代表 Blink 成功启动了:
上图是开源版本的白色主题,骚气的黑色主题通过在 Flink 群里得知如何改之后,编译运行后的效果如下:
一次好奇的执行了多次上面启动命令,发现也能够正常的运行。
然后启动的日志是这样的:
说明已经启动了 9 个 Task Manager,然后看到我们页面的监控信息如下:
可以看到监控信息里面已经有 40 个可用的 slot,这是因为 Blink 默认的是一个 Task Manager 4 个 slot,我们总共启动了 10 个 Task Manager,所以才会有 40 个可用的 slot,注意:Flink 默认的配置是 1 个 Task Manager 只含有 1 个 slot,不过这个是可以自己分配的。
注意:开启了多个 Task Manager 后,要关闭的话,得执行同样次数的关闭命令:
./stop-cluster.sh
中文源码分析
配套视频解析
视频录制过程难免说错,还请大家可以指教
相关
更多源码解析的文章和 Flink 资料请加知识星球!
本文地址是:,未经允许,禁止转载!
总结
本篇文章是《从1到100深入学习Flink》的第一篇,zhisheng 我带带大家一起如何 clone 项目源码,进行源码编译,然后运行编译后的可执行文件 blink。下篇文章会分析项目源码的结构组成。
相关文章
1、
2、
3、
4、
5、
6、
7、
8、
9、
10、
11、
12、
13、
14、
15、
16、
17、
18、