赞
踩
standalone模式可以快速搭建起flink集群,但是生产环境中不会用。
将flink-1.10.0-bin-scala_2.11.tgz
传输到虚拟机中。
下载地址:https://archive.apache.org/dist/flink/flink-1.10.0/
环境要求:
# 解压缩
[root@ha1 hdk]# tar -zxvf flink-1.10.0-bin-scala_2.11.tgz
[root@ha1 hdk]# mv flink-1.10 flink
# 配置环境变量
[root@ha1 hdk]# vi /etc/profile
export FLINK_HOME=/opt/hdk/flink
PATH=$FLINK_HOME/bin:$PATH
# 修改配置文件 主机名前必须有空格,否则从节点找不到主节点
[root@ha1 hdk]# vi flink/conf/flink-conf.yaml
jobmanager.rpc.address: ha1
[root@ha1 hdk]# vi flink/conf/slaves
ha2
ha3
# 节点同步
[root@ha1 hdk]# scp -r flink/ root@ha2:$PWD
[root@ha1 hdk]# scp -r flink/ root@ha3:$PWD
# 启动
[root@ha1 hdk]# flink/bin/start-cluster.sh
[root@ha1 flink]# bin/flink run examples/batch/WordCount.jar
1.Flink Standalone HA本质是JobManager进程的HA
2.在Flink分布式集群中其中了多个JobManger,其中一台节点上的JobManger的状态是Active,其余是standby。
# 修改配置文件
[root@ha1 hdk]# vi flink/conf/flink-conf.yaml
high-availability: zookeeper
high-availability.zookeeper.quorum: ha1:2181,ha2:2181,ha3:2181
high-availability.zookeeper.storageDir: hdfs:///flink/ha
[root@ha1 hdk]# vi flink/conf/master
ha1:8081
ha2:8081
[root@ha1 hdk]# vi flink/conf/zoo.cfg
ha1:2888:3888
ha2:2888:3888
ha3:2888:3888
Flink提供两种在Yarn上运行的模式,分别是Session-Cluster模式(内存集中管理)和Per-Job-Cluster模式(内存JOB管理)。
前提环境:
ZooKeePer
Hadoop
flink-shaded-hadoop-2-uber-10.0.jar拷贝进flink下的lib目录中。
Session-Cluster模式需要先启动集群,然后再提交作业,接着向Yarn申请一块空间后,资源永远保持不变,如果资源满了,下一个作业就无法提交。只能等到Yarn中的其中一个作业执行完成后,释放了资源,下个作业才会正常提交。所有作业共享Dispatcher和ResourceManager;共享资源;适合规模小执行时间短的作业。
在yarn中初始化一个Flink集群,开辟指定的资源,以后提交任务都想这里提交。这个Flink集群会常驻Yarn集群中。
启动hadoop集群后,创建yarn-session。
# 命令格式
./yarn-session.sh -n 2 -s 2 -jm 1024 -tm 1024 -nm test -d
-n(container):TaskManager的数量,现在的版本没啥效果了
-s(--slots):每个TaskManager的slot数量,默认一个slot一个core,默认每个taskmanager的slot的个数为1,有时可以多一些taskmanager,做冗余。
-jm:JobManager的内存(单位MB)
-tm:每个taskmanager的内存(单位MB)
-nm:yarn是appName
-d:后台执行
# 取消yarn-session
yarn application --kill appName
运行到最后,flink集群会在yarn中创建,可以通过yarn公布的地址访问flink集群。
yarn上的作业。
flink地址。
jps进程。
一个Job对应一个集群,每提交一个作业会根据自身的情况,单独向Yarn申请资源,直至作业执行完成,一个作业的失败与否不会影响下一个作业的正常提交和运行。独享Dispatcher和ResourceManager,按需接受资源申请;适合规模大长时间运行的作业。
每次提交都会创建一个新的Flink集群,任务之间互相独立,互不影响,方便管理。任务执行完成之后创建的集群也会消失。
启动hadoop集群后,不创建yarn-session。
# 执行job
[root@ha1 flink]# bin/flink run -m yarn-cluster examples/batch/WordCount.jar
之后创建的集群也会消失。
启动hadoop集群后,不创建yarn-session。
# 执行job
[root@ha1 flink]# bin/flink run -m yarn-cluster examples/batch/WordCount.jar
赞
踩
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。