Flink高可用集群搭建

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Flink高可用集群搭建相关的知识,希望对你有一定的参考价值。

参考技术A 备注:为了防止发生权限错误

Flink默认包含两种配置方式:log4j以及logback

不配置的情况下运行flink集群或者运行flink job会提示建议移除其中一种。

直接移除或者重命名都可行。

例如:mv logback.xml logback.xml_bak

浏览器中访问node1:8081

[1] 第一种方式:yarn-session.sh(开辟资源)+flink run(提交任务)

启动一个一直运行的flink集群

请注意:

<p style="color:red">
请注意:client必须要设置YARN_CONF_DIR或者HADOOP_CONF_DIR环境变量,通过这个环境变量来读取YARN和HDFS的配置信息,否则启动会失败。
经实验发现,其实如果配置的有HADOOP_HOME环境变量的话也是可以的(只是会出现警告)。HADOOP_HOME ,YARN_CONF_DIR,HADOOP_CONF_DIR 只要配置的有任何一个即可。
</p>

运行结果如图:

浏览器中访问 http://node4:45559

yarn web-ui中

<p style="color:red">
部署长期运行的flink on yarn实例后,在flink web上看到的TaskManager以及Slots都为0。只有在提交任务的时候,才会依据分配资源给对应的任务执行。</p>

提交Job到长期运行的flink on yarn实例上:

通过web ui可以看到已经运行完成的任务:

[2] 第二种方式:flink run -m yarn-cluster(开辟资源+提交任务)

yarn web ui上查看刚刚提交的任务已经执行成功

hadoop、hbase、hive、spark、kafaka、flink的开发环境集群搭建已经成功完成。里面或许有不足之处,或有理解不到位的地方,欢迎指正。以下系列将由基础到进阶,记录这些组件的实际使用。

哪里可以找到flink集群部署的详细步骤

当 Flink 集群启动后,首先会启动一个 JobManger 和一个或多个的 TaskManager。由 Client 提交任务给 JobManager, JobManager 再调度任务到各个 TaskManager 去执行,然后 TaskManager 将心跳和统计信息汇报给 JobManager。 TaskManager 之间以流的形式进行数据的传输。上述三者均为独立的 JVM 进程。

Client 为提交 Job 的客户端,可以是运行在任何机器上(与 JobManager 环境连通即可)。提交 Job 后,Client 可以结束进程 (Streaming的任务),也可以不结束并等待结果返回。

JobManager 主要负责调度 Job 并协调 Task 做 checkpoint(分布式快照)。从 Client 处接收到 Job 和 JAR 包 等资源后,会生成优化后的执行计划,并以 Task 的单元调度到各个 TaskManager 去执行。

TaskManager 在启动的时候就设置好了槽位数(Slot),每个 slot 能启动一个 Task,Task 为线程。从 JobManager 处接收需要 部署的 Task,部署启动后,与自己的上游建立 Netty 连接,接收数据并处理。
参考技术A 2.解压
上传至五个节点的相同目录,执行如下命令解压:

tar xzf flink-1.3.1-bin-hadoop26-scala_2.11.tgz

3.配置master节点
选择一个 master节点(JobManager)然后在conf/flink-conf.yaml中设置jobmanager.rpc.address 配置项为该节点的IP 或者主机名。确保所有节点有有一样的jobmanager.rpc.address 配置。
4.配置slaves
将所有的 worker 节点 (TaskManager)的IP 或者主机名(一行一个)填入conf/slaves 文件中。
5.启动flink集群

bin/start-cluster.sh

6.注意本回答被提问者采纳

以上是关于Flink高可用集群搭建的主要内容,如果未能解决你的问题,请参考以下文章

Linux集群:搭建高可用集群

搭建高可用mongodb集群——配置mongodb

搭建高可用web和数据库集群

Windows 2012 系统搭建高可用故障转移集群

六nginx 搭建高可用集群

kubeadm搭建高可用K8s集群