
大数据
文章平均质量分 89
goTsHgo
这个作者很懒,什么都没留下…
展开
-
双机算法:主备、主主 对比
怎么实现:ZooKeeper集群有3个或更多节点,只有一个Leader写数据,其他Follower同步数据并处理读请求。为什么:分布式系统需要一个“指挥官”协调,避免混乱。原理:用Zab协议(类似Paxos),确保写操作顺序一致,故障时快速选新Leader。特性主备 (ZooKeeper)主主 (Memcached)节点角色1主多备全主0备数据同步主节点实时同步到备无同步,数据分片一致性强一致性弱一致性性能主节点瓶颈高并发,线性扩展故障处理选举切换,短暂停机局部失效,无切换复杂度。原创 2025-03-18 15:14:03 · 861 阅读 · 0 评论 -
数据中台联接方式:以对象(主体)为中心联接
Users:存储用户信息。Orders:存储订单信息,关联到用户。-- 创建用户表UserID INT PRIMARY KEY, -- 用户IDUserName VARCHAR(100), -- 用户姓名Email VARCHAR(100), -- 用户邮箱RegisterDate TIMESTAMP -- 注册日期-- 创建订单表OrderID INT PRIMARY KEY, -- 订单IDUserID INT, -- 用户ID。原创 2025-01-23 14:16:58 · 791 阅读 · 0 评论 -
CAP原则中的P:分区容错性(Partition tolerance)
一致性(Consistency):所有节点的数据始终保持一致。可用性(Availability):系统始终能够响应请求,无论请求是否成功。分区容错性(Partition Tolerance):系统能够在部分机器故障、网络故障、机房停电等异常情况下继续运行。CAP 定理的核心内容是,在一个分布式系统中,分区容错性(P)和一致性(C)可用性(A)三者之间是相互制约的。也就是说,如果发生网络分区,系统只能选择保证一致性或可用性,但不能同时保证这两者。原创 2025-01-23 11:26:43 · 1160 阅读 · 0 评论 -
数据中台联接方式:以业务流(事件)为中心联接
订单创建事件(OrderCreatedEvent)当用户下单时,系统会生成一个订单创建事件。OrderID(订单ID),UserID(用户ID),(订单金额),(订单状态,初始为“未支付”)。支付完成事件(PaymentCompletedEvent)当用户完成支付时,系统会生成一个支付完成事件。OrderID(订单ID),(支付金额),(支付时间)。事件驱动:订单创建事件触发了订单的初始状态,而支付完成事件通过匹配支付金额和订单金额,更新了订单的状态为“已支付”。联接方式:我们通过SQL的。原创 2025-01-23 10:56:53 · 846 阅读 · 0 评论 -
大数据和人工智能融合展望
大数据技术和人工智能(AI)的融合是科技发展的方向,其实很多年前就已经提出来并在不断前行,未来几年将会因为算力的进步和AI技术的飞速发展继续加速。原创 2025-01-21 17:23:30 · 990 阅读 · 0 评论 -
数据标准化——数据字典发布
数据字典发布是数据标准化的关键环节,为企业的数据治理、共享和使用提供了基础支持。从底层原理看,它通过标准化描述减少认知差异,促进数据资产化和治理闭环的实现。通过系统化的步骤,如内容规范、收集整理、发布与动态维护,企业能够确保数据字典的高效发布和持续利用,为业务决策和开发效率提供强有力的保障。原创 2025-01-17 17:23:05 · 1076 阅读 · 0 评论 -
数据入湖的前提条件:数据标准 之 元数据注册
是数据入湖的核心步骤,通过系统化管理元数据,确保数据的可发现性、可理解性、可追溯性和可治理性。它既是数据治理的基础设施,也是数据资产化的重要环节。只有完成元数据注册,才能真正实现数据湖中数据的高效管理和价值挖掘。元数据是描述数据的“数据”,包括数据的结构、来源、用途等关键信息。下面从底层原理、操作步骤及背后原因进行全面解析。记录和管理数据的元信息(Metadata),为数据的理解、发现、管理、使用和治理提供依据。是数据入湖的重要前提条件之一,其核心目的是。原创 2025-01-17 16:25:01 · 1033 阅读 · 0 评论 -
数据入湖的前提条件:数据标准 之 数据质量评估
是数据入湖前必须满足的核心标准之一,其目的是确保数据的准确性、完整性、一致性和可靠性。通过系统化评估,能够最大限度地提升数据的价值,降低数据问题对业务决策的负面影响。下面从底层原理、详细步骤及背后原因进行全面解析。数据质量评估是数据入湖前的重要保障,确保数据的真实性、完整性和可用性。通过质量评估,企业能够优化数据治理流程,提升数据的业务价值,原创 2025-01-17 16:15:28 · 951 阅读 · 0 评论 -
数据入湖的前提条件:数据标准 之 明确数据源
是数据入湖的重要前提,通过记录数据来源、生成逻辑、责任人和合法性,确保数据的真实性、可追溯性和合规性。它不仅是数据治理的基础,也是数据安全和高效管理的核心环节,能够有效避免“数据沼泽”、提升数据价值。确保数据的来源合法、清晰、可追溯,为数据的可靠性、完整性和可用性提供基础保障。下面从底层原理、具体操作以及其背后原因进行详细解析。是数据入湖的重要前提条件之一,其核心目的是。原创 2025-01-16 16:03:46 · 979 阅读 · 0 评论 -
数据入湖的前提条件:数据标准 之 定义数据密级
是数据入湖前必须完成的步骤,它确保了数据的安全性、合规性和高效管理。通过科学的密级分类、清晰的判定标准和有效的保护策略,企业可以在保护数据的同时,最大限度地支持业务需求,平衡安全与效率。是对数据敏感性和重要性的分类,明确数据的保密程度和使用权限。它是确保数据安全、合规、合理使用的关键环节。下面从底层原理层面逐步解析数据密级定义的原因及其详细实现步骤。原创 2025-01-16 15:27:42 · 652 阅读 · 0 评论 -
数据入湖的前提条件:数据标准 之 发布数据标准
在数据入湖(Data Ingestion)过程中,“发布数据标准”是确保数据治理规范化、数据质量一致性以及后续数据可用性的核心环节。从底层原理来看,数据标准的发布涉及定义、审核、发布和执行多个阶段,贯穿技术、业务和治理逻辑。总结而言,发布数据标准是数据入湖治理中不可或缺的环节,其从定义、发布到执行的全过程,构建了确保数据质量与规范性的系统性保障。数据标准是关于数据属性、结构、质量、语义等方面的规范,它是数据入湖的基础条件,发布数据标准不仅是定义标准,还涉及审核、发布和监督执行的流程。原创 2025-01-16 12:10:37 · 990 阅读 · 0 评论 -
数据入湖的前提条件:数据标准 之 明确数据Owner
明确数据Owner,就像给每一块“田地”分配一个具体的“农夫”。这个农夫负责田地的种植、维护、收获。如果田地没人管理,它可能荒废;如果有人管理,它就会不断产生价值。通过明确数据Owner,公司可以清楚知道数据的责任人是谁,提升数据质量,确保安全合规,最终让数据更高效地服务于业务需求。原创 2025-01-14 17:22:39 · 1236 阅读 · 0 评论 -
Hive分区裁剪(Partition Pruning)详解
Hive分区裁剪是一种优化技术,旨在查询时只读取与条件匹配的分区,从而减少不必要的数据扫描。这种机制依赖于分区表的设计和查询优化器的工作,特别是在处理大规模数据时,分区裁剪可以显著提高查询性能。通过合理的分区设计和分区裁剪配置,可以有效减少数据扫描量,提高查询效率。个按天分区(每分区1GB),静态分区裁剪处理一天的数据仅需扫描1GB,而未裁剪则需要扫描365GB。指在执行查询时,根据查询条件自动过滤掉无关的分区,只扫描符合条件的数据分区。对应的分区,而不扫描其他日期的分区。分区的,Hive只读取。原创 2024-12-04 17:06:01 · 1178 阅读 · 0 评论 -
数据仓库需要全生命周期管理的详细原因
在 Hive on Spark 的数仓环境中,数据生命周期管理不仅是技术选择,更是保障业务成功的关键实践。通过合理的设计和执行,可实现高效、低成本和合规的数据管理。是保障数据仓库在整个使用过程中高效、安全、合规的关键。尤其在数据量巨大且分析需求复杂,全生命周期管理确保数据从创建到销毁都具备高质量、低成本和可追溯性。以下将从底层原理、Hive on Spark 的特点及相关代码实现逐步解释为什么需要数据的全生命周期管理,并结合实际场景说明原因。:从 MySQL 数据库采集数据到 Hive 的 ODS 层。原创 2024-12-03 15:11:20 · 1638 阅读 · 0 评论 -
数据仓库全生命周期管理
是将数据从初始采集到最终销毁的全过程管理,结合了 Hive 数据仓库的强大查询能力和 Spark 的分布式计算优势。以下从底层原理出发,结合源码解析每个阶段的实施方式,详细说明其操作原理和原因。原创 2024-12-03 15:10:51 · 1622 阅读 · 0 评论 -
数据仓库分层——数据明细层
离线数仓中的明细层是数据仓库体系的基石,存储最完整、最细粒度的业务数据。其主要目标是提供高质量、易用的基础数据,为上层分析和建模提供可靠支持,同时满足历史数据存储、回溯和灵活分析需求。在设计时需要平衡存储和查询效率,确保其稳定性和可扩展性。是数据分层模型中的基础层级之一,通常是整个数仓数据体系的。和基础,是进一步加工的起点。无直接业务价值的字段。数据的一致性和准确性。原创 2024-12-03 13:54:53 · 1194 阅读 · 0 评论 -
Hive on Spark 的Pre-commit 测试
Pre-Commit 测试是一种提交代码到主分支或共享代码库之前运行的一系列自动化测试,用于捕获代码中的潜在问题自动运行的测试流程。其目的是确保新提交的代码不会引入错误,破坏现有功能或降低代码质量。对于大型项目如 Hive,Pre-Commit 测试通常包括单元测试、集成测试和功能测试等多个层次。Hive 的 Pre-Commit 测试通过 Maven、JUnit 和 QTest 框架实现,覆盖了从单元测试到集成测试的完整流程。通过轮换不同配置,Hive 平衡了测试覆盖率与执行效率。原创 2024-12-02 11:14:43 · 839 阅读 · 0 评论 -
Spark比MapReduce快的真正底层原因
除了大家都知道的基于内存运算外,真正的原因是Spark将复杂任务分解成为一个,通过其特性实现了快速处理的能力。DAG(Directed Acyclic Graph,直接有向无环图) 是现代分布式计算框架(如 Apache Spark、Flink 等)高效内存计算能力的核心。它不仅优化了计算任务的执行流程,还减少了不必要的磁盘读写,从而实现高性能计算。以下是从底层原理到源代码实现的全面解析。将一个复杂计算分解为多个基本操作在 Spark 中,DAG 是通过来构建的。原创 2024-11-29 14:50:51 · 1076 阅读 · 0 评论 -
Flume 监控配置和实践
Flume 支持自定义监控指标,开发者可以基于 Flume 的。原创 2024-11-29 09:53:41 · 1078 阅读 · 0 评论 -
埋点采集的日志数据常见的格式简介
埋点采集的日志数据通常以结构化或半结构化的格式进行记录,以便于分析和处理。原创 2024-10-28 16:58:55 · 724 阅读 · 0 评论 -
MapReduce 与 Spark 的shuffle对比
MapReduce 和 Spark 的 shuffle 都是分布式计算框架中用于数据重新分配的操作,但两者在实现和优化上有一些显著差异。以下从底层实现、数据存储、执行流程和性能优化等方面详细对比 MapReduce 和 Spark 的 shuffle。原创 2024-10-25 17:20:04 · 951 阅读 · 0 评论 -
聚类分析算法——层次聚类 详解
层次聚类(Hierarchical Clustering)是一种无监督的机器学习方法,通过递归地对数据进行合并(或拆分),构建一个类似树的聚类结构,称为“树状图”(Dendrogram)。该算法通常用于探索数据的层次结构。根据聚类方向的不同,层次聚类可以分为“自底向上”(凝聚式聚类)和“自顶向下”(分裂式聚类)两种方法。原创 2024-10-25 17:05:19 · 5433 阅读 · 0 评论 -
聚类分析算法——K-means聚类 详解
K-means 是一种简单、快速的聚类算法,广泛应用于数据聚类任务。通过反复优化簇中心位置,K-means 不断收敛并找到数据的聚类结构。然而,它对初始条件敏感,对簇形状有限制,适合于球形且均匀分布的簇。在实际应用中,可通过结合 K-means++、肘部法和轮廓系数等手段改进其效果。原创 2024-10-25 14:06:52 · 38487 阅读 · 3 评论 -
用户画像中不同机器学习模型的优缺点和适用场景
在用户画像中,使用来提取和分析用户特征时,选择哪种模型(聚类、分类、回归等)取决于你要解决的具体业务问题和数据特点。每种模型都有其独特的优势,适用于不同的场景。原创 2024-10-25 11:43:34 · 958 阅读 · 0 评论 -
Azkaban调度的所有 使用场景
Azkaban 的主要使用场景包括:大规模数据处理(Hadoop、Spark)、ETL 管道调度、机器学习任务调度、自动化报表生成、系统运维任务调度等。它的优势在于强大的依赖管理功能、自动重试机制和灵活的任务类型支持,使其在复杂的工作流管理和调度场景中表现出色。原创 2024-10-23 13:54:16 · 1109 阅读 · 0 评论 -
数据仓库建设 : 主题域简介
在数据仓库建设中,主题域是数据模型的一个重要概念,它帮助构建逻辑清晰、层次分明的数据结构。主题域的设计基于企业的业务结构,将业务中的关键部分提炼出来,划分为若干个主题域。每个主题域对应一个特定的业务领域,便于组织、存储和分析业务数据。原创 2024-10-22 14:58:24 · 1736 阅读 · 0 评论 -
Spark的Torrent Broadcast 详解
Spark的Torrent Broadcast是为了优化大数据分发而设计的一种高效广播机制。它采用类似BitTorrent的分布式数据传播方式,通过分块传输和逐步扩散,将广播数据分发到各个工作节点。相比传统的广播模式,Torrent Broadcast能够更好地利用网络带宽,并提供更好的容错性和扩展性。原创 2024-10-22 14:24:49 · 762 阅读 · 0 评论 -
Spark 的 Http Broadcast 和 Torrent Broadcast 广播实现类的对比
特性实现方式中央化的 HTTP 服务器传输分布式数据块传输,链式传播效率随着集群规模增大,效率迅速下降高效并发,适合大规模集群可扩展性可扩展性差可扩展性强,适合大型集群网络负载网络负载集中在驱动节点网络负载分散在多个节点之间容错性容错性较差,驱动程序故障会导致广播失败容错性强,部分节点故障不会影响整体传播驱动程序负担驱动程序负载较高驱动程序负担轻,依赖分布式节点传播适用场景小规模集群和小数据集大规模集群和频繁的大数据广播Spark 默认方式Spark 1.5 之前Spark 1.5 之后。原创 2024-10-22 11:07:11 · 970 阅读 · 0 评论 -
Spark 广播变量的数据分发 的完整操作流程
创建广播变量:驱动程序创建广播变量,并对数据进行序列化。分片与分发:广播数据通过 Torrent Broadcast 被分片,并通过驱动程序和其他执行器之间的多级传播分发给集群中的所有执行器。数据接收与缓存:每个执行器首次使用广播变量时,从驱动程序或其他执行器获取数据,并将其缓存到内存或磁盘。任务使用广播数据:执行器上的任务通过本地访问缓存的广播变量,减少了网络传输的开销。清理:当广播变量不再需要时,用户可以显式调用,或者依赖 Spark 的垃圾回收机制清理广播变量。原创 2024-10-22 10:44:13 · 1100 阅读 · 0 评论 -
Spark 广播变量(Broadcast Variable)原理及源码分析
Spark 广播变量通过序列化、分块、缓存和分层传播的机制,大大减少了任务之间的数据传输开销,提高了性能。原创 2024-10-21 16:47:51 · 1230 阅读 · 0 评论 -
Spark动态资源释放机制 详解
Apache Spark 是一个分布式数据处理框架,其动态资源分配(或称为动态资源释放)机制,是为了更高效地利用集群资源,尤其是在执行具有不同工作负载的作业时。Spark 的动态资源释放机制允许它根据作业的需求自动分配和释放集群资源,从而提高资源利用率,降低空闲资源占用时间。动态资源分配(Dynamic Resource Allocation, DRA)机制主要解决以下问题: Spark 通过动态调整**执行器(Executor)**的数量,根据作业的负载来增加或减少资源。核心目标是:Spar原创 2024-10-21 13:59:41 · 1339 阅读 · 0 评论 -
Maxwell 的容错和恢复机制 详解
Maxwell 的容错和恢复机制依赖于对 binlog 位置的精确管理、对 Kafka 消息的幂等性处理、以及自动重试和死信队列的结合,确保了其在大规模数据处理场景中的高可用性。原创 2024-10-21 10:40:07 · 886 阅读 · 0 评论 -
HiveOnSpark环境下,Spark 挂了问题排查思路
当 Spark 挂掉时,分析错误的关键在于查看 Hive 和 Spark 相关的日志。通过 Hive 查询日志、Spark Driver 和 Executor 的日志,结合 YARN Web UI 或 Spark History Server,可以逐步排查出问题的根源。常见的原因包括内存不足、数据倾斜、Shuffle 阶段问题和资源不足等。根据日志中的错误提示,合理调整 Spark 的配置或优化查询逻辑,通常可以解决这些问题。原创 2024-10-18 17:27:47 · 1206 阅读 · 0 评论 -
布隆过滤器 不适用的场景
布隆过滤器的优点是高效、节省空间,但其缺点,如误报率和无法删除元素,限制了它在某些特定场景中的适用性。布隆过滤器适合用于需要快速判断“元素不存在”的场景,例如缓存系统、垃圾邮件检测或分布式数据库中的索引过滤器等。但是,在对准确性有高要求、需要删除元素或遍历集合的应用场景中,布隆过滤器可能不是最佳选择。原创 2024-10-18 17:25:20 · 537 阅读 · 0 评论 -
HBase 切片原理 详解
HBase 的切片机制基于行键范围的水平分割,通过自动触发切片操作,将超大 Region 拆分为更小的子 Region。这个过程涉及对行键范围的划分、HDFS 文件的共享和管理,以及集群中 RegionServer 的负载均衡。切片不仅提高了 HBase 的存储扩展能力,还保证了数据处理的并发性和系统的整体性能。原创 2024-10-18 14:25:33 · 1026 阅读 · 0 评论 -
spark统一内存模型 详解
Spark 的统一内存模型通过动态调整执行内存和存储内存的划分,极大地提高了内存资源的利用率。通过引入堆外内存支持、灵活的内存共享机制以及动态扩展策略,Spark 能够在不同类型的任务(如批处理、流处理、机器学习)之间高效地分配和管理内存资源。我们从底层原理和源代码的角度详细解析了 Spark 内存管理的工作机制,了解了如何动态管理和调度内存,以及内存的申请、释放与回收机制。掌握这些底层实现细节有助于在实际应用中优化 Spark 性能,提升资源利用率。原创 2024-10-18 12:07:32 · 1962 阅读 · 0 评论 -
Maxwell 底层原理 详解
Maxwell 是一个轻量级的 MySQL binlog 解析工具,它通过连接 MySQL 并获取 binlog 数据,利用解析这些二进制日志,将其转化为易于处理的RowMap对象,并通过Producer发送到外部系统。Maxwell 提供了灵活的输出方式和良好的容错机制,适用于实时数据同步和流式数据处理场景。原创 2024-10-18 09:46:51 · 962 阅读 · 0 评论 -
flume 负载均衡 详解
Flume 的负载均衡机制通过多种方式实现,包括在 Sink 层的负载均衡(如 Round Robin、Random 策略)、故障转移模式(Failover)以及多代理之间的数据传输。负载均衡的底层实现依赖于 Sink Processor 和 Selector 的逻辑,通过源代码可以看到 Flume 的负载均衡机制主要集中在 Sink 选择和切换上。原创 2024-10-18 09:06:25 · 1269 阅读 · 0 评论 -
YARN调度原理详解
YARN(Yet Another Resource Negotiator)是 Hadoop 集群的资源管理和作业调度框架,它的设计旨在更好地管理和调度 Hadoop 集群中的资源。YARN 解决了传统 Hadoop MapReduce 中资源管理与作业调度紧耦合的问题,使得不同类型的计算任务可以在 Hadoop 集群上共存并高效地利用资源。原创 2024-10-12 15:46:02 · 1048 阅读 · 0 评论 -
FlinkSQL中 的 双流JOIN
Flink SQL 中的流与流JOIN是基于窗口和状态管理的复杂操作。通过维护两个流的键控状态,并结合事件时间和水印机制,Flink 可以处理无界数据流中的JOIN操作。底层通过窗口机制、状态存储以及异步事件驱动模型来处理流数据的匹配和关联。在实现中,状态的管理和清理、水印驱动的窗口触发、以及事件时间处理是核心所在。原创 2024-10-11 16:30:56 · 1184 阅读 · 0 评论