Druid.io系列3:Druid集群节点

Druid学习笔记(3)Druid部署总结 介绍前面几个章节对Druid的整体架构做了简单的说明,本文主要描述如何部署Druid的环境Imply提供了一套完整的部署方式,包括依赖库,Druid,图形化的数据展示页面,SQL查询组件等。本文将基于Imply套件进行说明单机部署依赖 Java 8 or better Node.js 4.5.x or better Linux, Mac OS X, or other Unix-like OS (Wi 阅读详情

1 Historical Node

Historical Node的职责单一,就是负责加载Druid中非实时窗口内且满足加载规则的所有历史数据的Segment。每一个Historical Node只与Zookeeper保持同步,不与其他类型节点或者其他Historical Node进行通信。

根据上节知晓,Coordinator Nodes会定期(默认为1分钟)去同步元信息库,感知新生成的Segment,将待加载的Segment信息保存在Zookeeper中在线的Historical Nodes的load queue目录下,当Historical Node感知到需要加载新的Segment时,首先会去本地磁盘目录下查找该Segment是否已下载,如果没有,则会从Zookeeper中下载待加载Segment的元信息,此元信息包括Segment存储在何处、如何解压以及如何如理该Segment。Historical Node使用内存文件映射方式将index.zip中的XXXXX.smoosh文件加载到内存中,并在Zookeeper中本节点的served segments目录下声明该Segment已被加载,从而该Segment可以被查询。对于重新上线的Historical Node,在完成启动后,也会扫描本地存储路径,将所有扫描到的Segment加载如内存,使其能够被查询。

2 Broker Node

Broker Node是整个集群查询的入口,作为查询路由角色,Broker Node感知Zookeeper上保存的集群内所有已发布的Segment的元信息,即每个Segment保存在哪些存储节点上,Broker Node为Zookeeper中每个dataSource创建一个timeline,timeline按照时间顺序描述了每个Segment的存放位置。我们知道,每个查询请求都会包含dataSource以及interval信息,Broker Node根据这两项信息去查找timeline中所有满足条件的Segment所对应的存储节点,并将查询请求发往对应的节点。

对于每个节点返回的数据,Broker Node默认使用LRU缓存策略;对于集群中存在多个Broker Node的情况,Druid使用memcached共享缓存。对于Historical Node返回的结果,Broker Node认为是“可信的”,会缓存下来,而Real-Time Node返回的实时窗口内的数据,Broker Node认为是可变的,“不可信的”,故不会缓存。所以对每个查询请求,Broker Node都会先查询本地缓存,如果不存在才会去查找timeline,再向相应节点发送查询请求。

3 Coordinator Node

Coordinator Node主要负责Druid集群中Segment的管理与发布,包括加载新Segment、丢弃不符合规则的Segment、管理Segment副本以及Segment负载均衡等。如果集群中存在多个Coordinator Node,则通过选举算法产生Leader,其他Follower作为备份。

Coordinator会定期(默认一分钟)同步Zookeeper中整个集群的数据拓扑图、元信息库中所有有效的Segment信息以及规则库,从而决定下一步应该做什么。对于有效且未分配的Segment,Coordinator Node首先按照Historical Node的容量进行倒序排序,即最少容量拥有最高优先级,新的Segment会优先分配到高优先级的Historical Node上。由3.3.4.1节可知,Coordinator Node不会直接与Historical Node打交道,而是在Zookeeper中Historical Node对应的load queue目录下创建待加载Segment的临时信息,等待Historical Node去加载该Segment。

Coordinator在每次启动后都会对比Zookeeper中保存的当前数据拓扑图以及元信息库中保存的数据信息,所有在集群中已被加载的、却在元信息库中标记为失效或者不存在的Segment会被Coordinator Node记录在remove list中,其中也包括我们在3.3.3节中所述的同一Segment对应的新旧version,旧version的Segments同样也会被放入到remove list中,最终被逻辑丢弃。

对于离线的Historical Node,Coordinator Node会默认该Historical Node上所有的Segment已失效,从而通知集群内的其他Historical Node去加载该Segment。但是,在生产环境中,我们会遇到机器临时下线,Historical Node在很短时间内恢复服务的情况,那么如此“简单粗暴”的策略势必会加重整个集群内的网络负载。对于这种场景,Coordinator会为集群内所有已丢弃的Segment保存一个生存时间(lifetime),这个生存时间表示Coordinator Node在该Segment被标记为丢弃后,允许不被重新分配最长等待时间,如果该Historical Node在该时间内重新上线,则Segment会被重新置为有效,如果超过该时间则会按照加载规则重新分配到其他Historical Node上。

考虑一种最极端的情况,如果集群内所有的Coordinator Node都停止服务,整个集群对外依然有效,不过新Segment不会被加载,过期的Segment也不会被丢弃,即整个集群内的数据拓扑会一直保持不变,直到新的Coordinator Node服务上线。

4 Indexing Service

Indexing Service是负责“生产”Segment的高可用、分布式、Master/Slave架构服务。主要由三类组件构成:负责运行索引任务(indexing task)的Peon,负责控制Peon的MiddleManager,负责任务分发给MiddleManager的Overlord;三者的关系可以解释为:Overlord是MiddleManager的Master,而MiddleManager又是Peon的Master。其中,Overlord和MiddleManager可以分布式部署,但是Peon和MiddleManager默认在同一台机器上。图3.5给出了Indexing Service的整体架构。

Overlord
Overlord负责接受任务、协调任务的分配、创建任务锁以及收集、返回任务运行状态给调用者。当集群中有多个Overlord时,则通过选举算法产生Leader,其他Follower作为备份。

Overlord可以运行在local(默认)和remote两种模式下,如果运行在local模式下,则Overlord也负责Peon的创建与运行工作,当运行在remote模式下时,Overlord和MiddleManager各司其职,根据图3.6所示,Overlord接受实时/批量数据流产生的索引任务,将任务信息注册到Zookeeper的/task目录下所有在线的MiddleManager对应的目录中,由MiddleManager去感知产生的新任务,同时每个索引任务的状态又会由Peon定期同步到Zookeeper中/Status目录,供Overlord感知当前所有索引任务的运行状况。

Overlord对外提供可视化界面,通过访问https://:/console.html,我们可以观察到集群内目前正在运行的所有索引任务、可用的Peon以及近期Peon完成的所有成功或者失败的索引任务。

MiddleManager
MiddleManager负责接收Overlord分配的索引任务,同时创建新的进程用于启动Peon来执行索引任务,每一个MiddleManager可以运行多个Peon实例。

在运行MiddleManager实例的机器上,我们可以在${ java.io.tmpdir}目录下观察到以XXX_index_XXX开头的目录,每一个目录都对应一个Peon实例;同时restore.json文件中保存着当前所有运行着的索引任务信息,一方面用于记录任务状态,另一方面如果MiddleManager崩溃,可以利用该文件重启索引任务。

Peon
Peon是Indexing Service的最小工作单元,也是索引任务的具体执行者,所有当前正在运行的Peon任务都可以通过Overlord提供的web可视化界面进行访问。

这里写图片描述

5 Real-Time Node

实时节点主要负责实时数据摄入,以及生成Segment文件,有两种数据处理模式,一种为Stream Push,另一种为Stream Pull。

  • Stream Pull

实时节点通过Firehose来消费实时数据,Firehose是Druid中的消费实时数据模型,可以有不同的实现,Druid自带了一个基于Kafka High Level API实现的对于Kafka的数据消费(druid-kafka-eight Firehose)。除了Firehose,实时节点上还有一个重要的角色叫Plumber,主要负责按照指定的周期,对数据文件进行合并。

如果Druid以Stream Pull方式自主地从外部数据源拉取数据从而生成Indexing Service Tasks,我们则需要建立Real-Time Node。Real-Time Node主要包含两大“工厂”:一个是连接流式数据源、负责数据接入的Firehose(中文翻译为水管,很形象地描述了该组件的职责);另一个是负责Segment发布与转移的Plumber(中文翻译为搬运工,同样也十分形象地描述了该组件的职责)。在Druid源代码中,这两个组件都是抽象工厂方法,使用者可以根据自己的需求创建不同类型的Firehose或者Plumber。Firehose和Plumber给我的感觉,更类似于Kafka_0.9.0版本后发布的Kafka Connect框架,Firehose类似于Kafka Connect Source,定义了数据的入口,但并不关心接入数据源的类型;而Plumber类似于Kafka Connect Sink,定义了数据的出口,也不关心最终输出到哪里。

下面就讲讲druid-kafka-eight的原理,结构和一些问题。

当使用druid-kafka-eight从Kafka进行数据消费时,该Firehose可以让实时节点具有很好的可扩展性。当启动多个实时节点时,将使用Kafka Consumer Group的方式从Kafka进行数据获取,通过Zookeeper来维护每个节点的offset情况,无论是增加节点,还是删除节点,通过High API都可以保证Kafka的数据至少被Druid的集群消费一次。Kafka Consumer Group的详细说明,请参考:http://blog.youkuaiyun.com/eric_sunah/article/details/44243077

通过druid-kafka-eight实现的高可用机制,可用下图进行表示: 
这里写图片描述

通过druid-kafka-eight保证的高可用,仔细分析可以发现会存在生成的segment文件不能被传到Deepstorage的缺陷,解决该问题可以通过两个办法

  1. 重启实时节点
  2. 使用Tranquility+Index Service的方式对Kafka的数据进行精确的消费与备份。由于Tranquility可以通过Push的方式将制定的数据推到Druid集群,一次它可以对同一个Partition数据创建多个副本,当某个数据消费任务失败时,系统可以准确的使用另外一个相同任务所创建的Segment数据块。
 更多的信息在这里:http://blog.youkuaiyun.com/eric_sunah/article/details/44243077

  • Stream Push
      如果采用Stream Push策略,我们需要建立一个“copy service”,负责从数据源中拉取数据并生成Indexing Service Tasks,从而将数据“推入”到Druid中,我们在druid_0.9.1版本之前一直使用的是这种模式,不过这种模式需要外部服务Tranquility,Tranquility组件可以连接多种流式数据源,比如Spark-Streaming、Storm以及Kafka等,所以也产生了Tranquility-Storm、Tranquility-Kafka等外部组件。Tranquility-Kafka的原理与使用将在3.4节中进行详细介绍。

6 外部拓展

Druid集群依赖一些外部组件,与其说依赖,不如说正是由于Druid开放的架构,所以用户可以根据自己的需求,使用不同的外部组件。

Deep Storage
Druid目前支持使用本地磁盘(单机模式)、NFS挂载磁盘、HDFS、Amazon S3等存储方式保存Segments以及索引任务日志。

Zookeeper
Druid使用Zookeeper作为分布式集群内部的通信组件,各类节点通过Curator Framework将实例与服务注册到Zookeeper上,同时将集群内需要共享的信息也存储在Zookeeper目录下,从而简化集群内部自动连接管理、leader选举、分布式锁、path缓存以及分布式队列等复杂逻辑。

Metadata Storage
Druid集群元信息使用MySQL 或者PostgreSQL存储,单机版使用derby。在Druid_0.9.1.1版本中,元信息库druid主要包含十张表,均以“druid_”开头,如图3.7所示。
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

7 加载数据

对于加载外部数据,Druid支持两种模式:实时流(real-time ingestion)和批量导入(batch ingestion)。

Real-Time Ingestion
实时流过程可以采用Apache Storm、Apache Spark Streaming等流式处理框架产生数据,再经过pipeline工具,比如Apache Kafka、ActiveMQ、RabbitMQ等消息总线类组件,使用Stream Pull 或者Stream Push模式生成Indexing Service Tasks,最终存储在Druid中。

Batch Ingestion
批量导入模式可以采用结构化信息作为数据源,比如JSON、Avro、Parquet格式的文本,Druid内部使用Map/Reduce批处理框架导入数据。

8 高可用性

Druid高可用性可以总结以下几点:

Historical Node
如3.3.4.1节中所述,如果某个Historical Node离线时长超过一定阈值,Coordinator Node会将该节点上已加载的Segments重新分配到其他在线的Historical Nodes上,保证满足加载规则的所有Segments不丢失且可查询。

Coordinator Node
集群可配置多个Coordinator Node实例,工作模式为主从同步,采用选举算法产生Leader,其他Follower作为备份。当Leader宕机时,其他Follower能够迅速failover。
即使当所有Coordinator Node均失效,整个集群对外依然有效,不过新Segments不会被加载,过期的Segments也不会被丢弃,即整个集群内的数据拓扑会一直保持不变,直到新的Coordinator Node服务上线。

Broker Node
Broker Node与Coordinator Node在HA部署方面一致。

Indexing Service
Druid可以为同一个Segment配置多个Indexing Service Tasks副本保证数据完整性。

Real-Time
Real-Time过程的数据完整性主要由接入的实时流语义(semantics)决定。我们在0.9.1.1版本前使用Tranquility-Kafka组件接入实时数据,由于存在时间窗口,即在时间窗口内的数据会被提交给Firehose,时间窗口外的数据则会被丢弃;如果Tranquility-Kafka临时下线,会导致Kafka中数据“过期”从而被丢弃,无法保证数据完整性,同时这种“copy service”的使用模式不仅占用大量CPU与内存,又不满足原子操作,所以在0.9.1.1版本后,我们使用Druid的新特性Kafka Indexing Service,Druid内部使用Kafka高级Consumer API保证exactly-once semantics,尽最大可能保证数据完整性。不过我们在使用中,依然发现有数据丢失问题。

Metadata Storage
如果Metadata Storage失效,Coordinator则无法感知新Segment的生成,整个集群中数据拓扑亦不会改变,不过不会影响老数据的访问。

Zookeeper
如果Zookeeper失效,整个集群的数据拓扑不会改变,由于Broker Node缓存的存在,所以在缓存中的数据依然可以被查询。

9 数据分层

Druid访问控制策略采用数据分层(tier),有以下两种用途:

将不同的Historical Node划分为不同的group,从而控制集群内不同权限(priority)用户在查询时访问不同group。

通过划分tier,让Historical Node加载不同时间范围的数据。例如tier_1加载2016年Q1数据,tier_2加载2016年Q2数据,tier_3加载2016年Q3数据等;那么根据用户不同的查询需求,将请求发往对应tier的Historical Node,不仅可以控制用户访问请求,同时也可以减少响应请求的Historical Node数量,从而加速查询。

https://blog.youkuaiyun.com/eric_sunah/article/details/78563634

大数据Apache Druid(四):使用Imply进行Druid集群搭建 Imply基于Druid进行了一些组件的开发,是Druid的集成包,提供开源版本和商业版本,类似CDH一样,使安装Druid简化了部署,Imply也是Druid团队开发。我们可以使用Imply安装Druid,在Imply的官网https://imply.io进行下载,经过测试这个版本在提交加载数据任务时有一些bug(加载数据任务总是失败)。node3node4node5将imply安装包上传到node3“/software”目录下,并解压。... 阅读详情

相关推荐

druid-spark-batch, 在批处理作业中,用于使用Spark的德鲁伊索引插件.zip

druid-spark-batch, 在批处理作业中,用于使用Spark的德鲁伊索引插件 druid-spark-batch用于批处理作业中使用Spark的德鲁伊索引插件这个存储库拥有一个德鲁伊扩展,用于将Spark作为运行批处理作业的引擎生成发布 commnand sbt clean test publish-

Druid.io系列(三): Druid集群节点

Druid集群节点

njpjsoftdev的博客 1万+

批处理作业批处理作业

批处理作业批处理作业批处理作业批处理作业

Druid.io数据存储(segment文件)与特点

druid.io查询快?为什么快?怎么存?怎么写入?怎么查的?等等问题 segment文件 关于druid.io存储的底层segment文件格式可以参考:作者: 康凯森的Druid Storage 原理,写的挺不错的,不过最好还是自己去分析segment二进制文件,这样理解更深入,而这种存储方案说不定哪天我们就有借鉴意义。我补充如下,并回顾下自己的学习,感性认识下:列存储,倒排索引等概念 Segment由dataSource_beginTime_endTime_version_shardNumber唯一标

master-dragon的专栏 1195

ESP32-S3 + TB6600驱动42步进电机:从基础接线到AccelStepper库平滑加减速实战

本文详细介绍了如何使用ESP32-S3开发板和TB6600驱动器控制42步进电机,从基础接线到利用AccelStepper库实现平滑加减速控制。内容涵盖硬件连接、基础驱动代码、AccelStepper库的安装与参数调优,以及高级技巧与故障排除,帮助创客实现工业级精准控制。

weixin_42632434的博客 282

Druid的介绍、使用和原理架构(数据摄取、数据查询)

Druid是MetaMarket公司研发的一款针对海量数据进行高性能实时分析的OLAP引擎(包含存储引擎和分析引擎当前已经捐献给Apache基金会。低延迟交互式查询:Druid提供低延迟实时数据摄取(入库),并采用预聚合、列式存储、位图索引 等手段使得海量数据分析能够亚秒级响应。高可用性( High Available ):Druid 使用 HDFS/S3 作为 Deep Storage,Segment 会在多个Historical 节点上进行加载;摄取数据时也可以多副本摄取,保证数据可用性和容错性。

迷雾总会解 9153

华为昇腾 Atlas 200I DK A2 开发板编程接口学习入门:系统安装和开发步骤、注意事项与典型案例实战

华为昇腾开发板编程接口指南:从入门到进阶 本文系统介绍了华为昇腾开发板的编程接口体系,涵盖MindXSDK和AscendCL两大核心框架。MindXSDK提供高层封装接口,适合快速搭建视觉应用;AscendCL则是底层接口,需手动管理设备内存。文章详细讲解了: 开发环境搭建步骤,包括系统配置、依赖安装 MindXSDK组件化编程流程(图像分类实例) AscendCL底层开发方法(内存管理、模型推理) 常见问题解决方案和调试技巧 两个典型应用实例(摄像头目标检测和图像分类) 针对小白开发者,推荐从MindXS

bother3000的博客 2424

druid.io 优化

策略 可以使用两种不同的策略执行GroupBy查询。集群的默认策略由代理上的“druid.query.groupBy.defaultStrategy”运行时属性确定。这可以在查询上下文中使用“groupByStrategy”覆盖。如果既未设置上下文字段也未设置属性,则将使用“v2”策略。 “v2”是默认设计,旨在提供更好的性能和内存管理。此策略使用完全堆外映射生成每段结果。数据节点使用完全堆外...

梦想成真那天 2230

如何成为一名高级数字 IC 设计工程师(6-7)数字 IC 验证篇:DEBUG 技巧

不懂验证的设计不是好的设计;UVM 验证思维是指导缜密的芯片设计的导师;推荐书籍《芯片验证漫游指南》。

新芯设计的博客 1605

深度学习论文: Cultivated Land Extraction from High-Resolution Remote Sensing Image

深度学习论文: Cultivated Land Extraction from High-Resolution Remote Sensing Image The Winning Solution to the iFLYTEK Challenge 2021 Cultivated Land Extraction from High-Resolution Remote Sensing Image PDF: https://arxiv.org/pdf/2202.10974.pdf PyTorch代码: https:

mingo_敏 3480

Druid.io实时大数据原理介绍

Druid.io是“神马”?Druid.io是一个开源的,分布式的,列式存储的,适用于实时数据分析的OLAP系统。它能够快速聚合、灵活过滤、毫秒级查询、和低延迟数据导入。2011年,MetaMarkets公司为了解决广告交易中海量实时数据的分析问题,在尝试各种SQL和NoSQL方案后,决定自行设计并创建Druid并于2013年开源。Druid被设计成支持PB级别数据量每天处理数十亿流式事件。Dru...

hellobabygogo3的专栏 5002

基于YOLOv8n的FPGA无PS端PL部署完整实现方案

本文提出了一种将YOLOv8n目标检测模型完整部署到FPGA纯PL端的实现方案。通过PyTorch训练和INT8量化技术,结合Vitis AI工具链,将模型转换为适合FPGA实现的硬件描述。方案详细阐述了从模型训练、量化校准到FPGA硬件设计的全流程,重点解决了无PS端部署的架构设计、资源优化和实时性保障等关键技术挑战。实验结果表明,该方案在Xilinx Virtex-690T FPGA上实现了30FPS以上的实时目标检测性能,为边缘计算场景提供了高效的硬件加速解决方案。

huanghm88的专栏 507

Druid.io系列(三):Druid集群节点

Druid.io系列(三):Druid集群节点2016-10-29 09:34:09      0个评论    来源:njpjsoftdev的博客  收藏   我要投稿1 Historical NodeHistorical Node的职责单一,就是负责加载Druid中非实时窗口内且满足加载规则的所有历史数据的Segment。每一个Historical Node只与Zookeeper保持同步,不与其...

大JAVA解决方案 2165

网格质量评价

CFD中评价网格质量的方法

B_etter_Man的博客 1万+

YOLO26改进策略【Head】| (独家改进)轻量化检测头:利用 EfficientNet 中的移动倒置瓶颈模块 MBConv 改进检测头

本文记录的是基于移动倒置瓶颈 MBConv 的 YOLO26 的检测头轻量化改进方法研究。采用了独特的倒置瓶颈结构,通过的操作以及,在高效提取特征的同时极大地降低了计算量。本文将的设计优势融入j检测头中,使其在目标检测任务中不仅能够更精准地识别各类目标,还能在计算资源有限的情况下快速响应,展现出更为卓越的实时检测能力。EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks的实现代码如下: 首先在代码中加入如下代码: 其

Limiiiing的博客 286

Apache Druid 集群搭建及使用【超全面】

一、Druid 简介 1.1 大数据分析平台架构分类 数据分析的基础架构可以分为以下几类: 使用Hadoop/Spark 进行分析 将Hadoop/Spark 的结果导入 RDBMS 中提供数据分析;补充说明:RDBMS一般指关系数据库管理系统 将结果注入到容量更大的NoSQL中,解决数据分析的存储瓶颈,例如:HBase 将数据源进行流式处理,对接流式计算框架,例如:Flink、Spark Streaming,结果保存到RDBMS、NoSQL中 将数据源进行流式处理,对接分析数据库,例如:

认知 行动 坚持 4794

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

druid集群的搭建

1、 启动zookeeper      下载zookeeper安装包,解压、安装      bin/zkServer.sh start 2、 修改druid配置文件 (1)      conf/druid/_common/common.runtime.properties             a、修改zookeeper列表                           b

suphieLiang的博客 4003

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Druid(Druid.io)安装(单机&集群)

Druid安装部署 一、环境需求 Java 8 (8u92 +) Linux, Mac OS X, or other Unix-like OS(不支持Windows系统) Zookeeper (3.4 +) Druid下载: 官网:https://druid.apache.org,进入官网后点击“Download”,进入下载界面,当前最新版本0.16,这里我们选择编译版本下载; ...

凌晨1点21分的专栏 2660

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Druid.io系列(二):基本概念与架构

在介绍Druid架构之前,我们先结合有关OLAP的基本原理来理解Druid中的一些基本概念。 1 数据 以图3.1为例,结合我们在第一章中介绍的OLAP基本概念,按列的类型上述数据可以分成以下三类: 时间序列(Timestamp),Druid既是内存数据库,又是时间序列数据库,Druid中所有查询以及索引过程都和时间维度息息相关。Druid底层使用绝对毫秒数保存时间戳,默认使用ISO-86...

千淘万漉 329

druid.io_druid.io本地集群搭建 / 扩展集群搭建

druid.io 是一个比较重型的数据库查询系统,分为5种节点 。 在此就不对数据库进行介绍了,如果有疑问请参考白皮书: http://pan.baidu.com/s/1eSFlIJS   单台机器的集群搭建 首先说一下通用的集群搭建,基于 0.9.1.1 下载地址  http://pan.baidu.com/s/1hrJBjlq: 修改 conf/

迎难而上 5649

Apache Druid 集群搭建

Apache Druid 集群搭建部署说明搭建准备配置修改配置分发启动测试 Install Imply Private on Linux · 2021.09 集群部署 · ApacheDruid中文技术文档 (apache-druid.cn) 部署说明 Imply 基于 Apache Druid 开发了一整套大数据分析解决方案,提供开源社区版本和商业版,简化了 Apache Druid 的部署 搭建准备 ① 环境准备 3 台云服务器 + 1 台云数据库 Mysql ( 5.7 ) 节点 node

半吊子Kyle的博客 881

druid集群安装

一.下载安装(以下操作均需在所有节点执行) 创建/opt/druid目录作为安装目录。 下载最新版本druid wget http://static.druid.io/artifacts/releases/druid-0.12.3-bin.tar.gz 解压下载后的文件并重命名为druid tar -zxvf druid-0.12.3-bin.tar.gz;mv druid-0.12.3 d...

asfjgvajfghaklsbf的博客 1296

Apache Druid 无 ZooKeeper 部署:kubernetes-extensions 节点发现与领导选举深度实践

Apache Druid 集群在传统部署中依赖 ZooKeeper 完成节点发现(Node Discovery)与领导选举(Leader Election)。`druid-kubernetes-extensions` 扩展将这两项基础能力直接迁移到 Kubernetes API Server 之上:节点通过给自己的 Pod 打标签(labels)/注解(annotations)完成"自我宣布",通

gitblog_01052的博客 978

druid.io出现的问题及解决方法

近期由于公司需要,研究了druid.io,下面是我遇到的一些问题以及解决办法,当做记录。 使用的druid.io版本为0.12.3 1、使用druid-hdfs-storage扩展将hdfs用于深度存储。使用Map / Reduce作业从hadoop批量加载数据。 公司已有的集群是CDH-5.10.1版本,该版本的cdh使用hadoop2.6.0,druid.io的0.12.3版本中自带的h...

youyoufusheng的博客 1435

从零搭建 Apache Druid 集群:硬件选型、深度存储与多节点部署实战指南

本教程以当前 Apache Druid 仓库(`gh_mirrors/druid7/druid`)的 `docs/content/tutorials/cluster.md` 为骨架,完整演示如何从一台"协调服务器 + 数据服务器 + Broker"的最小三角色拓扑起步,搭建一个可横向扩展、可容错的生产级 Druid 集群。读完本文,你将掌握 Druid 各进程的角色划分、S3/HDFS 深度存储的

gitblog_00537的博客 159
上一篇: Druid.io系列4:索引过程分析
下一篇: Druid.io系列5:查询过程
大树叶
博客等级 码龄12年 1171粉丝 664原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值