【Flink完全分布式环境搭建及应用,Standalone(开发测试)一】

本文涉及的产品
实时计算 Flink 版,5000CU*H 3个月
简介: 【Flink完全分布式环境搭建及应用,Standalone(开发测试)一】

一、架构图

在这里插入图片描述

  1. client客户端提交任务给 JobManager
  2. JobManager 负责Flink集群计算资源管理, 并分发任务给TaskManager执行
  3. TaskManager定期向JobManager汇报状态
  4. Flink的TM就是运行在不同节点上JVM进程(process), 这个进程会拥有一定量的资源. 比如内存、CPU、网络、磁盘等. flink将进程的内存进行了划分到多个slot中.

上图中有两个 TaskManager, 每个 TaskManager有2个 slot的, 每个slot占有1/2的内存.

二、 集群规划

服务器 角色
node1 Master, slave
node2 slave
node3 slave

三、 集群搭建

1. 修改安装目录下conf文件夹内的flink-conf.yaml配置文件,指定JobManager

cd /export/server/flink/conf
vim flink-conf.yaml
# jobManager 的IP地址
jobmanager.rpc.address: node1
# JobManager 的端口号
jobmanager.rpc.port: 6123
# JobManager的总进程内存大小
jobmanager.memory.process.size: 1024m
# TaskManager的总进程内存大小
taskmanager.memory.process.size: 1024m
# 每个 TaskManager 提供的任务 slots 数量大小
taskmanager.numberOfTaskSlots: 2
#是否进行预分配内存,默认不进行预分配,这样在我们不使用flink集群时候不会占用集群资源
taskmanager.memory.preallocate: false
# 程序默认并行计算的个数
parallelism.default: 1
#JobManager的Web界面的端口(默认:8081)
rest.port: 8081

小结

 taskmanager.numberOfTaskSlots:2
 每一个taskmanager中的分配2个TaskSlot,3个taskmanager一共有6个TaskSlot
 parallelism.default:1 运行程序默认的并行度为1,6个TaskSlot只用了1个,有5个空闲
 ==slot==是静态的概念,是指taskmanager具有的最大并发执行能力
 ==parallelism==是动态的概念,是指程序运行时实际使用的并发能力

2. 修改安装目录下conf文件夹内的workers配置文件,指定TaskManager

cd /export/server/flink/conf
vim workers
node1
node2
node3

3. 使用vi修改 /etc/profile 系统环境变量配置文件,添加HADOOP_CONF_DIR目录

vim /etc/profile
export HADOOP_CONF_DIR=/export/server/hadoop-3.3.0/etc/hadoop

注意: 必须验证 hadoop 路径是否正确

4. 分发/etc/profile到其他两个节点

scp -r /etc/profile node2:/etc
scp -r /etc/profile node3:/etc

5. 每个节点重新加载环境变量

source /etc/profile

6. 将配置好的Flink目录分发给其他的两台节点

scp -r flink-1.14.0/ node2:/export/server/
scp -r flink-1.14.0/ node3:/export/server/

在node2和node3上设置flink的快捷方式

ln -s /export/server/flink-1.14.0/ /export/server/flink
cd /export/server/ && ll | grep flink
相关实践学习
基于Hologres轻松玩转一站式实时仓库
本场景介绍如何利用阿里云MaxCompute、实时计算Flink和交互式分析服务Hologres开发离线、实时数据融合分析的数据大屏应用。
Linux入门到精通
本套课程是从入门开始的Linux学习课程,适合初学者阅读。由浅入深案例丰富,通俗易懂。主要涉及基础的系统操作以及工作中常用的各种服务软件的应用、部署和优化。即使是零基础的学员,只要能够坚持把所有章节都学完,也一定会受益匪浅。
目录
相关文章
|
12天前
|
Kubernetes 安全 云计算
分布式应用的终极革命:Distributionless,告别分布式烦恼!
【8月更文挑战第8天】探讨分布式应用的进化形态——Distributionless,一种使开发者聚焦业务逻辑而非系统细节的理念。借助容器化、云计算与自动化工具的进步,分布式应用的开发与管理变得简易。透过示例展现了使用Bazel构建及Kubernetes部署的流程,预示着Distributionless模式下的应用将更加高效、可靠与安全,引领未来分布式应用的发展趋势。
33 7
|
18天前
|
敏捷开发 安全 jenkins
自动化测试在敏捷开发中的应用:加速迭代,保障质量
【8月更文挑战第2天】自动化测试在敏捷开发中扮演着至关重要的角色。通过提升测试效率、提高测试覆盖率、及时反馈与修复等优势,自动化测试为敏捷开发团队提供了强大的支持。然而,在实施自动化测试的过程中也面临着一些挑战。通过选择合适的测试框架和工具、制定测试计划和策略、持续优化和维护等策略以及遵循最佳实践并克服挑战,我们可以充分发挥自动化测试在敏捷开发中的潜力,为软件质量的提升和快速迭代保驾护航。
|
16天前
|
监控 Java 测试技术
🔥Python性能测试大揭秘!JMeter与Locust如何让你的应用跑出新速度🚀
【8月更文挑战第4天】在软件开发中,性能测试确保应用稳定高效。JMeter与Locust是两大性能测试利器。JMeter源自Apache,基于Java,支持多协议测试,提供丰富测试场景与直观结果展示。Locust专为Python打造,采用Python脚本定义测试场景,支持分布式测试与实时监控。选择时考虑应用语言与团队技能。正确的测试策略结合合适工具,助您的应用性能更上一层楼。🚀
29 1
|
26天前
|
测试技术 持续交付 开发者
探索自动化测试在持续集成中的应用及其对软件开发生命周期的影响
本文将深入探讨自动化测试在现代软件开发中的核心地位,特别是其如何与持续集成(CI)流程紧密结合,以提升软件交付的速度和质量。文章首先概述了自动化测试的基本概念和类型,随后分析了自动化测试在持续集成环境中的关键作用,包括提高测试效率、确保代码质量、促进团队协作等方面。最后,通过具体案例分析,展示了自动化测试实施的策略和挑战,以及它如何优化软件开发生命周期。本文旨在为软件测试工程师和开发团队提供实践指南,帮助他们更好地理解和应用自动化测试技术。
30 10
|
22天前
|
敏捷开发 运维 测试技术
探索自动化测试在持续集成中的应用与挑战
【7月更文挑战第29天】本文旨在深入分析自动化测试在软件开发的持续集成(CI)环境中的关键作用,以及实施过程中可能遇到的技术与非技术障碍。通过探讨自动化测试工具的选择、测试策略的制定以及测试结果的评估,文章揭示了如何克服这些挑战,以提升软件质量和交付速度。
20 1
|
1天前
|
存储 分布式计算 Hadoop
分布式计算框架在大规模数据处理中的应用
【8月更文第18天】随着大数据时代的到来,对海量数据进行有效的存储、处理和分析变得越来越重要。传统的单机系统已经无法满足PB级别数据集的需求。分布式计算框架,如Apache Hadoop和Apache Spark,成为了处理这些大规模数据集的重要工具。
9 0
|
8天前
|
存储 测试技术 API
apifox实例应用-自动化测试用例for循环的使用
总结来说,通过在Apifox自动化测试用例中结合for循环的使用,我们可以有效地对接口进行批量测试,提升测试效率和覆盖率。同时,通过参数化测试数据的灵活应用,能够确保我们的接口在不同的输入条件下都能保持正确的行为。这种方法能够显著减少手动测试工作量,同时通过标准化的流程确保测试的一致性。
17 0
|
17天前
|
Java 测试技术 API
深入理解单元测试:JUnit框架在Java中的应用
【8月更文挑战第3天】本文将引导读者通过JUnit框架的镜头,探索单元测试的奥秘。我们将一起揭开单元测试的神秘面纱,了解其在软件开发中的关键作用,并具体学习如何在Java项目中应用JUnit进行有效的单元测试。文章不仅会涉及理论概念,还将通过具体的代码示例,展示如何编写和运行单元测试,以确保软件质量。让我们开始吧,一起踏上这段提升代码质量和开发效率的旅程。
14 0
|
22天前
|
敏捷开发 测试技术
探索式测试在敏捷开发中的应用与挑战
本文旨在深入探讨探索式测试(Exploratory Testing)在现代敏捷软件开发环境中的实际应用及其面临的挑战。通过分析探索式测试的核心优势与实施难点,结合真实案例,揭示其在提高软件质量和促进团队协作方面的潜力和限制。文章将提供对敏捷测试实践者有价值的见解,并引发读者对于如何优化测试流程和提升测试效率的进一步思考。
|
29天前
|
NoSQL 开发工具 数据库
开发与运维测试问题之应用启动报 Can not load this fake sdk class 的异常如何解决
开发与运维测试问题之应用启动报 Can not load this fake sdk class 的异常如何解决

热门文章

最新文章