Druid使用Kafka Indexing Service方式push数据以及实时节点pull数据步骤

druid数据摄入 数据摄入 Druid的数据摄入有两种方式,一种是流式数据源,一种是静态数据源 数据源种类 静态数据源:数据已经生产完毕,不会有新数据产生的数据源,静态数据通常表现为离线数据,静态服务可以通过实时节点摄入,也可以通过索引服务启动一个任务摄入。 流式数据源:指的是持续不断地生产数据的数据源。如日志,消息队列等。对于流式数据的摄取,Druid提供了两种方法,分别是Push(推送)和Pull(拉取... 阅读详情


  Druid中从kafka摄入数据,存在两种方式,一种是pull,需要依赖实时节点,一种是push,需要依赖Kafka Indexing Service(kafka索引服务)

     注:在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,尽最大可能保证数据完整性。

     步骤一:下载Kafka Indexing Service扩展,将扩张加入到druid目录下的extensions目录下。

     步骤二:将扩展绑定在middlemanager以及overlord上,在开发中,实际配置方案为直接配置/opt/druid/conf/druid/_common/common.runtime.properties,在druid.extensions.loadList中加入Kafka Indexing Service,如图:

                   ,如果不进行配置,无法使用kafka索引服务

     步骤三:在druid目录下的var目录下新建tmp目录作为java.io.tmpdir(jvm.config配置文件)目录。如果目录不存在。Druid报错

     步骤四:编写Json配置文件:示例如下

  1. {
  2. "type": "kafka",
  3. "dataSchema": {
  4. "dataSource": "kafka3", //Druid中的表名
  5. "parser": {
  6. "type": "string",
  7. "parseSpec": {
  8. "format": "json",
  9. "timestampSpec": { //时间戳列
  10. "column": "timestamp",
  11. "format": "auto"
  12. },
  13. "dimensionsSpec": { //维度列
  14. "dimensions": [ "timestamp", "from"],
  15. "dimensionExclusions": []
  16. }
  17. }
  18. },
  19. "metricsSpec": [ //指标列
  20. {
  21. "name": "count",
  22. "type": "count"
  23. },
  24. {
  25. "name": "PVSum",
  26. "fieldName": "PVSum",
  27. "type": "longSum"
  28. },
  29. {
  30. "name": "UVSum",
  31. "fieldName": "UVSum",
  32. "type": "longSum"
  33. }
  34. ],
  35. "granularitySpec": { //查询维度
  36. "type": "uniform",
  37. "segmentGranularity": "DAY",
  38. "queryGranularity": "NONE"
  39. }
  40. },
  41. "tuningConfig": { //优化型配置
  42. "type": "kafka",
  43. "maxRowsPerSegment": 75000,
  44. "workerThreads": 2
  45. },
  46. "ioConfig": { //指明数据来源
  47. "topic": "zhangzl",
  48. "consumerProperties": {
  49. "bootstrap.servers": "ip1:9092,ip2:9092,ip3:9092"
  50. },
  51. "useEarliestOffset": true,
  52. "taskCount": 1,
  53. "replicas": 1,
  54. "taskDuration": "PT1M"
  55. }
  56. }

 步骤五: 确认workerThreads配置为(taskCount * replicas +1);

 步骤六:调整配置项useEarliestOffset为true,否则druid只会读取最新数据,不会从beginning开始读取数据。

实时节点使用步骤:

注:使用tranquility为0.8.2版本,在使用过程中尝试使用0.8.0版本以及0.8.1版本均为成功,具体原因不明,下载地址:http://static.druid.io/tranquility/releases/tranquility-distribution-0.8.2.tgz

步骤一:将下载好的tranquility-distribution-0.8.2.tgz解压后的目录移动到Druid的home目录下。

步骤二:编辑配置文件,示例如下:

  1. {
  2. "dataSources": [{
  3. "spec": {
  4. "dataSchema": {
  5. "parser": {
  6. "type": "string",
  7. "parseSpec": {
  8. "timestampSpec": { //时间戳列,必须指定,实时节点根据该列对时间窗口进行判断
  9. "column": "timestamp",
  10. "format": "auto"
  11. },
  12. "dimensionsSpec": { //维度列
  13. "dimensions": [ "timestamp", "from"],
  14. "dimensionExclusions": []
  15. },
  16. "format": "json"
  17. }
  18. },
  19. "dataSource": "twitter", //Druid中的表名
  20. "granularitySpec": {
  21. "type": "uniform",
  22. "segmentGranularity": "DAY",
  23. "queryGranularity": "NONE"
  24. },
  25. "metricsSpec": [{ //指标列
  26. "name": "count",
  27. "type": "count"
  28. },
  29. {
  30. "name": "PVSum",
  31. "fieldName": "PVSum",
  32. "type": "longSum"
  33. },
  34. {
  35. "name": "UVSum",
  36. "fieldName": "UVSum",
  37. "type": "longSum"
  38. }
  39. ]
  40. },
  41. "tuningConfig": {
  42. "type": "realtime",
  43. "maxRowsInMemory": "75000", //内存中存储的最大数据量,超过该数据量之后会刷新到Druid中
  44. "intermediatePersistPeriod": "PT1M", //时间窗口
  45. "windowPeriod": "PT10M" //延时窗口,超过时间窗口后的数据,如果还在延时窗口中,则还会被处理,超过延时窗口的数据会被丢弃
  46. }
  47. },
  48. "properties": {
  49. "task.partitions": "2",
  50. "task.replicants": "2",
  51. "topicPattern": "twitter" //kafka topic
  52. }
  53. }],
  54. "properties": {
  55. "zookeeper.connect": "ip1:2181,ip2:2181,ip3:2181", //druid zk
  56. "zookeeper.timeout": "PT20S",
  57. "druid.selectors.indexing.serviceName": "druid/overlord",
  58. "druid.discovery.curator.path": "/druid/discovery",
  59. "kafka.zookeeper.connect": "ip1:2182,ip2:2182,ip3:2182", //kafka zk
  60. "kafka.group.id": "tranquility-kafka",
  61. "consumer.numThreads": "2",
  62. "commit.periodMillis": "15000",
  63. "reportDropsAsExceptions": "false"
  64. }
  65. }

步骤三:进入到目录下使用如下命令:bin/tranquility kafka -configFile <配置文件路径>进行启动

步骤四:使用kafka生产消息,注:时间戳列采用yyyy-MM-ddTHH:mm:ssZ格式,否则数据无法解析,应该可以配置,但未找到配置点。


索引服务与实时节点比较:

在Druid重启时,索引服务不会丢数据,但是对于实时节点,如果重启太慢,数据超过了时间窗口以及延时窗口,这部分数据会被丢弃。

索引服务实际是在指定时间内处理数据,然后将数据积压,可以配置提交时间,到达提交时间时进行提交。

索引服务在Druid重启后,不会重读消费过的数据,也就是offset不会从begining开始,数据不会重叠。

索引服务出现在tranquility服务之后,实际是对实时节点的一个补充,但是索引服务只在0.9.1.1版本之后进行支持

使用Kafka、Flink、Druid构建实时数据系统架构 Kafka、Flink和Druid一起使用时,可以创建一个实时数据架构,减少这些等待时间。在这篇文章中,我们将探讨如何利用Kafka、Flink、Druid实现广泛的实时数据系统架构。 阅读详情

相关推荐

druid接入kafka indexing service整个流程

先介绍下我们的druid集群配置 Overload 1台 Coordinator 1台 Middle manager 3台 Broker 3台 Historical一共12台,其中cold 6台,hot 6台 druid版本:0.10, 0.9之后即可支持Kafka indexing service 目前的druid主要用来做批量灌入,包括天级,小时级,五分钟级 由于这个五分...

千淘万漉 3644

Druid引入的常用扩展

1.druid-kafka-indexing-service Kafka Indexing Service是Druid推出的利用Druid的Indexing Service服务实时消费Kafka数据的插件。该插件会在Overlord中启动一个supervisor,supervisor启动之后会在 Middlemanager中启动一些indexing tasks,这些tasks会连接到Kafka集...

liyanling的博客 787

druid配置读取kafka实时数据流,使用avro的schema使用注意问题

druid能够新建任务,但是总是不成功,原来是配置需要添加“http://”配置如下:{ "type": "kafka", "dataSchema": { "dataSource": "datasource-test5", "parser": { "type": "avro_stream", "avroBytesDecoder&

gu15651687811的博客 1930

kafka+druid

启动kafka Apache Kafka是一个高吞吐量的消息中间件,可以和Druid配合使用。本教程中使用的是Kafka 0.9.0.0,可以通过如下指令下载kafka: curl -O http://www.us.apache.org/dist/kafka/0.9.0.0/kafka_2.11-0.9.0.0.tgz tar -xzf kafka_2.11-0.9.0.0.tgz cd k...

eagooqi的专栏 2872

【信息科学与工程学】计算机科学与自动化——第三百零四篇 高性能系统开发指南01

高并发:限流、熔断、降级高性能:红包拆分、多级缓存、大Key/热Key拆分、Pipeline、线程池、RocketMQ零丢失、幂等、分布式锁、集群缩容、分批入库海量数据处理:日志分表分片、跨表查询、冷热分层、大数据引擎服务器选型系统安全:网关安全、服务器安全、云存储安全、风控、监控、测试数据一致性:缓存与数据库一致性、大厂方案、蓝绿回滚、流量一致性、流程一致性项目与团队管理:流程问题、管理问题(风险、成本、人员、文档、培训)稳定性建设:上线三板斧、线上五步闭环、混沌工程、容量规划。

weixin_49199313的博客 251

使用Druid将数据加载到Kafka

最后,我们运行了Druid加载任务,并验证了数据加载的结果。通过这种方式,我们可以实现将实时数据加载到Kafka中,为后续的流处理和实时分析提供支持。首先,我们需要在Kafka中创建一个主题(topic),作为数据加载的目标。接下来,我们需要配置Druid的加载任务,以将数据发送到Kafka主题。完成配置后,我们可以运行Druid加载任务,将数据发送到Kafka主题。这将显示Kafka主题中的所有数据,如果你看到了你预期的数据,则说明Druid成功将数据加载到Kafka中。三、配置Druid加载任务。

DeoSql的博客 285

【Druid】(八)Apache Druid 核心插件 Kafka Indexing Service & SLS Indexing Service

本文将介绍在 E-MapReduce 中如何使用 Apache Druid Kafka Indexing Service 实时消费 Kafka 数据。

云祁QI 1098

告别谷歌翻译失效!手把手教你用Immersive Translate插件实现双语网页阅读(附Chrome/Edge/Firefox保姆级配置)

本文详细介绍了如何使用Immersive Translate插件实现双语网页阅读,解决谷歌翻译失效的问题。通过Chrome、Edge和Firefox的保姆级配置指南,帮助用户轻松安装和使用这款支持双语对照、智能识别网页内容的翻译插件,提升外文资料阅读效率。

weixin_28683689的博客 488

Druid配置——Kafka Indexing Service(Kafka索引服务)

Kafka Indexing Service Kafka索引服务可以在Overlord上配置,通过管理Kafka索引任务的创建和生命周期来促进Kafka的消费。这些索引任务使用Kafka自己的分区和偏移机制读取事件,因此能够提供完全一次摄取的保证。他们还能够从Kafka读取非近期事件,并且不受使用Tranquility对其他摄取机制施加的窗口期限的影响。主管监督索引任务的状态,以协调切换,管理故障...

Niclas的博客 2036

Mac和VScode配置fortran

macOS系统 vscode fortran gfortran 终端

weixin_43047707的博客 2412

服务器安全配置:二、本地安全策略设置

密码最长使⽤期限”设置为“90天”;“⽤可以还原的加密来存储密码”设置为“禁⽤”“复位账户锁定计数器”设置为15分钟,贴图这里是我自己设置的时间,15分钟也够用,具体看自己需要。”网络访问: 不允许 SAM 帐户和共享的匿名枚举“设置为“已启用””网络访问: 限制对命名管道和共享的匿名访问“设置为“已启用””网络访问: 不允许匿名枚举 SAM 帐户“设置为“已启用”“关机: 允许系统在未登录的情况下关闭”设置为“已禁用”(1)交互式登录:不显示最后的⽤户名”设置为“已启⽤”

weixin_48825672的博客 3137

Druid使用Kafka Indexing Service方式push数据和使用实时节点pull数据两种方式对比

 Druid中从kafka摄入数据,存在两种方式,一种是pull,需要依赖实时节点,一种是push,需要依赖Kafka Indexing Service(kafka索引服务)      注:在0.9.1.1版本前使用Tranquility-Kafka组件接入实时数据,由于存在时间窗口,即在时间窗口内的数据会被提交给Firehose,时间窗口外的数据则会被丢弃;如果Tranquility-Kafk...

千淘万漉 1001

Python学习24:中国古代数学问题——物不知数(Python123)

意思是说有一些物品,不知道有多少个,3个3个数的话,还多出2个;5个5个数则多出3个;7个7个数也会多出2个。题目为‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬:今有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二,问物几何?现假设物品总数不超过n (n

weixin_60530224的博客 2万+

Druid Kafka indexing service (Druid 导入Kafka 数据)

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34272308的博客 333

从工具选型到落地实践:吃透 SAP Fiori Launchpad 配置工具体系

摘要: SAP Fiori Launchpad配置远非简单添加应用和分配角色,涉及技术目录、业务目录、Spaces/Pages等多层管理。官方推荐新工具分工:技术目录用FLPAM维护应用定义,业务目录用FLPCM编排应用组合,Spaces/Pages优化用户体验布局,而传统Groups模式已被标记弃用。这种分层治理模式(定义层-编排层-展示层)能有效解决传输混乱、升级兼容性问题,尤其适合大规模项目实施。关键在于区分技术配置与业务呈现,避免将所有功能堆砌在单一旧工具中。(149字)

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 103

【ZYNQ】VDMA 的使用

VDMA, Video Direct Memory Access 是 Xilinx 官方提供的高速内存存取 IP,采用 AXI4-Stream 与 AXI4 协议实现存储映射接口(Memory Map)与非存储映射接口(Non-Memory Map)接口的转换,主要用于视频数据缓存,同时提供帧缓存与帧同步控制功能。本文主要介绍 AXI VDMA 的配置与使用方法。

洋洋Young的博客 1582

apache druid 与kafka整合使用

前言 在上一篇,我们了解了apache druid的搭建,以及如何快速导入外部数据源到apache druid中进行数据分析和使用 本篇,我们结合一个实际的简单的应用场景,来说说apache druid如何在实际项目中进行使用 业务场景 如下所示,是一个很常见的数据分析的业务,通常来说,很多实时或准实时的数据(这里理解为外部数据源)需要通过kafka进行中转,即发送到kafka中, apache druid提供了导入外部数据源的功能,可以接收来自kafka指定topic的数据,然后支持数据分析,将kafka

congge 4974

使用curl命令出现fatal: unable to access ‘https://github.com/nvm-sh/nvm.git/‘: Encountered end of file的解决方案

本文主要介绍了使用curl命令出现fatal: unable to access ‘https://github.com/nvm-sh/nvm.git/’: Encountered end of file的解决方案,希望能对使用curl命令的同学们有所帮助。 文章目录 1. 问题描述 2. 解决方案

weixin_43178406的博客 1万+

使用docker安装zookeeper、kafka、druid进行摄取数据

Druid中的所有数据都被组织成段,这些段是数据文件,通常每个段最多有几百万行。在Druid中加载数据称为摄取,它包括从源系统读取数据并基于该数据创建段。在大多数摄取方法中,加载数据的工作由MiddleManager进程完成。 Druid数据存储在数据源中,与传统关系型数据库中的表类似。 Druid把数据集分为三个部分: Timestamp column(时间戳):将时间字段单独处理,是因为Druid的所有查询都是围绕时间轴进行的。 Dimension columns(维度列): 维度列是数据的属性,是按原

qq_41358574的博客 3533

Cesium 场景特效之【全球海洋】GL2兼容版

Cesium 场景特效之【全球海洋】GL2兼容版

喜欢钻研前端和分享技术 1280

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Apache Druid 数据摄取---本地数据和kafka流式数据

Durid概述 Apache Druid是一个集时间序列数据库、数据仓库和全文检索系统特点于一体的分析性数据平台。本文将带你简单了解Druid的特性,使用场景,技术特点和架构。这将有助于你选型数据存储方案,深入了解Druid存储,深入了解时间序列存储等。 Apache Druid是一个高性能的实时分析型数据库。 上篇文章,我们了解了Druid的加载方式, 咱么主要说两种,一种是加载本地数据,一种是通过kafka加载流式数据。 数据摄取 4.1 加载本地文件 我们导入演示案例种的演示文件 4.1.1.

博学谷狂野架构师的博客 1248

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

大数据-153 Apache Druid 实时接入 Kafka:从摄取到查询的完整实战

「Kafka→Apache Druid」的实时摄取实战:以网络流量 JSON 为例,通过 Druid 控制台的 Streaming/Kafka 向导完成接入、解析时间列(ts→__time)、设定维度与指标(count、max(packets)、min(bytes)、sum(cost)),并在 Rollup=minute 和按日分区(uniform)下生成可查询的 segments,最终用 SQL 验证结果。文中演示环境包含 Kafka 2.7.2(ZK 模式,单节点);Druid版本以控制台

谢谢你的喜欢 我们一起无限进步 5276

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

从Apache Flink到Kafka再到Druid的实时数据传输,用于分析/决策

通过使用实时分析,企业可以快速有效地对用户行为模式做出反应。这使他们能够利用可能错过的机会,防止问题变得更糟。Apache Kafka 是一个流行的事件流平台,可用于实时摄取从多个垂直领域(如物联网、金融交易、库存等)的各种来源生成的数据/事件。然后,这些数据可以流式传输到多个下游应用程序或引擎中,以便进一步处理和最终分析,以支持决策。Apache Flink 是一个强大的引擎,用于在到达 Kaf...

1293

Druid 使用 Kafka 将数据载入到 Kafka

将数据载入到 Kafka 现在让我们为我们的主题运行一个生成器(producer),然后向主题中发送一些数据! 在你的 Druid 目录中,运行下面的命令: cd quickstart/tutorial gunzip -c wikiticker-2015-09-12-sampled.json.gz > wikiticker-2015-09-12-sampled.json 在你的 Kafka 的安装目录中,运行下面的命令。请将 {PATH_TO_DRUID} 替换为 Druid 的安装目录:

HONEY MOOSE 536

mysql 导入 druid_druid导入数据的几种方式

Stream Push通过Tranquility连接外部数据源,读取数据源数据,然后将数据写到druid,它可以读取流数据或者批数据。ServerDruid用Tranquility Server连接Druid middleManagers and historical,Tranquility server启动方式:bin/tranquility server -configFile /serv...

weixin_33514864的博客 548
上一篇: 调试查看tcp全连接和半连接
下一篇: MQTT客户端--基于paho实现(Java)
王树民
博客等级 码龄10年 912粉丝 560原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值