flink可以做为批处理,也可以流处理的工具。功能根spark差不多,不过据说比spark强大。据说天猫双11,就用的这玩意。
一,创建flink parcel
1,下载flink parcel
- # git clone https://github.com/pkeropen/flink-parcel.git
2,配置flink-parcel.properties
- # vim flink-parcel/flink-parcel.properties
- #FLINK 下载地址
- FLINK_URL=https://mirrors.tuna.tsinghua.edu.cn/apache/flink/flink-1.9.1/flink-1.9.1-bin-scala_2.12.tgz
- #flink版本号
- FLINK_VERSION=1.9.1
- #扩展版本号
- EXTENS_VERSION=BIN-SCALA_2.12
- #操作系统版本,以centos为例
- OS_VERSION=7
- #CDH 小版本
- CDH_MIN_FULL=5.2
- CDH_MAX_FULL=6.3.2
- #CDH大版本
- CDH_MIN=5
- CDH_MAX=6
3,生成parcel,csd文件
- # ./flink-parcel//build.sh parcel
- # ./flink-parcel//build.sh csd_on_yarn
- [root@bigserver1 flink-parcel]# ll
- 总用量 240636
- -rwxr-xr-x 1 root root 5863 1月 21 09:59 build.sh
- drwxr-xr-x 6 root root 142 1月 21 10:09 cm_ext
- drwxr-xr-x 4 root root 29 1月 21 10:16 FLINK-1.9.1-BIN-SCALA_2.12
- drwxr-xr-x 2 root root 121 1月 21 14:55 FLINK-1.9.1-BIN-SCALA_2.12_build //parcel文件目录,新生成的
- -rw-r--r-- 1 root root 246364329 9月 30 15:20 flink-1.9.1-bin-scala_2.12.tgz
- drwxr-xr-x 5 root root 53 1月 21 10:44 flink_csd_build
- drwxr-xr-x 5 root root 53 1月 21 09:59 flink-csd-on-yarn-src
- drwxr-xr-x 5 root root 53 1月 21 09:59 flink-csd-standalone-src
- -rw-r--r-- 1 root root 8259 1月 21 10:44 FLINK_ON_YARN-1.9.1.jar //csd文件,新生成的
- -rw-r--r-- 1 root root 347 1月 21 10:34 flink-parcel.properties
- drwxr-xr-x 3 root root 85 1月 21 09:59 flink-parcel-src
- -rw-r--r-- 1 root root 11357 1月 21 09:59 LICENSE
- -rw-r--r-- 1 root root 4334 1月 21 09:59 README.md
在这里,我并没有使用Cloudera Data Flow,因为是收费,60天的试用期。在网上看了一下,很多文章讲的是Cloudera Data Flow。但是没有下载地址。现在提供出来。
https://archive.cloudera.com/csa/1.0.0.0/csd/FLINK-1.9.0-csa1.0.0.0-cdh6.3.0.jar
https://archive.cloudera.com/csa/1.0.0.0/parcels/FLINK-1.9.0-csa1.0.0.0-cdh6.3.0-el7.parcel
https://archive.cloudera.com/csa/1.0.0.0/parcels/FLINK-1.9.0-csa1.0.0.0-cdh6.3.0-el7.parcel.sha
https://archive.cloudera.com/csa/1.0.0.0/parcels/manifest.json
二,cdh6整合flink
1,配置nginx
- # yum install nginx
- # vim /etc/nginx/conf.d/cloudera.conf //nginx配置
- server
- {
- listen 80;
- server_name bigserver1;
- root /var/www/html;
- autoindex on;
- autoindex_exact_size off;
- autoindex_localtime on;
- charset utf-8;
- }
- # systemctl restart nginx //重启nginx
- # cp -r FLINK-1.9.1-BIN-SCALA_2.12_build /var/www/html/flink1.9
2,cloudera manager 配置flink parcel
flink parcel 配置
flink parcel 地址
3,csd文件到相应目录
- # cp FLINK_ON_YARN-1.9.1.jar /var/www/html/flink1.9/
- # cp FLINK_ON_YARN-1.9.1.jar /opt/cloudera/csd/
- # systemctl restart cloudera-scm-server //一定要重启
FLINK_ON_YARN-1.9.1.jar copy到二个地方,一个cloudera-scm-server所在机器的/opt/cloudera/csd/,这个是必须的。还有一个nginx所在机器的,根parcel文件所在的目录相同。
4,激活flink
flink 激活
一定要重启,重启完了后,检查新parcel,flink才会出现,然后下载,分配,激活。
5,添加flink服务
cdh 添加 flink 服务
cdh 添加 flink 服务
6,自定义角色
flink 自定义角色
7,审核更改
flink 审核更改
在这里要注意:
security.kerberos.login.keytab
security.kerberos.login.principal
这二个值,要置为空,上图中没有截出来。
8,下载flink-shaded-hadoop
- # /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-7.0/flink-shaded-hadoop-2-uber-2.6.5-7.0.jar
- # scp flink-shaded-hadoop-2-uber-2.6.5-7.0.jar bigserver2:/opt/cloudera/parcels/FLINK/lib/flink/lib
- # scp flink-shaded-hadoop-2-uber-2.6.5-7.0.jar bigserver3:/opt/cloudera/parcels/FLINK/lib/flink/lib
- # scp flink-shaded-hadoop-2-uber-2.6.5-7.0.jar bigserver4:/opt/cloudera/parcels/FLINK/lib/flink/lib
- # scp flink-shaded-hadoop-2-uber-2.6.5-7.0.jar bigserver5:/opt/cloudera/parcels/FLINK/lib/flink/lib
- # export HADOOP_CLASSPATH=/opt/cloudera/parcels/FLINK/lib/flink/lib
如果不做这步操作,flink启动不起来,strerr.log会报以下错。
[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
9,启动成功
flink 启动成功
- # ./flink run -m yarn-cluster -yn 1 -yjm 1024 -ytm 1024 /opt/cloudera/parcels/FLINK/lib/flink/examples/streaming/WordCount.jar --input hdfs://bigdata1/test/word --output hdfs://bigdata1/test/word_res
flink 任务列表
任务列表已有,到些整合完成