type
status
date
summary
slug
tags
category
password
icon

CDH 6.3.2 集成 Flink 1.14.4

环境准备:
  • CDHCentos7.6
  • JDK1.8
  • Scala2.12
  • Python2.7
  • Git1.8.3.1F
  • Apache Maven3.8.1
  • CDH6.3.2
上述软件/环境需提前安装

一、编译flink

  • 下载flink1.14.4源码包
  • 修改flink的pom.xml
  • 编辑
  • 编译flink(参考即可,可不做)
注:编译flink过程中可能会提示io.confluent相关的包有问题,查询资料反馈是默认下载的包不完整,需删除已经下载的包,然后从网站上下载对应的包放到maven repository目录
  • 修改flink-sql-connector-hive-2.2.0的pom.xml
  • 修改hive-exec版本
  • 编译flink-sql-connector-hive-2.2.0(sql_on_hive需要做这步)
  • 拷贝相关jar包到flink/lib
  • 打包已编译的flink源码

二、制作Flink的parcel包和csd文件

1. 下载制作脚本

2 修改参数

  • 修改

3 复制安装包

  • 这里把之前编译打包好的flink的tar包上复制到flink-parcel项目的根目录
  • flink-parcel在制作parcel时如果根目录没有flink包会从配置文件里的地址下载flink的tar包到项目根目录
  • 如果根目录已存在安装包则会跳过下载,使用已有tar包。 提示:注意:这里一定要用自己编译的包,不要用从链接下载的包!!!

4 编译parcel

  • 编译完会在flink-parcel项目根目录下生成FLINK-1.14.0-BIN-SCALA_2.12_build文件夹

5 编译csd

  • csd文件是组件的导航文件
  • 编译完成后在flink-parcel项目根目录下会生成1个jar包
    • FLINK_ON_YARN-1.14.4.jar

6 上传文件

将编译parcel后生成的FLINK-1.14.0-BIN-SCALA_2.12_build文件夹内的3个文件,复制到CDH Server所在节点的/opt/cloudera/parcel-repo目录
  • FLINK-1.14.4-BIN-SCALA_2.12-el7.parcel
  • FLINK-1.14.4-BIN-SCALA_2.12-el7.parcel.sha
  • manifest.json
将编译csd生成后的FLINK_ON_YARN-1.14.4.jar复制到CDH Server所在节点的/opt/cloudera/csd目录
  • FLINK_ON_YARN-1.14.4.jar

7 重启CDH server

三、CDH集成

操作步骤
notion image

1.打开CDH登录界面

notion image

2 进入Parcel操作界面

点击:主机 -> Parcel
notion image
notion image

3 分配Parcel

点击分配,等待分配完毕
notion image

4 激活Parcel

点击激活 -> 确定,等待激活完毕
notion image

5 回主界面

  • 点击Cloudera Manager
notion image

6.添加flink服务

  • 点击操作 -> 添加服务
notion image
  • 点击Flink-yarn -> 继续
notion image
notion image
  • 点击选择主机 -> 选择在哪些节点部署flink服务,根据情况自己选择
notion image
notion image
  • 选择主机 -> 继续
  • 审核更改,将这两项配置
    • security.kerberos.login.keytab
    • security.kerberos.login.principal
      • 两项设置为空字符串,点击继续
notion image
notion image
  • 这里就开始运行了,这一步运行失败了
notion image

错误1

/opt/cloudera/parcels/FLINK/lib/flink/bin/flink-yarn.sh: line 17: rotateLogFilesWithPrefix: command not found
  • 完整日志
  • 原因:
    • rotateLogFilesWithPrefix 函数的版本是 1.11.6,后面的版本就把这个函数删了,这个编译flink的库应该是不支持 1.12.0 以及之后的版本的
  • 编辑

错误2

  • 错误1已经处理完毕,重启后依旧报错,且无具体的错误输出;但是通过日志,可以看到提示HBASE环境变量未设置
    • notion image
解决:
  • Flink-yarn -> 配置 -> 高级 -> Flink-yarn 服务环境高级配置代码段(安全阀)Flink-yarn(服务范围)
    • 加入以下内容即可:
notion image

四、验证Flink服务

  • 运行一个WordCount测试

错误3

原因:
解决:在环境变量中加入HADOOP_CLASSPATH

错误4

解决:

错误5

  • 参考flink社区:链接,这是一个hadoop3(CDH 6.3.2 默认组件为hadoop3.0)和flink导致的一个bug
notion image
  • 根据答复的you can disable this check with the configuration ‘classloader.check-leaked-classloader’.,去禁用classloader.check-leaked-classloader
  • 解决办法: 在 flink 配置文件里 flink-conf.yaml设置classloader.check-leaked-classloader: false
  • 编辑添加

错误6

/opt/cloudera/parcels/FLINK/lib/flink/bin/flink-yarn.sh:17: rotateLogFilesWithPrefix
异常信息图片
notion image
  • 解决方法:
    • 上传相应的2个jar包到目标目录
      • commons-cli-1.5.0.jar
      • flink-shaded-hadoop-2-uber-3.0.0-cdh6.3.2-10.0.jar
    • /opt/cloudera/parcels/FLINK/lib/flink/lib
      • 安装服务的主机都需要上传

五、启动Web UI

  • 启动实例
notion image
  • 进入yarn
notion image
  • 进入yarn应用程序
notion image
  • 进入yarn页面 (session 模式就是一个常驻yarn的进程)
notion image
  • 从AM进入后台webui
CDH 6.3.2 Hue 报错Could not connect to xx:10000CDH 6.3.2 Hue 报错 1366
Loading...