自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(35)
  • 收藏
  • 关注

原创 Apache Kylin最简单的解析、了解

一、Apache Kylin是什么?由中国团队研发具有浓厚的中国韵味,使用神兽麒麟(kylin)为名的一个OLAP多维数据分析引擎:(据官方给出的数据)

2024-12-15 17:49:07 1021

原创 kafka如何知道哪个消费者消费哪个分区?

在Kafka中,消费者和分区之间的分配是通过一个称为“消费者组协调器”(Consumer Group Coordinator)的组件来管理的。

2024-11-25 20:43:04 1010

原创 kafka消费者组和分区数之间的关系是怎样的?

消费者组可以通过增加更多的消费者来扩展,新加入的消费者会自动分担现有的分区负载。如果消费者组中的某个消费者失败或离线,其负责的分区会被组内的其他消费者重新分配,确保消息消费能够继续进行。如果消费者数量等于分区数,那么可以实现一对一的均等分配,每个消费者消费一个分区的数据。:这是为了保证消息的顺序性。:不同消费者组之间的消费者是独立消费消息的,也就是说不同组的消费者可以同时消费同一主题的消息。:如果消费者组中的消费者数量超过了分区数量,那么多余的消费者将无法消费数据,造成资源浪费。

2024-11-25 20:26:25 1175

原创 kafka中的数据清理策略

空间,Kafka需要不断地对过去的一些消息进行清理工作。Kafka的每个分区都有很多的日志文件,这样也是为了方便进行日志的清理。Kafka 中的数据清理策略主要用于控制数据的保留时间和存储空间,确保系统不会因为数据积累过多而影响性能。日志压缩(Log Compaction):按照消息的key进行整合,有相同key的但有不同value值,只保留最后一个版本。日志删除(Log Deletion):按照指定的策略。Kafka的消息存储在磁盘中,为了控制。

2024-11-21 19:04:29 1140

原创 kafka中是如何快速定位到一个offset的

1、分区和日志段:2、索引文件:

2024-11-21 19:02:03 863

原创 Kafka集群中数据的存储是按照什么方式存储的?

然后每个分区又被划分成了多个 LogSegment,相当于一个巨型文件被平均分割为一些相对较小的文件,这样也便于消息的查找、维护和清理。Kafka 的消息数据存储结构基于「主题 + 分区 + 副本 + 分段 + 索引」的结构。Kafka 消息是以主题为单位进行归类,各个主题之间是彼此独立的,互不影响。偏移量索引文件 .index 用于记录消息偏移量与物理地址之间的映射关系。每个分区各自存在一个记录消息数据的日志文件。每个主题又可以分为一个或多个分区。

2024-11-20 16:14:02 530

原创 kafka是如何做到高效读写

消息持久化: Kafka 将消息存储在磁盘上,并且通过顺序写入的方式提高写入性能。 消息被追加到日志文件的尾部,避免了随机写操作,从而提高了写入速度。 零拷贝技术:利用操作系统的零拷贝特性,数据可以从磁盘直接传输到网络接口,减少了数据在内存中的复制次数,提高了传输效率。 批量发送:生产者可以将多个消息打包成一个批次进行发送,减少了网络通信的开销,提高了吞吐量。 异步处理:Kafka 使用异步IO操作来处理消息的读写,这可以显著减少等待时间,提高系统响应速度。 多分区设计:主题可以被划分为多个分区

2024-11-20 16:09:45 1234

原创 kafka中初始化的时候Leader选举有一定的规律,如何打破这个规律

Leader或preferred.replica.election.enable:控制是否启用 Preferred Replica Election。使用 kafka-preferred-replica-election.sh 或 kafka-reassign-partitions.sh 工具。使用 kafka-reassign-partitions.sh 工具手动指定每个分区的 Leader 和副本分布。使用kafka-preferred-replica-election.sh工具:手动指定。

2024-11-19 20:34:03 452

原创 Kafka中Leader挂了,Follower挂了,然后再启动,数据如何同步?

假如Follower挂掉了,Leader和其他的Follower继续往前存储数据,挂掉的节点从ISR集合中剔除,此时挂掉的Follower又重启了,他会先从上次挂掉的节点的HW开始同步数据,直到追上最后一个Follower为止,会重新回归到ISR。为保证多个副本之间的数据一致性,其余的Follower会先将各自的log文件高于HW的部分截掉,然后从新的Leader同步数据。由于数据同步的时候先进入Leader,随后同步给Follower。Leader发生故障后,会从ISR中选出一个新的Leader。

2024-11-18 09:50:10 503

原创 kafka中节点如何服役和退役

配置 Kafka Broker 的 server.properties 文件,确保 broker.id 是唯一的,并且配置正确的 zookeeper.connect 地址。使用 kafka-reassign-partitions.sh 工具重新分配分区,确保新节点上有适当的分区副本。使用 kafka-reassign-partitions.sh 工具将退役节点上的分区重新分配到其他节点。使用 kafka-topics.sh 工具检查退役节点上的分区是否已经完全移除。确保没有新的消息发送到即将退役的节点。

2024-11-18 09:49:28 605

原创 Linux解决 -bash: nc: command not found&-bash: nc: 未找到命令

正在安装 : 2:nmap-ncat-6.40-19.el7.x86_64 2/2。--> 正在处理依赖关系 libpcap.so.1()(64bit),它被软件包 2:nmap-ncat-6.40-19.el7.x86_64 需要。---> 软件包 libpcap.x86_64.14.1.5.3-13.el7_9 将被 安装。---> 软件包 nmap-ncat.x86_64.2.6.40-19.el7 将被 安装。

2024-11-13 10:47:02 1227

原创 kafka是如何处理数据乱序问题

分区排序:Kafka 通过分区来保证消息的顺序。同一分区内的消息是有序的,但不同分区之间的消息则不保证顺序。如果一个消费者组中有多个消费者,可以通过调整消费者的数量,确保每个分区只由一个消费者处理。配置生产者:通过配置生产者,可以减少消息乱序的可能性。配置消费者:通过配置消费者,可以确保消息按顺序处理。

2024-11-12 20:32:24 823

原创 kafka集群中的Leader选举机制

ISR(In-Sync Replicas)列表:选举过程:控制器(Controller):选举算法:选举完成:故障恢复:

2024-11-11 20:16:59 745

原创 Kafka生产者如何提高吞吐量?

批量发送:生产者可以配置 batch.size 参数,将多个消息打包成一个批次发送。这样可以减少网络通信的次数,提高吞吐量。 inger.ms:设置 linger.ms 参数,可以让生产者在发送消息前等待一段时间,以便收集更多的消息形成更大的批次。这可以进一步减少网络请求次数,提高效率。 消息压缩:启用消息压缩(如 gzip 或 snappy)可以减小消息在网络中的传输体积,提高传输效率。生产者可以通过设置 compression.type 参数来启用压缩。 多线程:使用多线程或多进程来并发发送消息,

2024-11-11 20:16:07 763

原创 zk在kafka集群中有何作用

Broker 状态监控:ZooKeeper 监控每个 Broker 的状态,如果某个 Broker 下线,ZooKeeper 会通知其他 Broker 和客户端,以便进行故障转移和负载均衡。分区分配:Kafka 的每个主题可以分为多个分区,ZooKeeper 负责管理这些分区的分配情况,确保每个分区都有一个 Leader 和多个 Follower。ZooKeeper 主要用于管理和协调 Kafka 集群中的各个组件,确保集群的高可用性和一致性。

2024-11-09 10:12:37 628

原创 kafka分区中的ISR、OSR、AR 是什么?

ISR (In-Sync Replicas):定义: ISR 是指一组与主副本(Leader)同步的副本(Replicas)。 作用: 当生产者向主题(Topic)发送消息时,消息会被写入Leader副本。ISR中的所有副本都会从Leader副本同步这些消息。只有当ISR中的所有副本都确认接收到消息后,生产者才会收到确认。 目的: 确保数据的高可用性和一致性,即使某个副本失败,ISR中的其他副本也可以接管成为新的Leader。OSR (Out-of-Sync Replicas):定义: OSR

2024-11-09 09:15:07 851

原创 Kafka 是如何做到消息的有序性?

Kafka分布式的单位是partition,同一个partition用一个write ahead log组织,所以可以保证FIFO的顺序。不同partition之间不能保证顺序。(生产者发送的数据,单分区内可以做到有序,多分区,无法保证,除非把多个分区的数据拉到消费者端,进行排序,但这样做需要等,效率很低,还不如直接设置一个分区。kafka默认保证同一个partition分区内的消息是有序的,则可以设置topic只使用一个分区,这样消息就是全局有序。

2024-11-08 20:40:27 317

原创 Kafka 分区的目的?

通过这些机制,Kafka 能够提供高性能、高可靠性和高可扩展性的消息传递系统。

2024-11-08 20:25:43 759

原创 Spark中的宽窄依赖

宽窄依赖是Spark计算框架中的一个重要概念,影响着数据处理的效率和性能。

2024-11-07 18:42:32 452

原创 Kafka启动报错:The broker is trying to join the wrong cluster. Configured zookeeper.connect may be wrong.

第二、确定Zookeeper 集群是否有问题。第一、检查log.dirs配置是否正确。(虚拟机可用)本地连接把有关文件删除。第三、把相关文件删除,重启即可。

2024-11-07 18:00:11 677

原创 Spark的容错机制:persist持久化机制&checkpoint检查点机制区别

persist: 主要用于缓存中间结果,提高性能,但不改变RDD的依赖关系。checkpoint: 用于断开RDD的依赖链,提高容错性和恢复能力,但会占用更多的存储资源。

2024-11-06 19:21:07 618

原创 Spark触发算子:first、take、 collect、reduce(最简单易懂的解释)

first: 功能: 返回 RDD 或 DataFrame 的第一个元素。 用途: 当你需要查看数据集的第一个元素时使用。 take(n): 功能: 返回 RDD 或 DataFrame 的前 n 个元素。 用途: 当你需要查看数据集的前几个元素时使用。 collect: 功能: 将 RDD 或 DataFrame 的所有元素收集到驱动程序中并返回一个列表。 用途: 当你需要将整个数据集从分布式集群收集到驱动程序中时使用。注意,如果数据集很大,可能会导致内存溢出。 reduce(f):

2024-11-06 12:19:57 522

原创 Spark分组聚合算子、排序算子、重分区算子(最简单易懂的解释)

语法: sortByKey(ascending: Boolean = true, numPartitions: Int = this.partitions.length): RDD[(K, V)]含义:coalesce 操作用于减少 RDD 的分区数,而不会触发全量的重新洗牌(shuffle)。用途:当你需要减少 RDD 的分区数,但不希望触发全量的重新洗牌时,可以使用 coalesce。用途:当你需要根据键对键值对 RDD 进行排序时,可以使用 sortByKey。

2024-10-31 20:49:29 1020

原创 Spark常用转换算子(最简单易懂的解释)

总结:map:将集合中的每个元素应用一个函数,并返回一个新的集合。flatMap:将集合中的每个元素应用一个函数,并将结果展平一层,返回一个新的集合。filter:从集合中筛选出满足特定条件的元素,并返回一个新的集合。

2024-10-31 20:28:58 482

原创 数据分析流程(简单易懂)

分析数据是分析流程重中之重的工作,它是从分析目的出发,按照分析思路,运用适当的分析方法或分析模型,使用分析工具,对处理过的数据进行分析,提取出有价值的信息。数据可视化是以简单、直观的方式传达出数据包含的信息,增强数据的‘易读性’,让阅读者轻而易举的就看出数据表达的内容(一图胜千言)。观察数据是否存在异常值、空值等,若存在,可剔除或用合理值代替,常用的代替值是平均值、中位数、众数;缺失值处理:处理缺失值的方法有很多,常见的有删除含缺失值的记录、填充缺失值、预测缺失值等。、互联网、市场调查、公开出版物;

2024-10-13 14:42:23 929

原创 Caused by: java.lang.ClassNotFoundException: Class QueryResult not found

Caused by: java.lang.ClassNotFoundException: Class QueryResult not found解决方案:自己的/dolphinscheduler/bin/env下的dolphinscheduler_env.sh文件下加一句话:

2024-09-26 09:09:52 538

原创 org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.AccessControlException):

原因:Hdfs中的/user目录是属于supergroup组里的root用户

2024-09-26 08:51:43 601

原创 简单易懂理解:数仓——拉链表

“拉链表是一种针对数据仓库设计中表存储数据的方式而定义的数据模型,它有点类似于快照,‌它通过记录每个数据项的生效日期和失效日期,来实现对数据变化的历史追踪,从而避免了按每一天存储所有记录造成的海量存储问题。拉链表的设计旨在优化数据仓库的性能,同时保留数据的历史变化信息。

2024-09-24 20:28:05 477

原创 kettle连接hive

在\data-integration\plugins\pentaho-big-data-plugin\hadoop-configurations\hdp30\lib 文件夹下拷贝。在\data-integration\plugins\pentaho-big-data-plugin\hadoop-configurations\hdp30 文件夹下。进到\data-integration\plugins\pentaho-big-data-plugin文件夹下。

2024-09-12 20:05:43 531

原创 Parsec 无法连接/登录问题 解决方法

(150-88版本之后配置写“config.json”或“config.txt”都可以,默认更新都被移植到config.json中,同时清除config.txt里的内容;win + R 并输入%appdata%\Parsec进入Parsec文件目录(一般路径:C:\Program Files\Parsec),用记事本编辑config文件。命令进入的直接目录:C:\用户\账户\AppData\Roaming\Parsec。app_proxy_address = 127.0.0.1 填自己使用的代理地址。

2024-09-12 19:36:02 4043

原创 kettle大多数有关mysql问题

在kettle开发过程中,使用mysql连接数据库,创建表输入,表输入可以预览数据结果为正确的,但是清洗却无法获取到字段。Unable to close prepared statement after determining SQL layout You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use ne

2024-09-11 11:14:00 566

原创 SQL最常用的函数

它对其应用的每个行集返回一个值。

2024-09-10 19:37:16 965

原创 DolphinScheduler的优点以及多种部署模式的介绍和优缺点

DolphinScheduler 以 DAG(Directed Acyclic Graph,DAG)流式方式组装任务,可以及时监控任务的执行状态,支持重试、指定节点恢复失败、暂停、恢复、终止任务等操作。这种模式适用于生产环境,可以配置多个Master和多个Worker,通常用于处理复杂的工作流和大量数据处理任务。配置复杂:集群配置相对复杂,需要设置ZooKeeper集群,并在Master和Worker节点上配置相应的参数。高可用性:多个服务器节点可以提供高可用性,一个节点失效不会影响整个系统的运行。

2024-09-09 19:35:23 2532 1

原创 网络连接

IP:通俗易懂来讲就类似(姓名,身份证)或(家庭的准确地址坐标)

2024-09-07 14:23:29 1562

原创 JAVA基础阶段面试题

第二行,需要的byte类型,但他提供的是int类型,解决方案:1.需要把int转换成byte;12 面向对象三大特性: "封装是指将对象的属性和行为包装在一起,隐藏对象的内部细节,仅向外部提供必要的接口来与对象进行交互。内部类的分类有哪些?13 面向对象思想的好处: "高可读性:面向对象的设计使得代码结构清晰、类与类之间的关系明确,从而提高了代码的可读性。25 局部变量与全局变量的区别: "全局变量的作用域是整个程序,它们可以在整个程序的任何地方被访问。

2024-09-07 11:56:57 535

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除