一、安装包准备
CDH 6.3.2(Hadoop 3.0.0)、Flink 1.12.4、flink-shaded-12.0、Centos7.9、Maven 3.6.3、Scala-2.13.6和JDK1.8.0_291
flink包下载:https://mirrors.tuna.tsinghua.edu.cn/apache/flink/
二、环境配置
1.将安装包上传到相应目录并解压
tar -xzvf xx.tgz
2.配置环境变量
vi /etc/profile
export JAVA_HOME=/usr/local/jdk1.8.0_291
export PATH=$JAVA_HOME/bin:$PATH
export MAVEN_HOME=/usr/local/apache-maven-3.6.3
export PATH=$MAVEN_HOME/bin:$PATH
export SCALA_HOME=/usr/local/scala-2.13.6
export PATH=$SCALA_HOME/bin:$PATH
修改后 source /etc/profile
3、修改maven的setting.xml文件(conf目录下)
添加以下内容
alimaven
central
aliyun maven
http://maven.aliyun.com/nexus/content/repositories/central/
alimaven
aliyun maven
http://maven.aliyun.com/nexus/content/groups/public/
central
central
Maven Repository Switchboard
http://repo1.maven.org/maven2/
central
repo2
central
Human Readable Name for this Mirror.
http://repo2.maven.org/maven2/
ibiblio
central
Human Readable Name for this Mirror.
http://mirrors.ibiblio.org/pub/mirrors/maven2/
jboss-public-repository-group
central
JBoss Public Repository Group
http://repository.jboss.org/nexus/content/groups/public
google-maven-central
Google Maven Central
https://maven-central.storage.googleapis.com
central
maven.net.cn
oneof the central mirrors in china
http://maven.net.cn/content/groups/public/
central
三、编译flink-shaded 版本
1、解压tar包
tar -zxvf flink-shaded-12.0-src.tgz
2、修改pom.xml
vim flink-shaded-12.0/pom.xml
配置如下:
vendor-repos
vendor-repos
cloudera-releases
https://repository.cloudera.com/artifactory/cloudera-repos
true
false
HDPReleases
HDP Releases
https://repo.hortonworks.com/content/repositories/releases/
false
true
HortonworksJettyHadoop
HDP Jetty
https://repo.hortonworks.com/content/repositories/jetty-hadoop
false
true
mapr-releases
https://repository.mapr.com/maven/
false
true
3、编译
进入到 flink-shaded-12.0文件夹下 执行以下命令:
mvn -T2C clean install -DskipTests -Pvendor-repos -Dhadoop.version=3.0.0-cdh6.3.2 -Dscala-2.13 -Drat.skip=true
-T2C:使用2个进程进行编译
-Dhadoop.version:hadoop版本
-cdh6.3.2:cdh版本
-Dscala-2.13:Scala版本
四、编译Flink1.12.4源码
1、解压tar包
tar -zxvf flink-1.12.4-src.tgz
2、编译
cd flink-1.12.4
mvn clean install -DskipTests -Dfast -Drat.skip=true -Dhaoop.version=3.0.0-cdh6.3.2 -Pvendor-repos -Dinclude-hadoop -Dscala-2.13 -T2C
3、打包编译好的文件
路径在解压后的flink-1.12.4目录下的flink-dist/target/flink-1.12.4-bin
注意:我们是基于scala2.13编译的,压缩包的名称必须是:flink-1.12.4-bin-scala_2.13.tgz
tar -zcf flink-1.12.4-bin-scala_2.13.tgz flink-1.12.4/
五、制作flink-parcel文件
1、下载flink-parcel
git clone https://github.com/pkeropen/flink-parcel.git
如果报错:fatal: unable to access ‘https://github xxxxxxxxx的解决方法;将命令中的 https改为 git
即:将命令改为 git clone git://github.com/pkeropen/flink-parcel.git
如果报错:git error: RPC failed; result=35, HTTP code = 0 fatal: The remote end hung up unexpectedly
设置Git的http缓存大小(如果20M不行就 50M): git config --global http.postBuffer 20M
2、将上面打包好的flink-1.12.4-bin-scala_2.13.tgz放到上一步下载的flink-parcel根目录中
3、修改配置文件flink-parcel.properties
#FLINK 下载地址
#FLINK_URL=https://mirrors.tuna.tsinghua.edu.cn/apache/flink/flink-1.10.1/flink-1.10.1-bin-scala_2.12.tgz
#将FLINK_URL网络地址改为自己打包的flink-1.12.4-bin-scala_2.13.tgz本地路径
FLINK_URL=/flink/flink-1.12.4/flink-dist/target/flink-1.12.4-bin/flink-parcel/flink-1.12.4-bin-scala_2.13.tgz
#flink版本号
FLINK_VERSION=1.12.4
#扩展版本号
EXTENS_VERSION=BIN-SCALA_2.13
#操作系统版本,以centos为例
OS_VERSION=7
#CDH 小版本 (确定自己CDH版本在这个范围内即可)
CDH_MIN_FULL=6.1
CDH_MAX_FULL=6.5
#CDH大版本
CDH_MIN=6
CDH_MAX=6
4、编译parcel
在flink-parcel目录下执行
bash ./build.sh parcel
完成会生成FLINK-1.12.4-BIN-SCALA_2.13_build文件
5、生成csd文件
on yarn 版本
bash ./build.sh csd_on_yarn
standalone版本
bash ./build.sh csd_standalone
完成会生成两个jar包
6、完成flink-parcel制作 查看路径
将FLINK_ON_YARN-1.12.4.jar、FLINK-1.12.4.jar以及FLINK-1.12.4-BIN-SCALA_2.13_build目录下的三个文件复制到 /var/www/html/flink-1.12.4
7、查看页面是否可以访问
IP/flink-1.12.4
注意:如果连接访问不了 需要查看httpd服务是否开启或者直接执行 systemctl restart httpd 再刷新页面就可以了;IP后的路径名跟/var/www/html下文件名一致
六、CDH 中安装flink服务
此处假设你已经安装好CDH集群
(1) 将上面生成的FLINK-1.12.4-BIN-SCALA_2.13_build下文件copy至/opt/cloudera/parcel-repo子目录下(目录根据自己实际情况)
(2) 将上述生成的FLINK_ON_YARN-1.12.4.jar、FLINK-1.12.4.jar文件copy至/opt/cloudera /csd子目录下(目录根据自己实际情况)
(3) 在CDH中添加flink的parcel包:
打开CDH管理界面->集群->检查parcel包->flink->分配->激活
(4) 重启CDH服务
systemctl restart cloudera-scm-server
systemctl restart cloudera-scm-agent
点击CDH所管理的集群添加服务,在列表中找到flink,按提示添加启动并运行。
说明:
(1) 在如果集群开启了安全,需要配置security.kerberos.login.keytab和security.kerberos.login.principal两个参数才能正正常启动。如未启动kerberos,则在CDH中添加FLINK服务时请清空这两个参数的内容
(2) 如果你计划将 Apache Flink 与 Apache Hadoop 一起使用(在 YARN 上运行 Flink ,连接到 HDFS ,连接到 HBase ,或使用一些基于 Hadoop 文件系统的 connector ),
请选择包含匹配的 Hadoop 版本的下载包,且另外下載对应版本的 Hadoop 库,将官方指定 Pre-bundled Hadoop 2.6.5 ,并且把下载后的 Hadoop 库放置到 Flink 安装目录下的 lib 目录包并设置
HADOOP_CLASSPATH 环境变量。
例如:export HADOOP_CLASSPATH=/opt/cloudera/parcels/FLINK/lib/flink/lib
(3)如果启动flink报错:[21/Jan/2020 16:40:09 +0000] 27087 MainThread redactor
ERROR Redaction rules file doesn't exist, not redacting logs. file: redaction-rules.json,
directory: /run/cloudera-scm-agent/process/2657-flink_on_yarn-FLINK_YARN
cd /opt/cloudera/parcels/FLINK/lib/flink/lib
wget https://repo.maven.apache.org/maven2/org/apache/flink/flink-shaded-hadoop-2-uber/2.6.5-9.0/flink-shaded-hadoop-2-uber-2.6.5-9.0.jar
export HADOOP_CLASSPATH=/opt/cloudera/parcels/FLINK/lib/flink/lib