开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第3天 juejin.cn/post/716729…
Flink集群安装部署
Flink支持多种安装部署方式
- Standalone
- ON YARN
- Mesos、Kubernetes、AWS...
这些安装方式我们主要讲一下standalone和on yarn。
如果是一个独立环境的话,可能会用到standalone集群模式。
在生产环境下一般还是用on yarn 这种模式比较多,因为这样可以综合利用集群资源。和我们之前讲的spark on yarn是一样的效果
这个时候我们的Hadoop集群上面既可以运行MapReduce任务,Spark任务,还可以运行Flink任务,一举三得。
standalone
下面我们来看一下standalone模式
它的架构是这样的
分布式环境配置
依赖环境
jdk1.8及以上【配置JAVA_HOME环境变量】
ssh免密码登录
在这我们使用bigdata01、02、03这三台机器,这几台机器的基础环境都是ok的,可以直接使用。
集群规划如下:
master:bigdata01
slave:bigdata02、bigdata03
接下来我们需要先去下载Flink的安装包。
由于目前Flink各个版本之间差异比较大,属于快速迭代阶段,所以在这我们就使用最新版本了,使用Flink1.11.1版本。
安装包下载好以后上传到bigdata01的/data/soft目录中
1:解压
tar -zxvf flink-1.11.1-bin-scala_2.12.tgz
2:修改配置
vi flink-conf.yaml
配置内容:jobmanager.rpc.address: bigdata01
vi masters
配置内容:bigdata01:8081
vi workers
配置内容:
bigdata02 bigdata03
3:拷贝到其他节点
scp -rq flink-1.11.1 bigdata02:/data/soft/
scp -rq flink-1.11.1 bigdata03:/data/soft/
4:启动Flink集群
bin/start-cluster.sh
5:JPS验证进程
6:访问Web UI
http://bigdata01:8081
7:停止集群,在主节点上执行停止集群脚本
bin/stop-cluster.sh
集群核心参数
| 参数 | 解释 |
|---|---|
| jobmanager.memory.process.size | 主节点可用内存大小 |
| taskmanager.memory.process.size | 从节点可用内存大小 |
| taskmanager.numberOfTaskSlots | 从节点可以启动的进程数量,建议设置为从节可用的cpu数量 |
| parallelism.default | Flink任务的默认并行度 |
参数解释
1:slot是静态的概念,是指taskmanager具有的并发执行能力
2:parallelism是动态的概念,是指程序运行时实际使用的并发能力
3:设置合适的parallelism能提高程序计算效率,太多了和太少了都不好
Flink ON Yarn
Flink ON YARN模式就是直接像Hadoop集群提交任务的模式,不需要单独启动Flink进程。
- Flink ON YARN 模式依赖Hadoop 2.4.1及以上版本
- Flink ON YARN支持两种使用方式
两种使用方式
第一种
- 在集群中初始化一个长时间运行的Flink集群 使用yarn-session.sh脚本
- 使用flink run命令向Flink集群中提交任务
- 注意:使用flink on yarn需要确保hadoop集群已经启动成功
1.在/etc/profile 中配置 HADOOP_CLASSPATH
export HADOOP_CLASSPATH=`${HADOOP_HOME}/bin/hadoop classpath`
2.yarn-session.sh在Yarn中创建一个长时间运行的FLink集群
bin/yarn-session.sh -jm 1024m -tm 1024m -d
3.-jm 是指定主节点的内存, -tm 是指定从节点的内存, -d 是表示把这个进 程放到后台去执行
4.去yarn web界面查看flink集群信息,可以点击进入flink web ui
案例:提交内置案例
bin/flink run ./examples/batch/WordCount.jar
注意:这个时候我们使用flink run的时候,它会默认找这个文件,然后根据这个文件找到刚才我 们创建的那个永久的Flink集群,这个文件里面保存的就是刚才启动的那个Flink集群在YARN中对应的applicationid。
重新打开 即可看到一个task
这个任务在执行的时候,会动态申请一些资源执行任务,任务执行完毕之后,对应的资源 会自动释放掉
最后停止这个Flink集群
yarn application -kill your appication_ID
第二种方式
flink run -m yarn-cluster (创建Flink集群+提交任务)
使用flink run直接创建一个临时的Flink集群,并且提交任务
此时这里面的参数前面加上了一个y参数
Flink ON YARN的好处
1:提高大数据集群机器的利用率
2:一套集群,可以执行MR任务,Spark任务,Flink任务等
提交任务
1.pom.xml中打包
需要将Flink和Hadoop的相关依赖的score属性设置为provided,这些依赖不需要打进jar包
2.生成jar包: mvn clean package -DskipTests
3.将jar包上传到bigdata04 机器
4.提交flink任务
配置historyserver
vi conf/flink-conf.yaml
配置内容
jobmanager.archive.fs.dir: hdfs://bigdata01:9000/completed-jobs/
historyserver.web.address: ip
historyserver.web.port: 8082
historyserver.archive.fs.dir: hdfs://bigdata01:9000/completed-jobs/ historyserver.archive.fs.refresh-interval: 10000
启动
bin/mapred --daemon start historyserver