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

为什么 Spark 这么慢?今天优化 Spark 的 5 种方法

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

  • 首页   /  
  • 作者: east
  • ( 页面39 )
Spark 5月 17,2023

为什么 Spark 这么慢?今天优化 Spark 的 5 种方法

在竞争日益激烈的世界中寻找优势?通过 Kubernetes 2023 状态揭示 Kubernetes 可以为您的业务做些什么。现在阅读以探索如何利用 Kubernetes 的优势、解锁潜在解决方案并克服挑战。

当 Apache Spark 运行良好时,它确实运行良好。但有时,用户会发现自己在问这个令人沮丧的问题。

Spark之所以如此受欢迎,是因为它比传统的数据处理解决方案能够执行更多的计算和更多的流处理。与 MapReduce 等流行的传统系统相比,Spark 的速度要快 10-100 倍。但是,虽然 Spark 能够处理范围广泛的工作负载和大数据集,但有时也会遇到困难。这就是原因,这就是您可以采取的措施。

所以:您已经尝试了一些 Apache Spark 性能调优技术,但您的应用程序仍然很慢。此时,是时候深入了解您的 Spark 架构,并确定导致您的实例运行缓慢的原因。

驱动故障

在 Spark 架构中,驱动程序充当编排器。因此,它配备的内存少于执行程序。当驱动程序遇到 OutOfMemory (OOM) 错误时,可能是以下原因造成的:

简而言之,当驱动程序执行需要更多内存的服务或尝试使用比分配的内存更多的内存时,就会发生 OOM 错误。解决这种情况的两个有效的 Spark 调优技巧是:

高并发

有时,Spark 运行缓慢是因为运行的并发任务太多。

高并发能力是一个有益的特性,因为它提供了 Spark 原生的细粒度共享。这会导致最大的资源利用率,同时减少查询延迟。 Spark 将作业和查询划分为多个阶段,并将每个阶段分解为多个任务。 Spark 会根据多种因素并发执行这些任务。

但是,并行执行的任务数基于 spark.executor.cores 属性。虽然高并发意味着要执行多个任务,但如果该值设置得太高而没有适当考虑内存,执行程序将失败。

低效查询

为什么 Spark 这么慢?也许你有一个写得不好的查询潜伏在某处。

按照设计,Spark 的 Catalyst 引擎会自动尝试最大程度地优化查询。但是,如果查询本身写得不好,任何优化工作都注定会失败。例如,一个查询被编程为选择 Parquet/ORC 表的所有列。每列都需要某种程度的内存中列批处理状态。如果查询选择所有列,则会导致更高的开销。

一个好的查询读取尽可能少的列。一个好的 Spark 性能调优实践是尽可能使用过滤器。这有助于限制获取到执行程序的数据。

另一个好技巧是使用分区修剪。将查询转换为使用分区列是优化查询的一种方法,因为它可以极大地限制数据移动。

配置不正确

获得正确的内存配置对于 Spark 应用程序的整体性能至关重要。

每个 Spark 应用程序都有一组不同的内存和缓存要求。如果配置不正确,Spark 应用程序会变慢或崩溃。深入查看 spark.executor.memory 或 spark.driver.memory 值将有助于确定工作负载是否需要更多或更少的内存。

YARN 容器内存开销也会导致 Spark 应用程序变慢,因为 YARN 需要更长的时间来分配更大的内存池。实际情况是 YARN 在容器中运行每个 Spark 组件,例如驱动程序和执行程序。它产生的开销内存实际上是用于JVM(驱动程序)开销、interned字符串和JVM的其他元数据的堆外内存。

当由于 YARN 内存开销导致 Spark 性能下降时,您需要将 spark.yarn.executor.memoryOverhead 设置为正确的值。通常,为开销分配的理想内存量是执行程序内存的 10%。

您需要采取某些步骤来确保 Spark 运行不慢。以下是使您的 Spark 架构、节点和应用程序以最佳水平运行的一些有效方法。

数据序列化

这种特殊的 Spark 优化技术将内存中的数据结构转换为可以存储在文件中或通过网络传输的不同格式。使用这种策略,您可以显着提高分布式应用程序的性能。两种流行的数据序列化方法是:

Java 序列化——您使用 ObjectOutputStream 框架序列化数据,并利用 java.io.Externalizable 来完全控制序列化的性能。 Java 序列化提供轻量级持久性。

Kyro 序列化——Spark 利用 Kryo 序列化库 (v4) 比 Java 序列化更快地序列化对象。这是一种更紧凑的方法。要通过使用 Kyro 序列化真正提高 Spark 应用程序的性能,必须通过 registerKryoClasses 方法注册这些类。

缓存

缓存是一种高效的优化技术,在处理重复需要和查询的数据时使用。 Cache() 和 persist() 非常适合存储数据集、RDD 和 DataFrame 的计算。

需要记住的是,cache() 将数据放入内存中,而 persist() 将数据存储在用户指定或定义的存储级别中。缓存有助于降低成本并在处理重复计算时节省时间,因为从内存读取数据比从磁盘读取数据快得多。

数据结构调整

数据结构调整减少了 Spark 内存消耗。数据结构调优通常包括:

垃圾收集优化

垃圾回收是一种内存管理工具。每个应用程序都将数据存储在内存中,内存中的数据有一个生命周期。垃圾收集标记哪些数据不再需要,标记为删除,然后删除。删除发生在应用程序暂停期间。这些暂停是要避免的。当垃圾收集成为瓶颈时,使用带有 -XX:+UseG1GC 的 G1GC 垃圾收集器已被证明效率更高。

Spark 并不总是完美运行。这是一个很棒的数据处理平台,但不能让它完全自动运行。一致的 Spark 性能调优将帮助您的 Spark 基础设施以最佳水平运行

下次您发现自己问“为什么 Spark 这么慢?”时,请深入了解 Spark 架构并仔细研究。前面提到的 Spark 性能缓慢的原因可能只是罪魁祸首之一,而提到的提高性能的技巧可能是您需要改进的地方。

作者 east
Kafka 5月 16,2023

Kafka Streams 最佳实践:今天要尝试的 3 个

Kafka Streams 最好定义为专门为构建应用程序和微服务而设计的客户端库。考虑 Kafka 流的一种简洁方法是将其视为一种消息服务,其中数据(以消息的形式)在 Kafka 集群中从一个应用程序传输到另一个应用程序,从一个位置传输到另一个仓库。所有输入和输出数据都存放在 Apache Kafka 集群中。

为了形象化,这是 Kafka 环境中数据传输的样子:数据请求(消费者,用 Kafka 术语来说)被创建并发送到另一端。在这里,生产者响应请求生成内容,并通过 Kafka 架构将其直接传送回消费者,消费者随后消费信息。

Kafka Streams 是开发人员非常流行的工具,主要是因为它可以处理从消费者到生产者的数百万个请求,并将它们分布在数十台服务器上,以确保快速和连续传输,同时保持准确性。相反,该平台可以将大量数据从生产者转移到消费者,同时保证消费者实际上能够以他们需要的速度和他们需要的顺序消费数据。

但人们真正喜欢 Kafka Streams 的地方在于数据流没有停顿。大规模实时数据处理对于许多应用程序来说至关重要。 (没有它,Facebook 或 Uber 就会有大麻烦。)Kafka 不间断地传输数据,这与使用过时遗留应用程序的传统环境不同。 Kafka Streams 可在其集群内实现无阻碍的数据流,确保数据在来回循环中从一个应用程序传输到另一个应用程序,从消费者传输到生产者,中间没有任何停顿。其内置冗余可确保数据在传输过程中不会丢失,并完好无损地到达预定目的地。

所以:Kafka Streams 很棒。 Kafka Streams 为任何应用程序开发项目带来的优势直接证明了该平台越来越受欢迎和无处不在。但要真正从 Kafka Streams 中获得最大价值,您需要将一些最佳实践应用于底层 Kafka 平台:

如果你想优化 Kafka Streams 环境中的数据流,你需要跟踪很多事情。其中之一是速度,因为它涉及:

速度是一个关键组成部分。 Kafka Streams 可以有效地促进数据在集群内的移动。但是,如果消息移动的速度对您的应用程序来说不够快,则可能意味着麻烦。确保数据和消息以您需要的速度移动。

要完全优化 Kafka Streams,您的架构必须使用适量的资源构建,以便它获得并保持必要的数据流速度以实现其目标。简而言之,您需要解决以下问题:

必须构建消息路由以满足您的应用程序要求并且吞吐量要令您满意。这是关于为工作而建造的。你不会想要一辆半卡车来运送比萨饼。同样的原则适用于比特,而不仅仅是原子。

如果 Kafka 开始表现不佳,问题可能出在 Kafka 指标上。但这也可能是另一个问题,例如硬盘驱动器或某些性能不佳的内存。团队需要能够尽可能快速有效地进行故障排除。

借助正确的大数据分析工具,您可以集中查看堆栈中的所有硬件、应用程序和监控指标,包括来自 Kafka Streams 的指标。您得到的是一个单一的统一界面,其中指标和消息传递相互关联。这使您可以查看哪个应用程序遇到问题以及它如何影响 Kafka 及其功能。

在大多数大数据监控设置中,硬件监控不同于大数据应用程序监控。将 Kafka 监控添加到图片中,您将拥有一个大的脱节监控环境。但是使用像 Pepperdata 这样的统一监控套件,您可以查看和跟踪所有内容。您对大数据堆栈享有绝对且无与伦比的可见性和可观察性。

Kafka 是一个丰富而复杂的平台。还有很多东西要学。但是 Kafka Streams 的这三个最佳实践是让您获得成功的强大基础。

作者 east
Hive 5月 16,2023

Hive 性能调优:行之有效的成功方法

您确定您的 Hive 查询正在以最佳状态执行吗?你可能会感到惊讶。 Apache Hive 是当今许多大型企业环境中使用最普遍的查询引擎,但这并不意味着它可以自动优化工作。为了充分利用引擎并实现 Hive 查询优化,调整其性能非常重要。但在深入探讨之前,让我们介绍一下 Hive 性能调优的基础知识。

什么是 Hive 性能调优? Hive 性能调优是指旨在改进和加速 Hive 环境性能的集体流程和步骤。当查询未优化时,简单语句的执行时间会更长,从而导致性能滞后和停机。

如何优化 Hive 查询?性能调优是优化 Hive 查询的关键。首先,通过分区、分桶、压缩等调整数据。改进 Hive 查询的执行是另一种 Hive 查询优化技术。您可以通过使用 Tez、避免偏斜和增加并行执行来做到这一点。最后,抽样和单元测试可以帮助您首先查看(并解决)较小规模的问题,从而帮助优化查询。

虽然我们现在了解它的重要性,但调整 Hive 环境以获得最佳性能可能会很棘手。知道如何分析 Hive 查询性能是成功的必要条件。但是 Hive 性能调优最佳实践是什么?开发人员和运维团队可以做些什么来确保最佳的 Hive 查询性能?

如果您有这些问题,这篇文章适合您。继续阅读以了解三个关键类别的有效性能调整最佳实践。无论您是调整时间还是有效利用资源,这些技巧都适用。

想要更多关于提高 Hive 查询性能的技巧?获取我们的电子书:通过真正了解查询的执行方式来提高性能。

如何提高我的 Hive 性能?大多数用户和开发人员都是从调整他们的数据开始的。使用分区、分桶、压缩、避免小文件等都是很棒的 Hive 查询优化技术。

在 Pepperdata,我们处理有关 Hive 查询的各种问题,其中主要是提高 Hive 性能。在本节中,我们将深入探讨如何尽可能少地操纵数据以获得成功。

分区

分区是一种常见的 Hive 查询调优策略,它根据键将表数据放置在表位置的单独子目录中。分区键提供了一个机会来定位表数据的一个子集,而不是扫描您的操作不需要的数据。

无论存在多少数据,当你有分区时,Hive 只读取特定数量的数据来生成结果。这极大地提高了性能,即使您执行复杂的分析查询也是如此。这是因为 Hive 只需从子句中指定的几个分区读取数据。它已经在启动查询执行之前过滤掉所需的数据。

分桶

Bucketing 类似于分区,是一种 Hive 查询调优策略,允许您以数据子集为目标。在这种情况下,专门通过扫描更少的数据来提高连接性能。由于需要输入、输出或存储在内存中的数据更少,因此这改进了跨时间和效率向量的查询。

Hive 中的分桶需要将表数据集分解为更小的部分。因此,数据更容易处理。使用分桶,您可以连接相似的数据类型并将它们写入单个文件。此处的此步骤大大提高了连接表或读取数据时的性能。这就是带分区的分桶在 Hive 用户中如此受欢迎的原因。

压缩

压缩被列为最好的 Hive 查询优化技术之一。大数据压缩减少了处理大型数据集所需的带宽和存储量。此外,压缩从您的系统中消除了冗余和不重要的部分。

查询操作的每一位数据都有与从磁盘获取数据、进入内存、内存不足以及返回磁盘或另一个最终目标相关的 I/O。压缩最大限度地减少了遍历每个步骤的数据量,并减少了在查询状态中移动所花费的时间。

避免小文件

从查询中消除小文件操作是一种有效的 Hive 性能调优策略。这样做可以促进健康的 Hive 生态系统。每个文件都由 Hive Metastore 跟踪并存储在 HDFS 中,每个文件都经过性能优化以处理较大的文件而不是许多较小的文件。查询性能受限于整个系统和平台的健康状况。

反规范化数据

如果您想消除在运行时从多个表连接数据的需要,Hive 专家建议将数据反规范化作为一种​​首选的 Hive 性能调整方法。通过向一个或多个表添加冗余数据来执行反规范化。这可以帮助我们避免在关系数据库中进行代价高昂的连接。

虽然规范化很有用,但除了从操作中完全消除不需要的数据之外,避免连接是您可以对给定查询做出的最有影响力的更改之一。

表设计

Hive 表不同于大多数数据专业人员所习惯的传统数据库表。它们本质上是子目录。增加分区数量以促进高效读取和并行性是针对这种情况的最有效的 Hive 优化技术之一。然而,这个解决方案并不过分。分区过多会降低 Metastore 和 Hive 服务器的性能。跟踪和基线性能是了解分区数量何时从有益变为有害的最佳方式。

简单连接通常更好

有很多策略旨在提高连接的效率。 SMB 连接、映射连接、流表——每一个都旨在消除连接的复杂性或阶段。嵌套连接的执行成本也很高。由于连接的成本很高,因此正在做很多工作来提高连接性能。

输入文件格式选择

输入格式选择在 Hive 查询调优中很重要。例如,在处理生成大量数据的大规模生产系统时,JSON 不是理想的格式选择。这是因为 JSON 和类似的格式类型实际上占用了大量空间以及一些解析开销。

Apache Hive 利用 RCFile 和 ORC 等列式输入格式来解决此类问题。列格式使您能够单独访问每一列,从而减少分析查询中的读取操作。这导致更快的查询性能。

一开始就正确编写 Hive 查询至关重要。 Hive 查询的执行主要取决于其用户编写的代码。但并不是所有的代码都写得完美。事实上,他们需要不断调整和改变。 Hive 查询调优不仅仅与数据有关;提高执行力对于 Hive 的成功也至关重要。

使用 Tez(或更好的东西)

Apache Tez 是一个构建在 Apache Hadoop 2.0 (Yarn) 之上的框架,旨在加速 Hive 的查询执行。 Tez 帮助用户启动和持有一个或多个容器,这些容器可以重复使用以执行多个查询。它还可以帮助用户避免多次磁盘 IO 并减少启动 JVM 的开销。

执行引擎显然是开发人员关注的焦点,因为我们看到 Tez、LLAP 和 Hive on Spark 等框架希望以无需低级调优即可提高性能的方式添加到核心 Hive。理解和利用手头任务的最佳执行引擎应该是 Hive 性能调整的强制性考虑因素。

避免歪斜

Hive 查询部署一组分布式任务。整体查询仅与最慢的任务一样快。确保在任务之间均匀分配工作是一种有效的 Hive 性能调整方法。这是因为在某些任务中,它通过处理比必要的更多数据来防止查询本身变慢。

增加并行执行

默认情况下,Hive 只会在给定时间执行一个阶段。然而,一个特定的工作可能包含多个阶段,这些阶段可能并不完全相互依赖。并行执行这些非相互依赖的阶段,而不是在一个实例中运行单个阶段,可以大大减少整个作业的运行时间。

并行执行是最好的 Hive 优化技术之一,但只有在不需要顺序操作时才应利用它。并行度的数量取决于资源的可用性和数据的结构。这是另一个领域,如果没有良好的性能解决方案,“正确”的数字可能很难得出。

抽样/单元测试是一个很大的帮助

抽样和单元测试就是在你去操作一百万行之前获取你的数据的一个子集并运行一千行。这种特定的 Hive 查询调优最佳实践可帮助您了解您的代码如何工作,以便在您将大数据集投入其中之前获得所需的结果。这并非万无一失,但在小范围内解决失败或奇怪的结果比在规模上这样做更快、更有效。

将错误的查询拒之门外

仔细检查查询性能并防止低效查询进入生产环境听起来很简单,但是这个 Hive 性能调整步骤经常被跳过,直到出现问题并且为时已晚。在提升到更高级别的环境之前,应自动测量每个查询的性能和效率以满足最低可接受水平。

根据我们的 2021 年大数据调查报告,29% 的企业表示 Hive 应用程序和工作负载消耗了他们的大部分资源。 Hive 是当今企业运营的重要组成部分。这就是为什么在保持资源消耗和相关成本可控的同时微调 Hive 查询以实现最佳性能至关重要的原因。

作者 east
Kafka 5月 16,2023

从 Kafka 吞吐量指标中获得最大价值

Kafka 支持在系统之间快速、安全、高效地移动大量流数据。出于这个原因,它已成为我们大数据时代的强大工具,在这个时代,数据速度和安全性比以往任何时候都更加重要。

了解和优化您对 Kafka 吞吐量指标的使用是成功支持基于 Kafka 构建的用例(例如实时 Kafka 流和流分析框架)的重要组成部分。吞吐量与在给定时间范围内可以在系统或应用程序之间移动的数据量有关。它广泛用于衡量 RAM、硬盘驱动器、网络连接和互联网的性能。对于 Kafka,吞吐量仅与消息从一个点移动到另一个点的速度有关。

各种组件的性能影响 Kafka 集群内的整体吞吐量:生产者生产内容的速度有多快?代理如何处理消息的移动?消费者消费消息的速度有多快?所有这些因素都会影响吞吐量。衡量这些组件及其性能可帮助您形成一组基线数字。 Kafka JMX 指标是您确定 Kafka 集群是否以最佳方式运行的能力的基础。

一旦捕获了 JMX 指标,集群所有者和/或架构师就可以使用这些指标,从可视化这些指标到创建图表并最终收集洞察力。这种捕获、分析和获得可操作见解的过程几乎不可能手动解决。解决方案需要尽可能多地自动化流程,同时不代表 Kafka 平台所有者自己陡峭的学习曲线和上下文切换。

Kafka 为您提供 JMX 指标,但它们仅代表您评估和维护平台的健康和性能所需的数据的一个子集。要问的大问题是:单独使用 JMX 指标是否足以完成这项工作? (剧透:没有)。您能否将这些指标综合为关键决策的燃料?您能否使用这些 Kafka 吞吐量指标来提高集群的性能并避免因性能问题而感到惊讶?您将如何将基于 JMX 的性能数据与基于 Kafka 构建的平台硬件和应用程序的性能指标相关联?

作者 east
云计算 5月 15,2023

大数据分析调优是 IT 转型的关键

大约 70% 的全球企业已经启动或计划启动某种形式的 IT 转型,这是有充分理由的。进行各种形式的 IT 转型的企业实现其最高业务目标的可能性比同行高 64%。

但 IT 转型不仅仅是实施 DevOps 模型。企业需要一个全面的战略和计划。在制定计划后,他们需要对现有的关键 IT 基础设施进行现代化改造,以提高运营支出和管理开销方面的效率。

大数据分析堆栈的自动调整极大地促进了所有形式的 IT 转型。在我们最近关于 IT 转型的电子书中,我们将自动调整和优化作为正确转型所需的重要原则之一。

无论您仍在本地并计划迁移到云端,还是已经在云端,都有一个令人不安的事实:企业组织使用的计算量通常比他们预期的要多得多。 Gartner 预测,“到 2020 年,由于缺乏成本优化方法,80% 的组织将超出其云 IaaS 预算。”这意味着大多数公司都面临过度配置和超支的风险,尤其是当他们不采用成本优化时。超出预期的支出是任何 IT 转型的糟糕开端。

一个很大的原因是公司没有工具来提供对云应用程序性能和大数据分析堆栈的完整和可操作的可见性(尽管这两者对于任何 IT 转型都至关重要)。 APM 工具可以让您对数据应用程序有一定的了解,但如今,仅进行监控是不够的。公司真正需要的是建议和自动调整,以纠正性能问题并优化现有资源。你需要行动,而不仅仅是观看。

为了促进有效的 IT 转型,用于管理应用程序工作负载、查询、消息流和性能问题的解决方案需要敏捷且果断。这些解决方案必须具有保持所有工作负载以优化速度运行所需的深度可见性。否则,它们会对 SLA 以及应用程序和工作负载性能产生不利影响。

作者 east
云计算 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

上一 1 … 38 39 40 … 93 下一个

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

标签

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

官方QQ群

小程序开发群:74052405

大数据开发群: 952493060

近期文章

  • 如何在Chrome中设置启动时自动打开多个默认网页
  • spark内存溢出怎样区分是软件还是代码原因
  • MQTT完全解析和实践
  • 解决运行Selenium报错:self.driver = webdriver.Chrome(service=service) TypeError: __init__() got an unexpected keyword argument ‘service’
  • python 3.6使用mysql-connector-python报错:SyntaxError: future feature annotations is not defined
  • 详解Python当中的pip常用命令
  • AUTOSAR如何在多个供应商交付的配置中避免ARXML不兼容?
  • C++thread pool(线程池)设计应关注哪些扩展性问题?
  • 各类MCAL(Microcontroller Abstraction Layer)如何与AUTOSAR工具链解耦?
  • 如何设计AUTOSAR中的“域控制器”以支持未来扩展?

文章归档

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

功能

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

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