网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
我们长久以来一直使用Spark作为离线和近实时计算框架,几乎承担了主要业务中所有的计算任务。最近Flink逐渐兴起,我们通过查阅资料和参加Meetup,了解到Flink在实时计算方面确实比Spark有优势。我们正准备涉足实时业务,实时数仓、实时推荐这些东西总是要有的,快速上手Flink势在必行。
Flink的官方文档比较详尽,并且设计理念与Spark多有相通,理解成本较低。Flink有多种集群部署方式(Local/Standalone/YARN/K8s/Mesos等等),考虑到已经有现成的YARN和ZooKeeper集群,所以直接配置Flink on YARN。
下图示出Flink on YARN的基本原理,可见与Spark on YARN非常相似。
首先设定Hadoop路径的环境变量,Flink需要用它来获取HDFS、YARN的配置信息。
~ vim /etc/profile
export HADOOP_CONF_DIR=/opt/cloudera/parcels/CDH/lib/hadoop/etc/hadoop
然后编辑flink-conf.yaml,其中包含了Flink的基础配置。
- 资源参数
# JobManager堆内存
jobmanager.heap.mb: 1024
# TaskManager堆内存
taskmanager.heap.mb: 2048
# 每个TaskManager上task slot数目
taskmanager.numberOfTaskSlots: 4
# 默认并行度
parallelism.default: 12
以上四项只是给出默认配置,实际执行作业时都可以用对应的命令行参数(-jm、-tm、-s、-p)修改。
- 高可用配置
# 开启基于ZK的高可用
high-availability: zookeeper
# ZK集群(即所谓Quorum)地址
high-availability.zookeeper.quorum: ha1:2181,ha2:2181,ha3:2181
# Flink在ZK存储中的根节点
high-availability.zookeeper.path.root: /flink
# JobManager元数据的持久化位置,必须是可靠存储
high-availability.storageDir: hdfs://mycluster/flink/ha/
# 程序启动时的最大尝试次数
# 应当与YARN ApplicationMaster的最大尝试次数(yarn.resourcemanager.am.max-attempts)相同
yarn.application-attempts: 4
注意YARN ApplicationMaster的最大尝试次数(yarn.resourcemanager.am.max-attempts)默认值仅为2,使得作业容错率很低,因此预先把它修改为4,或者更大些。
- StateBackend默认配置
# StateBackend类型
# 可选jobmanager(JM本身)/filesystem(外部文件系统)/rocksdb(自带的RocksDB数据库)
state.backend: filesystem
# 检查点目录
state.checkpoints.dir: hdfs://mycluster/flink-checkpoints
# 保存点目录(比检查点更重量级,一般手动操作,用于重启恢复)
state.savepoints.dir: hdfs://mycluster/flink-savepoints
![img](https://img-blog.csdnimg.cn/img_convert/6dc9716b1f15536e6ec4e6b8668f587e.png)
![img](https://img-blog.csdnimg.cn/img_convert/281d3e83fc7e4cf6157f5f27a635c445.png)
**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**
**[需要这份系统化资料的朋友,可以戳这里获取](https://bbs.csdn.net/topics/618545628)**
**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**
**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**