1、standalone cluster部署

flink的集群也是主从架构。主是jobManager,,从事taskManager。
图片

规划:

ip服务描述192.168.216.111jobManager、taskManager192.168.216.112taskManager192.168.216.113taskManager

1、下载

2、解压
[root@hadoop01 local]# tar -zxvf /home/flink-1.9.1-bin-scala_2.11.tgz -C /usr/local/
[root@hadoop01 local]# cd ./flink-1.9.1/

3、配置环境变量
export FLINK_HOME=/usr/local/flink-1.9.1/export
PATH=$PATH:$JAVA_HOME/bin:$ZK_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$KAFKA_HOME/bin:$FLINK_HOME/bin:

4、刷新环境变量
[root@hadoop01 flink-1.9.1]# source /etc/profile
[root@hadoop01 flink-1.9.1]# which flink

5、集群配置

配置三个配置文件
-rw-r--r--. 1 yarn games 10327 Jul 18 2019 flink-conf.yaml
-rw-r--r--. 1 yarn games 15 Jul 15 2019 masters-rw
-r--r--. 1 yarn games 10 Jul 15 2019 slaves

配置flink-conf.yaml:

修改几个地方:

jobmanager.rpc.address: hadoop01
rest.port: 8081
rest.address: hadoop01

配置masters:
hadoop01:8081

配置slaves:
hadoop01
hadoop02
hadoop03

6、分发到别的服务器
[root@hadoop01 flink-1.9.1]# scp -r ../flink-1.9.1/ hadoop02:/usr/local/
[root@hadoop01 flink-1.9.1]# scp -r ../flink-1.9.1/ hadoop03:/usr/local/并配置好其他服务器的环境变量。。。。。。

7、启动集群
[root@hadoop01 flink-1.9.1]# start-cluster.sh

[root@hadoop01 flink-1.9.1]# jps2080 ResourceManager1684 NameNode5383 StandaloneSessionClusterEntrypoint1803 DataNode2187 NodeManager5853 TaskManagerRunner访问web:http://hadoop01:8081/#/overview
图片

图片

8、运行作业
[root@hadoop01 flink-1.9.1]# flink run ./examples/batch/WordCount.jar
--input /home/words --output /home/1907/out/02Starting execution of programProgram execution finishedJob with JobID dd30661b01cc6f663fe22dab7d7ef542 has finished.Job Runtime: 6432 ms

查看结果:
[root@hadoop01 flink-1.9.1]# cat /home/1907/out/02

生产中:

1、jobmamager配置到单独服务器即可,,,本身使用不了多少内存。

2、taskmamager配置多台服务器,内存充足,能够满足业务即可。

2、standalone cluster HA部署基于standalone cluster集群升级部署。

1、修改配置:

flink-conf.yamlhigh-availability: zookeeperhigh-availability.zookeeper.quorum: hadoop01:2181,hadoop02:2181,hadoop03:2181high-availability.zookeeper.path.root: /flinkhigh-availability.cluster-id: /cluster_flinkhigh-availability.storageDir: hdfs://hadoop01:9000/flink/recovery

2、修改配置:

mastershadoop01:8081hadoop02:8081

3、启动集群

启动顺序:先启动zk和hdfs、再启动flink。

拷贝hdfs的依赖包:[root@hadoop01 ~]# cp /home/flink-shaded-hadoop-2-uber-2.7.5-10.0.jar /usr/local/flink-1.9.1/lib/[root@hadoop01 ~]# scp /home/flink-shaded-hadoop-2-uber-2.7.5-10.0.jar hadoop02:/usr/local/flink-1.9.1/lib/[root@hadoop01 ~]# scp /home/flink-shaded-hadoop-2-uber-2.7.5-10.0.jar hadoop03:/usr/local/flink-1.9.1/lib/启动集群:[root@hadoop01 ~]# start-cluster.sh

4、测试提交作业:
图片

[root@hadoop01 ~]# flink run /usr/local/flink-1.9.1/examples/batch/WordCount.jar --input /home/words --output /home/out/fl00

结果:

[root@hadoop01 ~]# cat /home/out/fl001813 4gp1813 3hello 2hi 1

5、并测试HA的切换:

通过log查看leader还是standby

状态:hadoop01的日志

图片

由上可以看出hadoop01是leader。也就是active状态。hadoop02的日志

图片

hadoop02的日志没有leadership标识,也就是为standby状态。手动杀死hadoop01激活状态的jobmanager:

[root@hadoop01 ~]# jps3840 TaskManagerRunner2454 NodeManager1959 NameNode3385 StandaloneSessionClusterEntrypoint1802 QuorumPeerMain4026 Jps2092 DataNode2350 ResourceManager
[root@hadoop01 ~]# kill -9 3385 ##或者使用jobmanager.sh stop再次查看hadoop02的log:
图片
显示hadoop02为leader状态。测试是否能跑作业:
图片
结果查看:
图片

6、重启hadoop01的jobmanager:

[root@hadoop01 flink-1.9.1]# jobmanager.sh startStarting standalonesession daemon on host hadoop01.[root@hadoop01 flink-1.9.1]# jps3840 TaskManagerRunner5408 StandaloneSessionClusterEntrypoint查看hadoop01的日志状态:
图片

没有那个授权leader信息,代表就是一个standby状态咯。HA的正常切换功能就可以咯。到此为之,我们的local模式、standalone cluster和standalone cluster HA部署完成。


编程世界
7 声望1 粉丝

和大家一起分享java、web前端、Python、大数据等方面技术知识,探讨IT编程技术相关问题!