CDH 集成Flink记录

对于CDH集成Flink在网上找了一下博文,有的给出了官方的链接,好像点进去都失效了。然后通过尝试制作parcel包的方式来集成到CDH的方式成功了,过程也比较简单,特此记录一下。
首先感谢flink-parcel作者,接下来讲诉制作过程。
1.首先下载相关项目到服务器,然后修改flink-parcel.properties

git clone https://github.com/pkeropen/flink-parcel.git
cd flink-parcel

flink-parcel.properties内容如下:

#FLINK 下载地址
FLINK_URL=https://mirrors.tuna.tsinghua.edu.cn/apache/flink/flink-1.11.4/flink-1.11.4-bin-scala_2.12.tgz

#flink版本号
FLINK_VERSION=1.11.4

#扩展版本号
EXTENS_VERSION=BIN-SCALA_2.12

#操作系统版本,以centos为例
OS_VERSION=6

#CDH 小版本
CDH_MIN_FULL=5.2
CDH_MAX_FULL=6.3.1

#CDH大版本
CDH_MIN=5
CDH_MAX=6

如果FLINK_URL报404问题的话,重新修改地址就行了,国内镜像地址有得是。
2,然后生成Parcel文件,当然这个过程可能会遇到问题,如果python版本过低的话最后生成可能会报错。

./build.sh  parcel

python版本过低引起的问题:解决方法升级到2.7,之前用的是2.6

Traceback (most recent call last):
  File "cm_ext/make_manifest/make_manifest.py", line 115, in <module>
    manifest = make_manifest(path)
  File "cm_ext/make_manifest/make_manifest.py", line 79, in make_manifest
    with tarfile.open(fullpath, 'r') as tar:
AttributeError: 'TarFile' object has no attribute '__exit__'

3.打包完parcel之后应该会在FLINK-1.11.4-BIN-SCALA_2.12_build目录下生成三个文件,然后开始生成csd文件

// 生成  FLINK_ON_YARN-1.11.4.jar包
on yarn 版本
./build.sh  csd_on_yarn
standalone版本
./build.sh  csd_standalone

接下来就是要集成到CDH的步骤了,首先将刚刚打好的csd包放入到指定目录:

cp FLINK_ON_YARN-1.11.4.jar /opt/cloudera/csd/

然后找个服务器安装个nginx服务,生成parcel步骤中生成的三个文件,放在nginx根目录中。链接大致如下:http://127.0.0.1/flink-1.11.4/,flink-1.11.4目录是自己在根目录新建的,然后把三个文件放进去,尝试访问一下manifest.json文件:
在这里插入图片描述
然后就是登录CDH manager后台,各个版本后台略有差异,我的是cdh 5.8.5
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
将静态文件的链接放进去http://10.1.21.251/flink-1.11.4/,这个过程可能需要重启一下CDH manager,然后依次选择下载>分配>激活。最后添加服务:
在这里插入图片描述
在这里插入图片描述
点击继续,后面配置步骤中,如果集群开启了安全,需要配置security.kerberos.login.keytab和security.kerberos.login.principal两个参数才能正正常启动。如未启动kerberos,则在CDH中添加FLINK服务时请清空这两个参数的内容。
最后是启动报错总结:

Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/yarn/exceptions/YarnException
        at java.lang.Class.getDeclaredMethods0(Native Method)
        at java.lang.Class.privateGetDeclaredMethods(Class.java:2701)
        at java.lang.Class.privateGetMethodRecursive(Class.java:3048)
        at java.lang.Class.getMethod0(Class.java:3018)
        at java.lang.Class.getMethod(Class.java:1784)
        at sun.launcher.LauncherHelper.validateMainClass(LauncherHelper.java:544)
        at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:526)
Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.yarn.exceptions.YarnException
        at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:352)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
        ... 7 more

如果启动时报如下错误,则是缺少hadoop的相关jar包(flink-shaded-hadoop-2-uber-2.7.5-7.0.jar),将jar下载下来,放到/opt/cloudera/parcels/FLINK-1.10.0-BIN-SCALA_2.11/lib/flink/lib/目录下即可。

还有一个错误:

Caused by: java.lang.ArithmeticException: / by zero 
logIfComponentMemNotIntegerMultipleOfYarnMinAllocation

这个措施是因为把yarn.scheduler.minimum-allocation-mb参数设置为0而导致的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

三寸花笺

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值