flink1.9.x自制parcel以运行在cdh6.3.0的CM首页上

背景:

参考“如何获得Cloudera的Flink Parcel包”,此文:https://mp.weixin.qq.com/s/ajYyEnqCJRr8S645BqKCcg,然后运行安装包下的示例程序“在CDH上运行你的第一个Flink例子”:https://mp.weixin.qq.com/s/gPGVv_2US1eIihVwN4E1sQ。虽成功,但坑人呐!

问题描述:

我安装到cdh6.3.0后发现功能“阉割”了:1.其web ui中没有提交jar包的按钮;2.仅能standalone模式运行安装包examples目录下所提供的WordCount.jar且同目录下的SocketWindowWordCount.jar也无法单机或yarn的任何模式下运行。另外,安装后默认启用了kerberos安全认证功能,我在cdh的flink“配置”处手动清除了默认的两个选项共三个默认值:Client和KafkaClient、flink.keytab,重启后运行flink list命令仍报错:WARN zookeeper.ClientCnxn: SASL configuration failed。详情见:https://developer.aliyun.com/ask/133744?spm=a2c6h.13159736,文中“游客guzk5azdrhbmu”的三个评论。

此种方式安装后,连基本的安装包示例下的其他程序都无法运行flink run /opt/cloudera/parcels/FLINK-1.9.0-csa1.0.0.0-cdh6.3.0/lib/flink/examples/streaming/SocketWindowWordCount.jar --port 9009,或更别提yarn-cluster模式下运行了。报错信息同上。

于是,我参考:http://blog.51yip.com/hadoop/2362.html/comment-page-1#comment-18035,现指出文中几处错误或不足之处:

1.楼主所提供的git清华下载源现在是flink1.9.2版本了,尚未找到flink1.9.x的其他版本从何处下载;

2.编译命令./flink-parcel//build.sh csd_on_yarn,报错如下:
-bash: ./flink-parcel/build.sh: Permission denied

解决方案:chmod a+x ./build.sh

3.再次运行上述编译命令,报错:

sed: can't read flink-parcel.properties: No such file or directory

解决方案为cd flink-parcel,如下图:

flink1.9.x自制parcel以运行在cdh6.3.0的CM首页上

4.运行上图中的编译命令,报错如下:

Error: Unable to access jarfile cm_ext/validator/target/validator.jar

查看此build.sh脚本内容后,发现:

flink1.9.x自制parcel以运行在cdh6.3.0的CM首页上

经测试,发现在win10中使用“TortoiseGit”工具可以克隆此源码,于是下载、压缩、上传到服务器如上图。

接下来,参考:https://blog.****.net/lingeio/article/details/98480496,按如下操作:

[[email protected] flink-parcel]# cd cm_ext
[[email protected]rker cm_ext]# mvn package

成功编译此源码以生成上面报错所需的jar,如下图:

flink1.9.x自制parcel以运行在cdh6.3.0的CM首页上

最后成功编译(注意别忘了命令:./build.sh parcel,另外上图中我配置的FLINK_URL的清华大学的链接中需把flink-1.9.1改为flink1.9.2),并生成了“箭头所指”,如下图:

flink1.9.x自制parcel以运行在cdh6.3.0的CM首页上