gitweixin
  • 首页
  • 小程序代码
    • 资讯读书
    • 工具类
    • O2O
    • 地图定位
    • 社交
    • 行业软件
    • 电商类
    • 互联网类
    • 企业类
    • UI控件
  • 大数据开发
    • Hadoop
    • Spark
    • Hbase
    • Elasticsearch
    • Kafka
    • Flink
    • 数据仓库
    • 数据挖掘
    • flume
    • Kafka
    • Hive
    • shardingsphere
    • solr
  • 开发博客
    • Android
    • php
    • python
    • 运维
    • 技术架构
    • 数据库
  • 程序员网赚
  • bug清单
  • 量化投资
  • 在线查询工具
    • 去行号
    • 在线时间戳转换工具
    • 免费图片批量修改尺寸在线工具
    • SVG转JPG在线工具

月度归档5月 2023

精品微信小程序开发门户,代码全部亲测可用

  • 首页   /  2023   /  
  • 5月
  • ( 页面3 )
云计算 5月 15,2023

大数据趋势推动的 IT 运营新职业

大流行迫使许多组织重新考虑其 IT 运营。企业领导者已经意识到,要实现弹性和业务连续性,他们需要加快数字化转型,从而增加对 IT 和其他新兴技术的依赖。这些技术中的关键是云和大数据工具。

因此,IT 运营领域的新职业正在兴起。这些职业包括致力于帮助公司采用云计算和大数据技术的角色。随着越来越多的组织将重点放在此处,企业拥有在未来几年蓬勃发展所需的技术和工具将变得至关重要。

IT 运营或 IT Ops 是指由组织的 IT 部门执行和管理的一组服务和流程。总体术语通常包括所有 IT 资源的利用和管理,例如硬件(计算机、笔记本电脑、网络设备等)、软件(软件许可证、应用程序、在线服务等)和人员(IT 经理、技术人员、数据科学家等)。

IT 运营人员承担多种角色,从内部 IT 流程(如技术管理、质量保证、网络管理、设备管理和基础设施管理)到外部和面向客户的运营(如为其 IT 产品和服务提供支持和专业知识)。

企业技术的现代化一直是 IT 运营的主要关注点,尤其是当他们的组织面临落后于竞争对手的风险时。 IT Ops 还为其他部门提供指导,特别是传达获取当前和新兴技术以取代旧技术的需求。

就 IT 运营职业而言,最重要的趋势可能是向云的巨大转变。大多数公司已将其关键业务运营和应用程序迁移到云端。 IBM 最近的一项研究表明,95% 的 IT 领导者计划采用多种云战略,以加速其 IT 现代化计划。

这些公司需要大数据堆栈来保持其 IT 基础设施和流程平稳运行,并充分发挥效益以产生可观的回报。随着其对企业的作用和影响呈指数级放大,IT 运营正在经历前所未有的繁荣。

随着该领域变得越来越复杂和细分,IT 运营领域的新职业正在涌现。 IT等相关技术的进步催生了DevOps(开发运营)、DataOps(数据运营)、MLOps(机器学习运营)等多种运营模式。

IT Ops 的现有定义已经变得广泛和过时,因为各个部门现在都有自己的 IT 流程和规则。现代业务的快速发展、不断变化和不断进步的技术以及加快对独特业务需求的反应时间的明显需求需要新的和独立的运营方法。

虽然按定义和目的分开,但这些方法或运营模型仍然通过 IT 相互连接。例如,DevOps 将 IT Ops 与软件应用程序开发 (R&D) 和质量保证 (QA) 的最佳实践和方法相结合。

云计算使企业能够根据需要为 IT 服务付费。大规模云迁移已将 IT 支出从资本支出 (CapEx) 转移到运营支出 (OpEx)。随着企业迁移到云端,他们抛弃了数据中心、物理服务器和其他昂贵的网络设施和设备,转而采用灵活且可扩展的云托管基础架构。

然而,从管理良好的资本支出模型转变为极其流畅的运营支出支出模型存在挑战。一方面,云环境在很大程度上是分布式和分散的。这使得财务团队很难始终保持监督。如果没有可靠的治理和监控,企业很容易对其云支出管理不善并积累不可持续的成本。企业必须想出一个可持续的云支出模型来帮助管理支出并确保成功和安全的过渡。 IT Ops 可以在正确过渡方面发挥重要作用。

随着企业努力提高 IT 支出的透明度,准确的退款将成为未来的常态。组织将实施可持续支出模型,其中包括一个记录系统,该系统允许根据用户消费对 IT 服务进行精细成本核算。通过跟踪用户的资源和服务消耗,IT 部门可以为其他业务部门提供准确和透明的云账单。

IT 运营团队对于准确了解计费框架至关重要。

业务格局发生了变化,IT 需求也发生了变化。

也许最大的变化是 IT 不再单独负责生产和开发。其他运营模式已经出现。他们的职责和职能现在与传统 IT 团队重叠。特别是当业务部门正在创建自己的应用程序并更多地支持自己时。 IT Ops 现在几乎是任何处理数据的工作的一部分。

此外,机器学习 (ML) 和人工智能 (AI) 的日益普及和采用是 IT 世界的主要趋势。商业组织越来越依赖人工智能和机器学习来执行重复性任务。

到 2022 年,20% 的员工将使用 AI 来完成他们的工作。到2025年,人工智能将完成50%的数据科学家任务,有效解决专家严重短缺的问题。

这些巨大的变化为 IT Ops 的职业生涯提供了新的途径。 IT 专家现在享有多种机会来接受新的工作方式以及与其他部门的整合。 IT Ops 仍然可以通过拥抱新技术趋势前沿的新角色为组织增加价值。

数据和分析经理。顾名思义,数据和分析经理负责管理数据和分析卓越中心。该职位需要支持整个企业的数据和分析交付。他们还被要求为数据和分析的战略和愿景做出贡献,制定路线图,与高级利益相关者沟通,并承担资源和预算的责任。除了衡量团队绩效外,数据和分析经理还跟踪和监控数据和分析对其业务目标的影响。

数据工程师。数据工程师的任务是寻找数据集中的趋势和机会。他们构建算法来简化对原始数据的访问。他们还寻找从符合企业或客户目标的原始数据中获取价值的方法。

数据工程师的另一个职责是优化数据检索并为利益相关者提供理解数据的方法,例如仪表板、报告和其他可视化。

较大的企业通常在其花名册中拥有多名数据科学家或分析师,以帮助解释和交流数据。但是在这个小企业现在可以访问数据的新环境中,数据工程师可以同时扮演这两个角色。

数据分析师。数据分析师是那些在统计分析方面拥有丰富经验和知识的人,他们能够找到有助于支持其业务特定方面的见解。通常,他们是领域专家,或者与领域专家密切合作,利用他们发现的见解寻找改进业务流程和功能的方法。

数据架构师。这些是数据远见者,他们根据组织的战略和目标获取业务需求并将其转化为技术需求。他们还负责为其组织的数据管理框架创建数据标准和原则。

数据架构师充分了解各种数据和分析场景如何影响其整体 IT 架构。他们经常与企业架构师合作,为他们的数据和分析架构及其支持平台制定战略。

首席信息管理员。执行由信息治理单元制定的信息治理策略是首席信息管理员的主要职责。他们确保所有信息治理政策得到实施和遵守。实际上,他们根据这些策略监控信息人员和资产。

除了数据和分析的重要性和战略价值日益增加之外,IT 领域的巨大变化给企业及其 IT 和数据和分析领导者带来了新的挑战。

非技术业务用户正在颠覆传统的 IT 角色。 IT 在每个部门和整个企业中的日益普及和利用率催生了混合 IT 角色,其中许多角色融入了 IT Ops 的新一代职业。

作者 east
云计算 5月 15,2023

如何有效地对 Cloud FinOps 进行基准测试

由于 Cloud FinOps 能够帮助更有效地管理财务运营,因此在当今数字时代的组织中迅速流行起来。这是因为它允许组织以更高的可见性跟踪、衡量和优化他们的云支出。它还通过自动化众多财务流程(包括计费、预算、审计和报告)来帮助提高运营效率。

除了更好的可见性之外,FinOps 还能够通过提供对使用模式的洞察力来识别节省成本的机会,并进一步帮助组织保持对财务法规的遵守。 FinOps 正迅速成为任何希望在保持财务运营领先地位的同时最大化盈利能力的组织的必备工具。但是组织如何将这些实践的结果与过去的结果进行比较呢?

本博客将讨论您需要了解的有关 FinOps 的所有信息,以及如何在当今不断发展的数字环境中保持领先地位。

Autonomous FinOps(Cloud FinOps 的细分)是一种在云中进行成本优化和财务运营的现代方法。它利用自动化、分析和机器学习技术来优化资源利用率和控制云支出。这种方法允许团队确定优化领域、设置 SLA 并监控他们的进度以降低成本、提高效率和优化资源利用率。它还允许组织更好地了解云资源使用情况、预测未来支出并制定成本优化策略。

随着围绕 Cloud FinOps 开放的新部门区域,团队与 IT 组织合作,以确保云资源得到高效且经济的使用。这种方法可帮助组织最大限度地提高云投资回报,同时最大限度地降低风险和不必要的支出。专注于此的团队还可以帮助组织掌握最新的行业趋势,确定需要改进的领域并做出更好的云决策——这对任何基于云的组织来说都是宝贵的资产。

这种运营方法使组织能够实现其财务和运营目标,同时避免代价高昂的错误。它正迅速成为任何基于云的组织的关键组成部分,对于组织而言,了解 Cloud FinOps 并开发专门从事它的团队以最大化其云投资非常重要。

FinOps 是一种财务优化策略,可让企业减少支出并更好地管理预算。它通过主动支出优化帮助企业提高效率和降低成本。它还采用多种策略,使云用户能够准确跟踪支出、根据使用数据主动采取行动并预测未来成本。

Cloud FinOps 通过加强财务和工程团队之间的协作,帮助企业在云中最大限度地减少开支、最大限度地节省开支并制定预算优化计划。它还提供了对云使用趋势、成本和资源优化机会的可见性。这有助于云用户确定潜在的成本节约和减少超支。

Cloud FinOps 基准测试

FinOps.org 建议采用以下步骤进行有效的基准测试。

资源利用和效率。 FinOps 团队必须确保消耗的每一种资源都能转化为足够的商业价值。由此产生的性能和其他质量指标必须在经济上值得每一笔费用。

首先,FinOps 团队应该建立和定义他们的业务效率指标集。这些指标应该反映他们的业务并衡量资源的效率。

FinOps 团队必须能够将货币价值与可以通过合理调整低效或未充分利用的资源来避免的成本相对应。

衡量单位成本。团队制定能够展示每项云投资的商业价值的指标至关重要。专门的 FinOps 从业者求助于 Cloud Unit Economics,这是一种建立在客观衡量标准之上的利润最大化模型,可根据您的 FinOps 和业务目标评估您的组织绩效。常用单位包括:

基于承诺的折扣。云服务提供商提供服务折扣以吸引客户并签署消费承诺。著名的例子是 AWS Savings Plans 和 Google CUD。

重要的是要注意,每个云提供商都有不同的产品和关于如何提供折扣的独特规则。 FinOps 团队必须仔细研究每个计划,并确定这些折扣结构如何帮助他们实现运营和财务目标。

异常管理。异常是意外的云支出,与正常发生的成本不同。以云自动缩放器为例,许多 FinOps 团队发现他们的云成本飙升,因为这些自动缩放器提供资源的速度很慢。开发人员倾向于过度配置资源,以便他们的应用程序相应地执行,从而导致资源浪费和组织的云账单异常。将异常需求降至最低的 FinOps 团队是一个自主平台,可以根据利用率与分配情况实时安排资源——消除手动调整的错误并最终控制云成本。

Cloud FinOps 如何影响组织

Cloud FinOps 通过适当的监控、实时洞察力和精细报告来制定统一的支出决策。没有健全战略的企业缺乏推动明智、统一决策所需的洞察力。这通常会导致他们的云资源利用率低下,性能不佳且成本高昂。管理人员更好地了解他们的资源利用及其财务影响,从而使他们能够开发和实施简化的实践,以实现运营和财务目标。

这种现代运营方法可帮助公司转变为云优先文化。现在越来越多的组织正在转向云并投资于云资源。然而,只有少数人足够成熟,能够认识到这是一种文化转变。他们正在摆脱传统的流程​​和模型。 Cloud FinOps 使组织能够发现、阐明和实施获取和使用云资源的最佳方式。这创造了一种文化,在这种文化中,各方都可以从资源的优化和标准化利用中受益。

预测的准确性对于依赖云的组织也至关重要。对云利用率和支出了解最少的企业将难以控制其云消费。 Cloud FinOps 提供实施主动监控、放置和执行控制以及提供自动预算警报所需的数据和见解。企业将为其所有流程提供充足的云资源,同时消除供应不足和过度供应的风险。

使用容量优化器对 FinOps 性能进行基准测试

为了有效地对您的 Cloud FinOps 性能和支出进行基准测试,您将需要一个超越可观察性和表面指标的自主优化工具。 Pepperdata Capacity Optimizer 利用自动化和机器学习来分析大量实时性能和资源利用率数据,以重新捕获浪费的容量、优化集群资源、运行更多应用程序等。

对于寻求提升其 FinOps 方法的组织,Capacity Optimizer 使 FinOps 团队能够了解其云基础架构、流程、消耗和支出。这使他们能够衡量有价值的关键业务 KPI,并获得高度可行的见解,从而削减云成本并提高工作负载效率。

在 Capacity Optimizer 带来的成本控制和优化中,它可以显示企业基础架构内节省的快速差异。最重要的是,它可以帮助企业实现这些成本节约,同时满足 SLA 并实现其业务目标。

作者 east
Flink 5月 15,2023

flink cdc初始全量速度很慢原因和优化点

  • link cdc初始全量速度很慢的原因之一是,它需要先读取所有的数据,然后再写入到目标端,这样可以保证数据的一致性和顺序。但是这样也会导致数据的延迟和资源的浪费。
  • flink cdc初始全量速度很慢的原因之二是,它使用了Debezium作为捕获数据变化的引擎,而Debezium在读取数据时,会使用全局锁或者快照隔离级别,这样会影响源端数据库的性能和并发能力。
  • flink cdc初始全量速度很慢的优化点之一是,使用并行读取的方式,将源端数据库的表分成多个分区,然后使用多个任务同时读取不同的分区,这样可以提高读取速度和吞吐量。
  • flink cdc初始全量速度很慢的优化点之二是,使用增量检查点的方式,将读取到的数据在内存中进行增量备份,然后定期写入到目标端,这样可以减少写入次数和延迟,并且在故障恢复时,可以从检查点恢复数据,而不需要重新读取所有的数据。
  • flink cdc初始全量速度很慢的优化点之三是,调整flink cdc和flink的相关参数和选项,如设置合理的并行度、任务槽、检查点间隔、缓冲区大小、网络超时等,以适应不同的场景和需求。
作者 east
Spark 5月 14,2023

来自 Spark 老手的 3 个 Spark 性能调优最佳实践

大数据世界中的许多人已经熟悉 Spark。但是新手可能会疑惑:什么是Spark?即使您是用户,互联网上也有很多 Spark 性能调优技巧。你如何从谷壳中挑选出小麦?

Spark 是一种开源分布式处理框架,旨在以比 Hadoop 更快的速度运行大数据工作负载,而且资源更少。 Spark 利用内存缓存和优化的查询执行对任何大小的数据执行快速查询。

在当今的大数据世界中,Spark 技术是一个核心工具。但是,它非常复杂,如果没有适当优化,可能会出现一系列问题。如果没有正确的 Spark 性能调优方法,您将面临许多 Spark 性能问题的风险,包括超支和次优性能。

Spark 性能调优是快速及时地更改 Spark 配置以确保优化所有流程和资源并顺利运行的过程。此 Spark 优化过程使用户能够实现 SLA 级别的 Spark 性能,同时缓解资源瓶颈并防止性能问题。

什么是 Spark Schema 调优?

以下是 Spark 性能调优的常用方法:

数据序列化。这个过程是指将对象转换为字节流,而相反的过程称为反序列化。序列化导致对象在网络节点上的最佳传输或在文件/内存缓冲区中的轻松存储。它通过以序列化格式存储 Spark RDD(弹性分布式数据集)来帮助减少内存使用。数据序列化有助于确保高效的资源利用和作业在精确的执行引擎上运行。数据序列化确保运行时间长的作业被终止。

内存调整。默认情况下,Java 对象的访问速度非常快。然而,他们可以轻松地使用比字段中“原始”数据多 2-5 倍的空间。通过内存调整,用户可以确定和优化对象的内存使用情况,从而提高性能。

数据结构调整。通过避免使用可能导致开销的 Java 功能,帮助减少内存消耗。

垃圾收集调整。就程序存储的 RDD 而言,垃圾收集在具有大量“搅动”的数据结构中代价高昂。通过使用具有较少对象的数据结构,垃圾收集成本大大降低。

内存管理。 Spark 利用内存进行数据存储和执行。有效的内存管理确保 Storage Memory 和 Execution Memory 和谐共存并共享彼此的可用空间。

Spark 监控工具还可以提高任何 Spark 性能调整工作的有效性。这些解决方案为用户提供了对其 Spark 应用程序的可见性、查看有价值的 Spark 指标,并通过强大的可视化跟踪应用程序执行情况。

持续和自动化的 Spark 监控使用户能够始终掌握其资源利用率。这确保他们有足够的资源以最佳方式运行他们的 Spark 实例。用户可以及时了解 Spark 核心和应用程序,使他们能够更好地理解配置并对其进行必要的更改。

我们联系了我们自己的 Spark 优化专家,现场工程师 Alex Pierce,以深入研究 Spark 技术并了解如何充分发挥 Spark 框架的作用。 Alex 最近举办了一场关于如何优化 Spark 作业并成功执行 Spark 性能调优的网络研讨会。

Alex 列出了他认为每个 Spark 用户都必须了解和实施的最佳实践的三种 Spark 优化技术。这些都是:

继续阅读我们直接从我们自己的 Spark 老手那里探索每个 Spark 性能调优技巧。

琪亚娜:大家好。我是 Pepperdata 的主持人 Kiana,我将采访 Pepperdata 现场工程师 Alex Pierce,他领导了我们最近的网络研讨会“Spark 性能管理最佳实践”。如果您还没有机会观看有关 Spark 性能调优和优化的网络研讨会,它会在本次采访所在的页面上提供链接。所以,请随时去看看。现在,让我们直接进入问题。

Kiana:在网络研讨会期间,我们对如何通过加盐优化 Spark 作业这一主题产生了浓厚的兴趣。您提到了分区大小和数据倾斜等加盐修复。您能否详细说明加盐的工作原理以及人们如何使用它来更好地管理他们的 Spark 性能?

亚历克斯:当然。当您查看要尝试执行的操作时,让我们专门查看本例中的连接,因为这是 Spark SQL 中非常常见的用例。但这是您处理具有特定维度的数据集的任何时候。假设您正在处理一年中的几个月、一周中的几天或类似的维度。这是一个非常小的键空间。一周只有7天,一年只有12个月。假设您是一家企业,或者绝大多数记录发生在星期六的公司。

因此,当我们处理数据时,假设我们正在处理一个月的数据并且我们正在对这些数据进行连接,那么在数据集和星期六的维度表将比其他任务运行更长的时间。这在 Spark 性能问题中很常见。那么加盐是做什么的——它有点像重新分区而实际上不需要重新分区你的数据。所以基本上,我们所做的就是把我们要加入的键,比方说,我们的左表,我们要让它分布得更均匀。

我们这样做的方法是附加,我应该说的最简单的方法是附加一个介于 0 和 N 之间的随机数。您可以根据环境的大小、数据集的大小、您的规模来确定需要看看,Ns应该有多大。然后我们需要在连接的另一端做同样的事情。所以现在我们需要获取维度表,我的意思是,抱歉,我们需要获取数据集表以及那些 ID 之前确实存在的地方,我们需要在该 ID 上运行相同的东西。设置为将相同的 0-N 值随机附加到这些键。

现在,这并不意味着 N 不需要匹配。如果一方的数字与另一方不匹配,那肯定有问题。但在这一点上,我们现在可以使用这些加盐键进行连接,假设在我们的工作日案例中,我们现在有 47 个键,而不是七个键。所以我们现在已经将其分布在一个更大的空间中。

这意味着,是时候真正进行连接了,而不是让一个特定的执行器来完成 80%-90% 的工作,因为数据集倾斜会得到更好的分布。现在你需要用你的数据集测试什么大小的盐最适合你,你需要记住如果你碰巧使用广播表,你的盐会增加它的大小维度表。

因此,如果您使用的是广播表,则需要密切注意自己的记忆,以确保不会炸毁执行者,而您只需要进行调整即可。这可能需要一些实验;你最了解你的数据集,所以你知道你的偏差有多大,并且你通常可以在 Pepperdata 等工具中将其可视化,以准确了解要添加多大的盐空间。但通常情况下,您会看到性能显着提高,尤其是在并行化方面。

因此,如果您处于分布式环境中,而之前您的环境中可能有 1000 台主机,但由于执行程序的密钥空间有限,您只使用了 7 台主机,现在您可以在 47 或 50 台主机上运行它。突然之间,有了通过这种 Spark 调优技术,您可以更好地使用环境的资源,您不会成为瓶颈,可能会在其他节点之一上长时间出现 CPU 瓶颈。这只是处理基于有限键空间的数据的好方法。

现在,至于它的实际代码。那里有大量的例子,甚至只是看看 DataZone 或 Stack Overflow 之类的东西。您应该能够非常简单地找到有关如何在 Spark 中的表上加盐的示例。

Kiana:是的,谢谢你的回答。那很棒。因此,您还提到,在多租户环境中,最好的 Spark 优化技术之一就是成为一名优秀的租户。这到底是什么意思?你有什么建议人们可能还没有想到吗?

亚历克斯:当然。所以这个很有趣。其中一部分是了解您所处环境的规模,一部分是了解您启动地点的提示限制,但想法是:Spark 是贪婪的。假设你正在做一些事情,即使是非常简单的事情,比如 Spark 自带的 SparkPi 示例,你要求十万个切片。现在,Spark 要征集十万个执行者。如果它得到 40,它会运行得很好,但它会一直询问,直到它得到它能得到的一切。

因此,要成为一名好租户,您可以做的一件事就是为您的要求设置一个最大值。比方说,我想运行十万个切片。我想使用 Spark 动态分配,但不要要求超过 100 个执行程序——我们知道这将为我们提供所需的性能,但会为其他用户留出可用资源,同时允许我们满足任何类型的 SLA。这是一个非常简单的例子,说明租赁如何成为一种有效的 Spark 性能调优实践。

亚历克斯:另一个需要考虑的 Spark 调优技巧是你如何调整大小。因此,如果您的数据集可以进一步细分,这再次取决于您对自己数据集的了解,那么这可能对环境更有利,而不是要求少数 90 或 100 位执行者——那听起来确实很荒谬,但我们确实看到了这一点——要求 10 到 20 个零工执行者,并进一步分解你的数据集。

这可能对你有好处,因为你更有可能在系统上获得这些执行者,而且它肯定会对尝试使用同一系统的其他人有好处。因为如果你设法在一个节点上启动一百个演出执行器,那通常是一个节点空间的 50% 以上,有时甚至可能是一个节点空间的 70%。所以第一,你将不得不等待那个空间释放出来,第二,一旦你在那里,没有其他人在那里承受工作量。因此,如果您可以分解数据集以尝试确定适合环境的大小并允许其他人同时工作,那总是更好。

这是另一个可能有点困难,但仍然不太难做的事情。我的意思是,如果您正在处理二进制 blob 数据集,并且它们只以特定大小出现,那么您无能为力。几乎所有其他方面都可以改进。有时甚至像我们的最后一个问题一样,加盐,因为也许你有一个执行者正在耗尽所有这些内存,因为那是所有数据所在的地方。

您没有解决 SKU 问题,而是一直在增加内存直到它运行。所以这是解决这个问题的一个好方法。核心方面也是一样。 CPU 的处理能力有限,如果您的代码是多线程的,有时您会使用比您要求的内核更多的内核。因此,请牢记可用的资源以及其他人正在使用的资源,并确保您做出明智的决定,这些决定既能帮助您适应那些资源受限的环境,又能让其他人在您使用时继续使用它们.

Kiana:好吧,Alex,谢谢你抽出时间来。很高兴能更深入地研究您常用的 Spark 性能调优技巧以及您在网络研讨会中谈到的一些主题。

再一次,对于我们的读者,如果您想观看完整的网络研讨会,Spark 绩效管理的最佳实践,它在本次采访所在的页面上有链接。此外,请查看有关 Spark 优化的视频,以获得更直观、更深入的演示。

如果不在对话中包括 Kubernetes,就很难讨论 Spark。许多用户在 Kubernetes 上运行 Spark,后者提供自动化和无缝的应用程序部署、管理和扩展。由于 Kubernetes 是一个开源框架,用户喜欢在 Kubernetes 上部署 Spark 并从其自动化和易于管理中受益,而无需增加成本。

也就是说,未优化的 Spark-Kubernetes 配置可能导致资源分配和利用不佳。当用户在 Kubernetes 上部署 Spark 而没有完成任何 Spark 性能调整时,这可能会导致性能不佳和成本失控。

对于开发人员来说,优化 Spark 和 Kubernetes 以最大限度地发挥这两种工具的优势、提高性能并实现所需的输出,同时保持成本可控,这一点至关重要。

作者 east
Kafka 5月 14,2023

Kafka有什么用?以及注意事项

如果您刚刚开始使用 Apache Kafka,您就会知道有很多东西需要学习和注意。卡夫卡有什么用?我如何充分利用它?这些可能只是您脑海中闪过的几个问题,而尝试在线搜索答案可能会让人不知所措。我们已经为您完成了研究,并将答案放在这里以便于访问。继续阅读以了解它的用途以及使用 Kafka 时应注意的事项。

Apache Kafka 是由 LinkedIn 创建的开源流处理软件平台,目前由 Apache Software Foundation 开发。应用程序开发人员、IT 专业人员和数据管理员只是使用 Kafka 的一部分人。

据 Apache 软件基金会称,超过 80% 的财富 100 强公司都在使用这项技术。以下是一些快速统计数据,可以直观地了解有多少 Kafka 用户:10/10 的制造公司、7/10 的银行、10/10 的保险公司和 8/10 的电信公司使用该技术。

阿帕奇卡夫卡文档

Kafka 用于快速摄取、移动和消耗大量数据。它允许创建易于扩展的实时、高吞吐量、低延迟数据流。由于这些原因,该平台在大数据领域可靠、快速且广为人知。

在用例方面,Kafka 可用于网站活动跟踪,提供操作跟踪数据、日志聚合、流处理、事件溯源,作为消息代理的替代品,以及作为分布式系统的外部提交日志。

举一个具体的例子,纽约时报曾一度使用 Kafka 来存储他们发表的每一篇文章。除此之外,他们还使用 Kafka 和 Streams API 将实时发布的内容提供给读者访问其内容所依赖的各种应用程序和系统。

在与我们的客户合作时,我们发现 Kafka 的成功始于确保您的平台得到优化。由于平台内有如此多的潜力,因此确保您能充分利用它是关键。这里有 4 个最佳实践——我们将在另一篇文章中深入探讨——我们建议在优化 Kafka 时:

1.升级到最新版本。

使用过时版本的 Kafka 会导致重新平衡运行时间过长以及重新平衡算法失败。确保您使用的是最新版本的 Kafka 可以防止这些平衡问题并确保您充分利用该框架。

2. 了解如何提高数据吞吐率。

Kafka 具有控制数据如何在堆栈中移动的设置。了解和调整这些设置是提高数据吞吐率和充分利用 Kafka 架构的第一步。

3. 在编写主题时坚持随机分区,除非体系结构要求另有要求。

Kafka 支持随机写入。在调整 Kafka 时,您可能会想要指定数据写入的位置。但是,在大多数情况下,随机写入会产生更好的性能。

4. 调整消费者套接字缓冲区以实现高速摄取,同时保持数据完整性。

要调整消费者套接字缓冲区,能力更强的网络可以支持更大的缓冲区大小。例如,10Gbps 网络可能需要高达 16MB 的套接字缓冲区。

作者 east
doris, Flink 5月 14,2023

要对接mysql数据到doris,对比一下用flink cdc和datax对接数据性能和简易性

用flink cdc和datax对接mysql数据到doris的性能和简易性有以下几点对比:

  • flink cdc可以实现实时的数据同步,而datax只能实现批量的数据同步,因此flink cdc在性能上有优势,可以满足低延迟的需求。
  • flink cdc可以利用flink的容错机制和检查点机制,保证数据的一致性和精确一次语义,而datax没有这样的机制,可能会出现数据丢失或重复的情况。
  • flink cdc可以利用flink的流批一体能力,对接doris和其他数据源,进行联合分析和处理,而datax只能单纯地进行数据传输,没有分析和处理的能力。
  • flink cdc需要使用flink sql或者flink api编写作业,并配置好相关的参数和选项,而datax只需要编写json格式的配置文件,并运行相应的命令,因此datax在简易性上有优势,更适合不熟悉flink的用户。
  • flink cdc需要部署和运行一个flink集群,并监控和维护作业的状态,而datax可以直接在本地或者服务器上运行,不需要额外的资源和管理,因此datax在成本上有优势,更适合小规模或临时的数据同步任务。

综上所述,flink cdc和datax都有各自的优缺点,具体选择哪种方案要根据你的具体需求和场景来决定。

作者 east
Spark 5月 12,2023

全球软件公司提高 Spark 性能并减少浪费

我们的一位客户是专门从事设计和制造软件解决方案的软件开发商。这家软件公司为工程、建筑、制造、娱乐等主要行业的一些最大组织提供服务。我们客户推出的每个新软件和更新都必须满足严格的 SLA 要求。

为确保其产品按照 SLA 的规定运行,该软件公司利用 Apache Spark 来处理和分析大量大数据并收集可操作的见解。这些见解反过来又为软件开发人员提供了有价值的信息,使他们能够快速识别和解决性能问题并推出更好的产品。

但是,该公司缺乏 Spark 方面的专业知识。最重要的是,他们没有一个全面的可观察性工具来衡量 Spark 的性能,也没有帮助他们识别和解决 Spark 带来的复杂问题。结果,软件供应商没有从其 Spark 投资中获得最大价值。直到 Pepperdata 出现并改变了公司与 Spark 的合作方式。

虽然 Spark 使这家软件公司能够分析大量大数据并获得有关绩效、客户旅程、销售等方面的可行见解,但他们未优化的 Spark 性能让他们付出了很多代价。

使情况变得更加复杂的是软件公司没有内部 Spark 专业知识。由于没有足够的 Spark 框架知识和经验,软件公司被迫做出他们认为最合乎逻辑的选择:投入更多计算资源。

虽然这样的方法让他们可以运行更多的 Spark 作业,但 Spark 性能本身并没有得到优化。他们也没有可观察性工具来查看他们的 Spark 应用程序和工作流。这导致了更多的资源和计算能力浪费。随着公司的扩张,这个问题变得更加严重。更多的客户意味着更多的 Spark 工作。随后计算消耗的增加很快耗尽了他们的大部分大数据预算。

该组织与 Spark 的斗争并不是新闻。严重依赖 Spark 处理大数据工作负载的企业也会遇到同样的困难,尤其是资源利用率低和大数据预算超支。

成本是运行像 Spark 这样的大数据架构的主要问题之一。在我们最近的 2021 年大数据云调查中,64% 的公司表示,他们在使用大数据技术和应用程序时一直在与“成本管理和控制”作斗争。

虽然大多数云提供商提供自动缩放功能以帮助企业在流量激增期间满足计算资源需求,但默认的自动缩放配置是基于峰值级别的要求。这意味着许多大数据进程和工作负载都在未经优化的情况下运行。难怪许多企业的支出比最初的大数据云预算高出 40%。

许多企业最终过度配置了计算资源。虽然这种方法可确保他们在高峰时段拥有足够的资源,但当流量低于预期时,未使用的资源就会被浪费。在大数据和云计算的世界里,未利用的资源意味着损失金钱。

这家软件公司的大数据专家承认使用最理想的配置来调整 Spark 是多么困难。但他们知道他们需要一个强大的优化解决方案来扭转局面,使 Spark 成为高效、经济的大数据引擎。

到 2020 年,他们的数据处理需求比上一年增加了 10 倍。他们需要找到一种优化和可观察性工具来控制支出并最大限度地利用计算资源。

否则,使用添加更多资源的相同方法会导致成本过高,同时还会遭受性能滞后和停机的困扰。

软件组织知道他们需要对 Spark 和整体大数据基础架构进行观察,以发现问题、提高 Spark 性能并降低 Spark 成本。

在部署他们的 Spark 可观察性工具后不久,软件开发人员就能够从他们的 Spark 框架中获得强大且可操作的见解。

作者 east
Spark 5月 12,2023

Spark Tuning 帮助您优化资源(上)

正如我们 2022 年的调查显示,Apache Spark 有望继续成为大数据最主要的大规模大数据处理平台。因此,如果 Spark 用户想充分利用他们的 Spark 环境,他们就必须学习和掌握 Spark 调优。

但是在 Spark 中调优是什么?它是如何完成的?继续阅读以了解有关 Spark 调优的更多信息。

Spark 性能调优是调整 Spark 环境配置的过程,以确保所有进程和资源都得到优化并顺利运行。为确保最佳性能并避免代价高昂的资源瓶颈,Spark 调优涉及对内存分配、核心利用率和实例配置的仔细校准。此过程可最大限度地提高系统的效率和有效性,以确保每次都能获得最佳结果。

我们已经看到许多大数据工作负载在 Spark 上运行,可以肯定的是,在可预见的未来,更多的应用程序和进程将迁移到 Spark 框架。

大多数企业都在运行 Spark,主要是在 Kubernetes 框架上。使用 Kubernetes 运行 Spark 为 Spark 应用程序提供了一个优势——支持按需自动部署,而不是利用持续运行设置的资源密集型模型。这也使您的应用程序能够轻松跨服务提供商并简化管理流程。使用 Spark-Kubernetes 配置可以提高 Spark 资源的利用率,同时降低云成本。

即使将 Spark 与 Kubernetes 一起运行具有广为人知的优势,包括更好的性能和更低的成本,但如果一切都未优化,尤其是 Spark,它可能会很快失败。我们想花一些时间更深入地探讨一个主题:通过 Spark 调优进行 Spark 优化的 Spark 优化。

Spark 开发人员在处理大量数据时需要担心很多事情:如何有效地获取数据源、执行 ETL(提取、转换、加载)操作以及大规模验证数据集。但是,当他们确保程序没有错误并在所有必要的环境中得到维护时,他们往往会忽略一些任务,例如调整 Spark 应用程序参数以获得最佳性能。

如果操作得当,调整 Spark 应用程序可以降低资源成本,同时维护关键流程的 SLA,这是本地和云环境都关心的问题。对于本地 Hadoop 环境,集群通常由多个应用程序(及其开发人员)共享。如果一个人的应用程序是资源大户,它会减慢每个人的应用程序,并冒着更高的任务失败率的风险。

随着 Spark 使用的增加,管理应用程序性能可能成为一项重大挑战。如果没有正确的方向,任何对 Spark 监控的尝试都可能很快被证明是徒劳的,而且在时间和资源上都会花费高昂的代价。这就是为什么那些缺乏关于转向哪些 Spark 指标进行优化指导的人一直在寻求专家帮助以了解这个复杂过程的原因。

大多数受访者非常关心其计算资源的资源优化,因为超过 33%(三分之一)的公司的支出超出其初始云预算的 20% 至 40%。简而言之,组织未能优化其 Spark 资源,导致超支。

在这篇博文中,我们将讨论两种 Apache Spark 优化技术:

在进入细节之前,让我们回顾一些 Spark 术语和定义:

Spark 应用程序分为多个阶段。阶段是物理执行计划中的一个步骤。它在需要随机播放(ShuffleMapStage)或阶段写入其结果并按预期终止(ResultStage)时结束。

每个阶段都分为并行执行的任务——每个分区一个任务。任务由执行者执行。

执行者是执行任务的工作者。资源(内存和 CPU 内核)在运行前由开发人员分配给执行程序。

分区是数据的逻辑块——具体来说,是弹性分布式数据集 (RDD) 的块——可以由开发人员在运行前配置。 RDD 中的分区数决定了一个阶段将执行的任务数。对于每个分区,一个任务(应用程序代码块)被提供给执行者执行。

图 1:Spark 中的数据分区

因为 Spark 应用程序可以包含许多不同类型的阶段,所以对一个阶段最佳的配置可能不适合另一个阶段。因此,Spark应用程序的Spark内存优化技术必须分阶段进行。

除了配置阶段之外,开发人员还可以控制应用程序中的任务数量(并行性)以及应用程序的执行程序大小。

使用 Spark 最大化并行性需要仔细考虑集群的核心数和分区数之间的差异。太少会导致性能低下,而太多会带来不当的间接成本。为确保并行性和效率之间的平衡,Spark 建议分区数大约是集群中核心数的三倍。

不直接的是如何选择分区的数量和执行器的大小。接下来我们将介绍它。

执行器和分区大小是开发人员通过 Spark 调优控制的两个最重要的因素。要了解它们之间的关系,我们首先需要了解 Spark 执行器如何使用内存。图 2 显示了 Spark 执行程序内存的不同区域。

图 2:Spark 执行器内存

我们可以看到有一个参数控制为执行和存储保留的执行程序内存部分:spark.memory.fraction。因此,如果我们想将 RDD 存储在内存中,我们需要我们的执行器足够大以处理存储和执行。否则,我们将面临出错的风险(在数据/计算中以及由于资源不足导致的任务失败)或应用程序运行时间过长。

另一方面,执行器的大小越大,我们可以在集群中同时运行的执行器就越少。也就是说,由于缺乏任务并行性,较大的执行程序大小经常会导致执行速度不佳。

还有为每个执行器选择 CPU 内核数量的问题,但选择是有限的。通常,1-4 个核心/执行程序的值将在实现完全写入吞吐量和不过度负担 HDFS 客户端管理并发线程的能力之间提供良好的平衡。

在处理分区和执行器时,最好的 Spark 内存优化技术之一是首先选择分区的数量,然后选择一个执行器大小来满足内存需求。

分区控制将在特定阶段的数据集上执行多少任务。在几乎没有摩擦(网络延迟、主机问题以及与任务调度和分配相关的开销)的最佳条件下,将分区数分配为集群中的可用核心数将是理想的。在这种情况下,所有任务将同时开始,同时全部完成,一步到位。

然而,真实环境并不是最佳的。在调优Spark时,我们必须考虑:

使用 Apache Spark 优化技术时,请记住这条经验法则:对于大型数据集——大于集群中单个主机上的可用内存——始终将分区数设置为集群中可用核心数的 2 或 3 倍.

但是,如果集群中的核心数量很少,而您有一个庞大的数据集,那么选择分区大小等于 Hadoop 块大小(默认情况下为 128 MB)的分区数量在以下方面具有一些优势输入/输出速度。

选择执行器大小

正如我们所讨论的,Spark 调优还涉及为您的执行程序提供足够的内存来处理存储和执行。因此,当您选择执行程序大小时,您应该考虑分区大小、整个数据集大小以及是否将数据缓存在内存中。

为了确保任务快速执行,我们需要避免磁盘溢出。当我们没有给执行者足够的内存时,就会发生磁盘溢出。这迫使 Spark 在运行时将一些任务“溢出”到磁盘。

在我们的实验中,我们发现执行程序大小的一个好的选择是不会导致磁盘溢出的最小大小。我们不想选择太大的值,因为我们会使用太少的执行器。找到避免磁盘溢出的正确大小需要进行一些试验。

图 3 显示了我们针对机器学习应用程序进行的一项实验的结果:

图 3:磁盘溢出和任务持续时间

我们多次运行同一个应用程序,只改变了执行程序的内存大小。我们将分区大小保持在 256 MB,执行程序核心数保持在 4。我们看到,在没有磁盘溢出的情况下,任务运行速度明显加快。将内存大小从 4 GB 增加一倍到 8 GB 消除了磁盘溢出,任务运行速度提高了两倍以上。但我们也可以看到,从 8 GB 到 10 GB 并没有影响任务持续时间。它并不总是如此明确,但根据我们的经验,选择不会导致磁盘溢出的最小内存大小通常是一个很好的 Spark 调优实践。

作者 east
大数据开发 5月 12,2023

包含系统边界和数据流向的技术方案模板

  • 什么是系统边界和数据流向

系统边界指的是一个系统所涉及的所有参与者和资源,包括硬件、软件、人员、数据等。在编写技术方案时,需要明确系统边界,以便确定系统的组成部分和相互之间的关系。

数据流向则是指数据在整个系统中的流动路径和方向。在编写技术方案时,需要明确数据流向,以便确定数据的来源、目的地和处理方式。

具体来说,在编写技术方案时,可以包括以下内容:

1、系统边界:明确系统的组成部分和参与者,包括硬件设备、软件平台、人员组成、数据源和数据接收方等。

2、数据流向:明确数据在整个系统中的流动路径和方向,包括数据的输入、处理、输出和存储等环节。

3、数据处理流程:描述数据在整个系统中的处理流程,包括数据的采集、清洗、转换、分析和展示等环节。

4、数据安全保障:描述如何保障数据的安全性和隐私性,包括数据加密、权限控制、审计跟踪等措施。

5、可扩展性和可维护性:描述如何保证系统的可扩展性和可维护性,包括分布式架构、自动化运维、代码管理等手段。

总之,系统边界和数据流向是技术方案中非常重要的内容,需要仔细考虑和规划,以确保系统的稳定性、可靠性和高效性。

  • 包含系统边界和数据流向的方案模板

(一)、系统边界

系统组成部分

本系统由前端应用、后端服务和数据库三部分组成。前端应用负责用户界面的展示和交互,后端服务提供业务逻辑处理和数据存储,数据库用于存储和管理数据。

参与者和资源

本系统的参与者包括管理员、开发人员、测试人员和最终用户。系统资源包括硬件设备(如服务器、网络设备)、软件平台(如操作系统、Web服务器、应用服务器)和人员组成(如开发团队、运维团队)。

数据源和数据接收方

本系统的数据源包括用户输入、外部数据接口和其他系统的数据共享。数据接收方包括后端服务、数据库和前端应用。

(二)、数据流向

数据采集

前端应用通过API接口获取用户输入的数据,并将数据发送到后端服务进行处理。后端服务从数据库中读取相关数据,并将处理结果返回给前端应用。

数据处理

后端服务对前端应用发送过来的数据进行处理,包括数据清洗、转换和计算等操作。处理结果保存在数据库中,以备后续使用。

数据输出

前端应用根据业务需求从数据库中读取相关数据,并将数据显示给用户。同时,前端应用可以将处理结果返回给后端服务,以便后端服务进行进一步的处理或更新数据库中的数据。

数据存储

后端服务将处理结果保存在数据库中,以备后续使用。数据库可以是关系型数据库(如MySQL、Oracle)或非关系型数据库(如MongoDB、Redis)。同时,为了保证数据的安全性和可靠性,需要采取相应的安全措施(如加密、权限控制等)。

(三)、技术方案

前端应用

前端应用采用React框架进行开发,使用Ant Design组件库进行UI设计。前端应用通过API接口与后端服务进行数据交互,并将处理结果展示给用户。同时,前端应用还采用了一些安全措施(如CSRF Token验证、XSS过滤等)来保障用户数据的安全性。

后端服务

后端服务采用Java语言和Spring Boot框架进行开发,使用MyBatis框架进行数据库操作。后端服务实现了用户注册、登录、数据查询、数据更新和数据删除等业务逻辑,并提供了RESTful API接口供前端应用调用。同时,后端服务还采用了一些安全措施(如加密、权限控制等)来保障数据的安全性和可靠性。

数据库

数据库采用MySQL关系型数据库进行存储和管理数据。数据库中包含用户表、数据表和其他关联表等,用于存储和管理系统中的各种数据。同时,为了保证数据的安全性和可靠性,还采取了相应的安全措施(如加密、权限控制等)。

安全措施

本系统采用了多种安全措施来保障数据的安全性和可靠性,包括:

(1)加密:对传输的数据进行加密处理,防止数据被窃取或篡改。

(2)权限控制:根据用户的角色和权限限制对数据的访问和操作。

(3)CSRF Token验证:在API接口中加入CSRF Token验证,防止恶意攻击。

(4)XSS过滤:在前端应用中加入XSS过滤,防止跨站脚本攻击。

(5)SQL注入防范:在数据库操作中加入SQL注入防范,防止恶意攻击。

四、总结

本系统采用了前后端分离的开发模式,通过API接口实现前端应用和后端服务之间的数据交互。同时,本系统采用了多种安全措施来保障数据的安全性和可靠性。

作者 east
云计算 5月 11,2023

大数据云性能管理:如何做对

大数据云性能管理是在云中取得成功的关键。与云计算相结合,大数据可以改变企业——尤其是在管理得当的情况下。它不需要资本支出,支持更快的数据处理和分析,并允许快速扩展。但是,没有计划在云中正确管理大数据性能可能是实现云承诺的 ROI 和不得不失败地返回数据中心之间的区别。继续阅读以了解更多关于为什么大数据性能管理如此重要、如何正确进行以及如何使用一种工具使这一切变得更容易的信息。

分解一下:大数据指的是大量数据,这些数据来得很快,很难用传统方法进行管理。云中的大数据本质上是在任何云上运行大数据——而不仅仅是在数据中心。您无需使用自己的硬件,而是拥有“云中”空间来运行您的大数据。

在云中运行大数据流程最突出的好处之一是按需服务。一个组织的计算需求在高峰时段、平静时刻和服务的随机峰值期间可能会有很大差异。虽然维持足够数量的计算资源以满足要求已成为常态,但事实证明这种做法的成本非常高。相反,如果一个组织试图通过只维持最少的资源来降低成本,很可能没有足够的资源来满足高峰需求。

借助大数据云模型,企业可以享受这种按需功能,他们可以根据普遍要求通过单击按钮、通过 API 或通过基于规则的框架配置自动扩展或缩减计算资源。用户可以根据需要配置或取消配置计算资源,而无需与云提供商交互。

将应用程序和流程迁移到云环境的主要优势之一是显着降低基础架构成本。运营大型本地数据中心每年会使组织损失 1000 万至 2500 万美元。很大一部分用于基础设施维护,包括维护、监控、安全和审计。
如果使用得当,利用云方法可以节省大量资金。这是因为基于云的流程和应用程序具有适应性、可扩展性和成本效益。随着大数据应用程序和任务被转移到云端,企业可以以非常快的速度创建、测试和部署产品和服务。在少数情况下,迁移到云的企业设法将节省的资金增加了十倍。

云计算有效地促进了当今企业从 CapEx(资本支出)支出模式向 Opex(运营支出)模式的转变。传统上,IT 基础设施的资本支出很大,主要来自购买和维护资本资产,例如建筑物、硬件和软件许可等。另一方面,Opex 是帮助公司生产和向客户提供产品和服务的经常性支出。这些包括公用事业、工资和计算资源。

迁移到云基础架构可帮助企业消除许多资本支出成本。通过切换到运营支出模型,组织可以创造大量内部机会,因为它释放了宝贵的资金和资源,否则这些资金和资源将用于获取、管理和维护资本资产。

到 2026 年,全球云计算市场有望从 2021 年的 4455 亿美元增长到令人印象深刻的 9473 亿美元。云服务供应商之间的激烈竞争凸显了这一增长。亚马逊、微软和谷歌等家喻户晓的名字在这个领域占据主导地位。

Amazon Web Services (AWS) 提供了大量的大数据云服务,包括 Amazon Elastic MapReduce(处理大量大数据)、Amazon DynamoDB(NoSQL 数据存储服务)和 Amazon S3(网络规模数据存储服务)。
Microsoft Azure 提供了一套大数据服务解决方案和工具。他们最受欢迎的产品包括 Azure Purview(统一数据治理)和 Azure Data Lake Storage(大型、可扩展且安全的数据湖)。

谷歌有大量的大数据云服务可以提供给他们的客户。他们的顶级解决方案包括 Google Big Query(用于大型数据集的快速 SQL 查询引擎)和 Google Prediction API(基于 ML 的大数据分析和学习)。

虽然我们了解将大数据迁移到云端的吸引力,但管理其性能的意义何在?好吧,在云中操作时有很多移动部分,并且有很多利益相关者参与这个过程:

这些只是利益相关者以及他们给方程式带来的复杂性。一旦添加了工具、APM 解决方案、遗留数据中心工具和自主开发的解决方案,它就会变得混乱。在云端,还有更多需要注意的地方。

那么,您如何理解一切并最终确保您的大数据以最佳方式运行呢?不是简单地收集更多数据。一个在提供可观察性和自动化的同时为您分析性能数据的工具就是解决方案。

没有良好的分析,数据是无用的。面对现实:您需要答案和解决方案,而不仅仅是更多数据。这就是提供可观察性和自动化的工具的用武之地。

可观察性让您了解事情发生的原因——而不是仅仅向您提供发生了什么。如果无法观察到您的集群,您就是在盲目飞行。解决应用程序问题需要更长的时间,由于缺乏洞察力而更有可能错过 SLA,并且几乎不可能调整工作负载的大小。因此,当您在寻找云性能管理解决方案时,请寻找能够提供可观察性的解决方案,而不仅仅是监控。在寻找可观察性解决方案时要问的关键问题是:

如果以上任何问题的答案是否定的,您将需要继续搜索。

从自动缩放到自主调优,自动化是优化大数据性能的最后一块拼图。手动调整今天不能削减它。即使是最有能力的团队也无法以所需的精度和速度手动调整每个应用程序和工作流,以跟上云中的规模。事实上,由于硬件资源、时间和精力的浪费,手动调整可能会降低您的投资回报率。

从云中的自动化中获益的另一个机会是自动缩放。虽然云因其可扩展性和灵活性而非常出色,但这可能是一把双刃剑,会导致毫无准备的人成本失控。为了解决这个问题,许多云提供商提供了减少浪费的自动缩放功能。然而,他们并不总能抓住一切。

常规自动缩放通常以较大的增量发生,但工作负载是动态的。他们可能需要更小的计算增量,或者需要比云提供商的自动缩放更快地扩展和缩减。这会导致可避免的浪费和额外成本。

下图清楚地显示了这一点。第一张图表显示了传统的自动缩放如何在整个运行时期间将集群增加到 100 个节点。但是,第二个图表显示了集群在运行时期间实际运行的内容。有时它只是一个任务,有时没有任务在运行。没有必要在整个持续时间内提供 100 个节点的自动缩放。

通过将可观察性与自动化相结合,您可以更好地跟上规模、缩短 MTTR 并提高投资回报率。自动警报会在问题发生时通知您,并且它们会提供可操作的见解,以便您可以快速解决问题。适当的自动缩放可以让您减少云中的浪费和失控的成本。自动计费机制使您能够更好地跟踪成本,自动调整确保部署的资源得到有效利用。这些都使您能够在不超出云预算的情况下跟上云中预期的规模。

当您在云端运行大数据并希望优化其性能时,可观察性和自动化是关键。如果不了解您的大数据性能,您基本上是盲目的。

Pepperdata 解决方案以自主调整、托管自动缩放​​等形式提供全栈可观察性和自动化,因此您可以确信您的大数据堆栈正在以最佳状态运行。

具有托管自动缩放​​功能的 Pepperdata Capacity Optimizer 提供云中所需的动态缩放大数据工作负载。与云服务提供商的自动缩放功能配合使用时,您可以进一步降低成本并获得高投资回报率。事实上,我们最近将 Capacity Optimizer 与 AWS Custom Auto Scaling 进行了基准测试,以了解我们提供了多少改进。我们发现,与 AWS Custom Auto Scaling Policy 搭配使用时,Capacity Optimizer 将云 CPU 利用率提高了 157%。

查看我们的白皮书可观察性和大规模持续调整,以了解有关可观察性和自动化如何影响大数据云性能管理的更多信息。

作者 east
Spark 5月 11,2023

在 Kubernetes 上开始使用 Spark 的快速指南

Apache Spark 与 Kubernetes?或两者?在过去的几年里,使用 Spark on Kubernetes (K8s) 的公司数量急剧增加。考虑到 K8s 带来的好处,这并不奇怪。根据我们最近的调查,77% 的企业正在采用 Kubernetes 技术来提高资源利用率并减少云费用。

在向云的广泛迁移的推动下,在 Kubernetes 上部署 Spark 的公司数量正在增长。然而,公司应该知道以这种方式在 Kubernetes 上运行 Spark 有其缺点。使用 Kubernetes 运行 Spark 的企业必须准备好应对此解决方案带来的挑战。最重要的是,他们需要对其基础架构具有可观察性,并轻松优化其性能的多个方面。

Spark 是一种开源分析引擎,旨在处理大量数据。它为用户提供了一个统一的接口,用于使用数据并行性和容错对整个集群进行编程。 Kubernetes 是一个开源容器编排平台,可自动执行计算机应用程序部署、扩展和管理。

将 Kubernetes 上的 Apache Spark 想象成这样:Spark 提供计算框架,而 Kubernetes 管理集群。 Kubernetes 为用户提供了一种用于管理多个集群的操作系统。因此,该技术提供了卓越的集群使用和分配灵活性,从而节省了大量成本。

没有 Spark 与 Kubernetes 的争论。我们建议企业在 Kubernetes 上部署 Spark,因为与在 YARN 上运行 Spark 相比,这是一种更符合逻辑和实用的方法。一方面,Spark K8s 环境没有 YARN 的限制。 YARN 的集群很复杂,消耗的计算资源比作业所需的多。此外,用户需要为 YARN 中的每个作业创建和拆除集群。这种设置不仅会浪费大量资源,转化为更多成本,还会导致任务管理效率低下。

另一方面,Kubernetes在大数据场景中爆发,几乎触及了包括Spark在内的所有企业技术。随着其日益流行和无处不在,以及其用户社区的迅速扩大,Kubernetes 将取代 YARN 成为世界主要的大数据处理引擎。

Spark 与 Kubernetes 的争论是否有道理?最近的趋势表明我们正朝着这个方向前进。

许多 Spark 用户指出了在 Kubernetes 上运行 Spark 作业比 YARN 有优势。首先,将 Spark 应用程序部署到组织现有的 Kubernetes 基础设施中并不困难。这导致跨多个软件交付团队的努力和目标快速无缝地对齐。

其次,最新的 Spark 版本 (3.2) 已经解决了 Kubernetes 之前的性能和可靠性问题。使用 Kubernetes 管理 Spark 作业可带来更好的性能和成本节约,超过 YARN 提供的功能。 Amazon 进行的多次测试表明,使用 Kubernetes 而非 YARN 可节省 5% 的时间。

在 K8s 上运行 Spark 的其他好处现在正在显现。但企业应该采用 Kubernetes 的最大原因是什么?企业和云供应商已经通过 CNCF(云原生计算基金会)表达了对该框架的支持。 Kubernetes 上的 Spark 简直就是大数据分析的未来。

是的。当您在 Kubernetes 上运行 Spark 时,Spark 会生成一个在 Kubernetes pod 内部运行的 Spark 驱动程序。然后驱动程序创建执行器,这些执行器在 Kubernetes pod 中运行,连接到它们,并实现应用程序代码。

一旦应用程序完成,执行器 pod 就会终止。然后这些被清理,但驱动程序 pod 继续记录并在 Kubernetes API 中保持“完成”状态。它一直保持这种状态,直到最终成为收集或手动清理的垃圾。

企业正在采用 Spark Kubernetes 设置来提高云资源的利用率。 Spark Kubernetes 动态分配资源有助于简化云流程并缩短部署时间。根据我们的调查,近 30% 的企业转向 Kubernetes 以实现高效的资源利用。最重要的是,超过 17% 的受访者表示他们采用了 Kubernetes Spark,旨在加快他们的应用程序部署周期。

软件工程师、开发人员和 IT 专家都喜欢 Spark,因为它能够以比 MapReduce 框架快 100 倍的速度实施和执行计算任务。

现在,如果他们使用 Spark Kubernetes 方法,由于容器化,迭代周期最多可加快 10 倍,五分钟的开发工作流程报告可缩短至 30 秒。 Spark Kubernetes 动态分配不仅导致处理量急剧增加,使用 Kubernetes 的容器化也不像硬件级虚拟化那样占用资源。

对于 Kubernetes Spark 项目来说,混合可用于数据处理和 Spark 作业编排的不同元素是很常见的。当用户将这些 Spark 组件作为类似 Kubernetes 集群中的工作负载运行时,这些组件可以包括各种后端和 Spark SQL 数据存储(仅举几例),从而获得更好的性能。这是因为 Kubernetes 确保每个工作负载都有足够的资源和与所有依赖项的连接,无论是在同一个集群中还是在集群外。

在大数据、云计算、按需付费的时代,每个企业都想降低成本。这就是为什么许多企业希望通过 K8s Spark 来实现高效的资源共享和利用。

在我们调查的 IT 领导者中,近 30% 正在考虑使用 Kubernetes 来帮助降低他们的云成本。在 K8s 上运行 Apache Spark 已被证明可以通过完全隔离和强大的资源共享帮助企业大幅降低云成本。
这种成本降低是如何发生的?用户可以将所有应用程序部署在一个 Kubernetes 集群中。当应用程序完成时,Kubernetes 可以快速拆除其容器并将资源快速重新分配给另一个应用程序,并根据 Spark 指标和其他性能基准优化 Spark Kubernetes 配置。整个过程只需要 10 秒钟就可以将资源转移到其他地方。

那么我们说的是节省多少呢?在一个案例中,一家公司在从 YARN 切换到 Kubernetes 模型上的 Spark 后削减了 65% 的云成本。

Kubernetes 对于统一的 IT 基础架构越来越重要,而 Spark 是第一个迁移到云端的大数据应用程序。然而,Spark 应用程序往往效率很低。

这些低效率表现在各种方面。我们向受访者询问了他们在流程中使用 Kubernetes Spark 设置时面临的主要挑战。以下是他们最大的三个绊脚石:

初始部署

一些 Spark 挑战阻碍了成功实施。我们的调查将初始部署列为受访者在 Kubernetes 上运行 Spark 时面临的最大挑战。技术很复杂。对于那些不熟悉 Kubernetes Spark 平台的人来说,框架、语言、工具等可能会让人望而生畏。

在 Kubernetes 基础设施上大规模运行 Spark 应用程序需要大量的技术专业知识。即使那些具有丰富 Kubernetes 知识的人也认识到在部署之前需要构建一些部分,例如集群、节点池、spark-operator、K8s 自动缩放器、docker 注册表等。

移民

迁移到 Kubernetes 可以让您的企业处于优势地位,就像迁移到云端或采用大数据一样。但这只有在您在迁移之前有一个健全而强大的策略时才有可能。迁移到 Kubernetes 可能很困难(或导致彻底失败)的众多原因之一是,领导者决定采用一项技术,但没有明确的理由进行如此大的迁移。

此外,许多企业在其组织内不具备必备技能。在 K8s 架构上切换到 Spark 需要相当多的人才才能使过渡顺利和成功。忽略或未能识别应用程序或基础架构的潜在问题,例如扩展或可靠性,可能会导致迁移挑战。

监控和警报

Kubernetes 是一项复杂的技术,监控可能很困难。当您将 Spark 与 Kubernetes 结合使用时更是如此。选择合适的工具来监控和评估您的 Kubernetes 实施增加了这种复杂性。根据我们的调查,28% 的受访者使用手动方法或自行开发的解决方案,而 27% 的受访者利用应用程序性能监控 (APM) 软件。

性能监控和优化已经超出了人类的能力范围。通用 APM 通常未设计或配置为处理 K8s 工作负载和其他大数据基础设施上的大型 Spark。有效而强大的 Kubernetes 和 Spark 监控现在需要全面而强大的工具,这些工具专为 Kubernetes 上的大数据工作负载而设计。

随着 Spark Kubernetes 设置的优势变得更加明显,整个 Spark 与 Kubernetes 的争论已经退居二线。在 Kubernetes 上运行 Spark 有效地实现了加速产品周期和持续运营。

数据科学和机器学习技术的扩展加速了容器化的采用。这一发展有效地推动了 Spark on Kubernetes 方法成为数据集群和建模生态系统的首选设置。 Spark on Kubernetes 为用户提供了抽象弹性 GPU 和 CPU 的能力,以及它的按需可扩展性。

作者 east
doris, Flink 5月 11,2023

同步 MySQL 数据到 Doris 的常用方案

  1. 使用Flink CDC

优点:

  • 实时同步,可支持增量同步和全量同步
  • 可以按需调整并发度和流水线等参数,可弹性伸缩
  • 高可靠性和灵活性,能够处理多种场景下的同步需求

缺点:

  • 实现和部署比较复杂,需要掌握 Flink 的相关知识
  • 对系统资源和性能要求较高,需要有一定的硬件配置
  • 需要进行一定的性能测试和优化,才能支持实际业务量

2.使用Doris MySQL Proxy

优点:

  • 部署和使用比较简单,不需要修改 MySQL 应用程序
  • 对 MySQL 应用程序和数据库系统无侵入
  • 可以保证数据的一致性和可靠性

缺点:

  • 过程中需要对数据库 Proxy 进行自定义集成
  • 不支持多库多表的同步,只能同步一个 MySQL 数据库
  • 可能存在数据丢失或者漏读的问题

3.使用Canal

优点:

  • 存在简单,部署方便
  • 支持 MySQL 的多种版本
  • 可用于实时同步 MySQL 数据
  • 对系统资源和性能需求较低,适合小数据量同步

缺点:

  • 不支持多库多表同步
  • 可能存在数据丢失或者漏读的问题
  • 官方不再维护
作者 east

上一 1 2 3 4 5 下一个

关注公众号“大模型全栈程序员”回复“小程序”获取1000个小程序打包源码。回复”chatgpt”获取免注册可用chatgpt。回复“大数据”获取多本大数据电子书

标签

AIGC AI创作 bert chatgpt github GPT-3 gpt3 GTP-3 hive mysql O2O tensorflow UI控件 不含后台 交流 共享经济 出行 图像 地图定位 外卖 多媒体 娱乐 小程序 布局 带后台完整项目 开源项目 搜索 支付 效率 教育 日历 机器学习 深度学习 物流 用户系统 电商 画图 画布(canvas) 社交 签到 联网 读书 资讯 阅读 预订

官方QQ群

小程序开发群:74052405

大数据开发群: 952493060

近期文章

  • 详解Python当中的pip常用命令
  • AUTOSAR如何在多个供应商交付的配置中避免ARXML不兼容?
  • C++thread pool(线程池)设计应关注哪些扩展性问题?
  • 各类MCAL(Microcontroller Abstraction Layer)如何与AUTOSAR工具链解耦?
  • 如何设计AUTOSAR中的“域控制器”以支持未来扩展?
  • C++ 中避免悬挂引用的企业策略有哪些?
  • 嵌入式电机:如何在低速和高负载状态下保持FOC(Field-Oriented Control)算法的电流控制稳定?
  • C++如何在插件式架构中使用反射实现模块隔离?
  • C++如何追踪内存泄漏(valgrind/ASan等)并定位到业务代码?
  • C++大型系统中如何组织头文件和依赖树?

文章归档

  • 2025年6月
  • 2025年5月
  • 2025年4月
  • 2025年3月
  • 2025年2月
  • 2025年1月
  • 2024年12月
  • 2024年11月
  • 2024年10月
  • 2024年9月
  • 2024年8月
  • 2024年7月
  • 2024年6月
  • 2024年5月
  • 2024年4月
  • 2024年3月
  • 2023年11月
  • 2023年10月
  • 2023年9月
  • 2023年8月
  • 2023年7月
  • 2023年6月
  • 2023年5月
  • 2023年4月
  • 2023年3月
  • 2023年1月
  • 2022年11月
  • 2022年10月
  • 2022年9月
  • 2022年8月
  • 2022年7月
  • 2022年6月
  • 2022年5月
  • 2022年4月
  • 2022年3月
  • 2022年2月
  • 2022年1月
  • 2021年12月
  • 2021年11月
  • 2021年9月
  • 2021年8月
  • 2021年7月
  • 2021年6月
  • 2021年5月
  • 2021年4月
  • 2021年3月
  • 2021年2月
  • 2021年1月
  • 2020年12月
  • 2020年11月
  • 2020年10月
  • 2020年9月
  • 2020年8月
  • 2020年7月
  • 2020年6月
  • 2020年5月
  • 2020年4月
  • 2020年3月
  • 2020年2月
  • 2020年1月
  • 2019年7月
  • 2019年6月
  • 2019年5月
  • 2019年4月
  • 2019年3月
  • 2019年2月
  • 2019年1月
  • 2018年12月
  • 2018年7月
  • 2018年6月

分类目录

  • Android (73)
  • bug清单 (79)
  • C++ (34)
  • Fuchsia (15)
  • php (4)
  • python (43)
  • sklearn (1)
  • 云计算 (20)
  • 人工智能 (61)
    • chatgpt (21)
      • 提示词 (6)
    • Keras (1)
    • Tensorflow (3)
    • 大模型 (1)
    • 智能体 (4)
    • 深度学习 (14)
  • 储能 (44)
  • 前端 (4)
  • 大数据开发 (488)
    • CDH (6)
    • datax (4)
    • doris (30)
    • Elasticsearch (15)
    • Flink (78)
    • flume (7)
    • Hadoop (19)
    • Hbase (23)
    • Hive (40)
    • Impala (2)
    • Java (71)
    • Kafka (10)
    • neo4j (5)
    • shardingsphere (6)
    • solr (5)
    • Spark (99)
    • spring (11)
    • 数据仓库 (9)
    • 数据挖掘 (7)
    • 海豚调度器 (10)
    • 运维 (34)
      • Docker (3)
  • 小游戏代码 (1)
  • 小程序代码 (139)
    • O2O (16)
    • UI控件 (5)
    • 互联网类 (23)
    • 企业类 (6)
    • 地图定位 (9)
    • 多媒体 (6)
    • 工具类 (25)
    • 电商类 (22)
    • 社交 (7)
    • 行业软件 (7)
    • 资讯读书 (11)
  • 嵌入式 (70)
    • autosar (63)
    • RTOS (1)
    • 总线 (1)
  • 开发博客 (16)
    • Harmony (9)
  • 技术架构 (6)
  • 数据库 (32)
    • mongodb (1)
    • mysql (13)
    • pgsql (2)
    • redis (1)
    • tdengine (4)
  • 未分类 (6)
  • 程序员网赚 (20)
    • 广告联盟 (3)
    • 私域流量 (5)
    • 自媒体 (5)
  • 量化投资 (4)
  • 面试 (14)

功能

  • 登录
  • 文章RSS
  • 评论RSS
  • WordPress.org

All Rights Reserved by Gitweixin.本站收集网友上传代码, 如有侵犯版权,请发邮件联系yiyuyos@gmail.com删除.