问题标签 [druid]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1595 浏览

druid - Druid:如何在内存中缓存所有历史节点数据

我在历史节点上存储了大约 10GB 的数据。但是,该节点的内存消耗约为 2GB。

当我启动一个选择查询时,在 30 多秒内第一次返回结果。接下来,它们排在第二位(因为经纪人缓存)。

我关心的是将任何查询的第一次选择减少到一秒钟。为了达到这样的性能,我认为历史节点将所有数据存储在内存中是一个好的开始。

问题:为了强制历史节点缓存所有数据在内存中的配置参数是什么?

0 投票
1 回答
773 浏览

emr - 数据摄取任务:Hadoop 在本地而不是远程 Hadoop EMR 集群中运行

我已经设置了一个多节点 druid 集群:1)1 个节点作为协调器和霸主(m4.xl)运行 2)2 个节点,每个节点都运行历史管理器和中间管理器。(r3.2xl) 3) 1 个节点运行代理 (r3.2xl)

现在我有一个 EMR 集群正在运行,我想将它用于摄取任务,问题是每当我尝试通过 CURL 命令提交作业时,该作业总是在两个中间管理器中作为本地 hadoop 作业开始,而不是提交给远程 EMR 集群。我的数据位于 S3 中,并且 S3 也配置为深度存储。我还将 EMR master 中的所有 jar 复制到hadoop-dependencies/hadoop-client/2.7.3/

德鲁伊版本:0.9.2 EMR 版本:5.2

请找到附加的索引作业、通用运行时属性和中间管理器运行时属性。

  • Q1) 如何让作业提交到远程 EMR 集群。
  • Q2)索引任务的日志没有出现在overlord:8090上,如何启用它。

文件:data_index.json

文件:common.runtime.properties

文件:中层管理器 runtime.properties

0 投票
1 回答
631 浏览

cassandra - 在 Druid/Cassandra 上的数据库中每秒插入 100 万行以上的数据

我们有大量数据涌入,1 秒内大约有 800 万行。每行有 12 个数值(时间戳、整数和浮点数,但没有文本)。我正在寻找流式插入,但如果它可以达到速度,我们可以使用批量插入进行管理。

查询:我们的查询基本上是聚合。

我看过Druid,但它不支持我们绝对需要的纳秒时间戳。有没有人成功地解决了这个限制?

有没有人成功地在 Cassandra 中插入超过 100 万行/秒?它需要什么样的集群?

如有必要,我可以提供更具体的信息。

0 投票
1 回答
363 浏览

druid - 快速插入德鲁伊

面对德鲁伊快速摄取的问题。事情开始后org.apache.hadoop.mapred.LocalJobRunner- 地图任务执行者完成。它能够获取输入文件。

我的规格 json 文件 -

错误获取

0 投票
1 回答
28 浏览

druid - 可以加载最新的可用数据点并丢弃德鲁伊中的其余数据点吗?

考虑以下形式的原始事件(德鲁伊用语中的 alpha 集)timestamp | compoundId | dimension 1 | dimension 2 | metric 1 | metric 2

通常在 Druid 中,数据可以根据一些规则加载到实时节点和历史节点中。这些规则似乎与时间范围有关。例如:

  • 在框 A 上加载最后一天的数据
  • 将上周(最后一天除外)加载到框 B
  • 将其余部分保存在深度存储中,但不要加载段。

相反,我想支持以下用例:

  • 加载框 A 上每个给定的最后一个事件compoundId。无论最后一个事件是今天还是昨天加载。

这可能吗?

或者,如果上述方法不可行,我认为可能可以作为一种解决方法来创建一个 betaset(最佳粒度级别如下):

给定一个具有上述模式的 alphaset,创建一个 betaset,以便:

  • 给定的所有事件都会compoundId汇总。
  • metric1metric2设置为上次发生(最大时间戳)事件的指标。

非常感谢任何建议。

0 投票
1 回答
614 浏览

hadoop - 如何从德鲁伊数据源读取所有数据

我正在使用下面的 json 从 druid 数据源中读取所有数据。但在请求阈值字段/值中是强制性的。它返回阈值中指定的行数。

有没有办法通过将阈值设置为从数据源返回所有数据的某个值来检索所有数据。

0 投票
2 回答
413 浏览

apache-kafka - 使用德鲁伊石墨发射器扩展

我正在试用 druid 中的石墨发射器插件,以在 druid 性能测试期间收集石墨中的某些 druid 指标。目的是使用石墨提供的 REST API 查询这些指标,以表征部署的性能。

但是,石墨返回的数字没有意义。所以,我想检查我是否以正确的方式解释结果。

设置

  • kafka 索引服务用于将 kafka 中的数据摄取到 druid 中。
  • 我启用了石墨发射器并提供了要收集的指标白名单。
  • 然后我将 5000 个事件推送到被索引的 kafka 主题。使用 kafka 相关工具,我确认消息确实存储在 kafka 日志中。
  • 接下来,我ingest.rows.output metric使用以下调用从石墨中检索:

curl " http://Graphite_IP:Graphite_Port >/render/?target=druid.test.ingest.rows.output&format=csv"

  • 以下是我得到的结果:

我不知道如何解释这些数字:

问题

  1. 输出中的数字 152.4 和 97.0 表示什么?
  2. “行数”怎么可能是像 152.4 这样的浮点值?
  3. 这些数字与我推送到 Kafka 的“5000”条消息有什么关系?

提前致谢,

吉廷

0 投票
3 回答
2885 浏览

json - 德鲁伊卡夫卡索引服务设置

我按照文档进行了编辑:

并补充说:

druid.extensions.loadList重新启动所有 druid 服务:middlemanager, overlord, coordinator, broker,historical

我跑了:

但得到:

输入 json 有:

知道我做错了什么吗?根据文档: http://druid.io/docs/0.9.2-rc3/development/extensions-core/kafka-ingestion.htmltypekafka

有没有办法检查扩展是否正确加载,或者我是否必须在每个组件中指定扩展runtime.properties

0 投票
1 回答
364 浏览

druid - Calcite-Druid 适配器中的超唯一聚合

在我的 Druid 数据源中,我在其中一个字段上有一个 hyperUnique 聚合(摄取时间)。

我正在尝试COUNT(DISTINCT(<hyperunique_field>))在这个聚合字段上做相当于。

Calcite Druid Adapter 是否支持它?如果是这样,正确的方法是什么?

在胶合板中,我可以做到COUNT_DISTINCT。运行此返回 0 个计数。

SQL:

选择 floor("__time" to HOUR) time_bucket,"field_1", count(distinct("ingestion_time_aggregated_field")) as uniq from "datasource" where "__time" between '2017-01-01 00:00:00' 和 '2017 -01-02 00:00:00' and “field_1” in ('value_1') and “field_2”='value_2' and “field_3”='value_3' and “field_4”='value_4' group by floor("__time " to HOUR),”field_1" order by floor("__time" to HOUR);

摄取时间聚合字段:

0 投票
1 回答
1292 浏览

docker - 错误:curl: (52) Empty reply from server ,当将数据摄取到德鲁伊时

我发现了这个:curl: (7) Failed to connect to localhost port 8090: Connection refused。但是,无法解决问题。

我尝试使用我机器的公共 ip,但它给了我另一个错误:“curl: (52) Empty reply from server”。

我也尝试了 0.0.0.0,因为它在其他一些帖子中提到过。但同样的问题。我需要做点别的吗?

这是我为运行 docker 映像而执行的命令:“docker run -t -p 8000:8000 -p 8090:8090 $IMAGE_ID”

这是我用来将批处理数据摄取到 druid 的命令:

“curl -X 'POST' -H 'Content-Type:application/json' -d @./../druid/stb_ad_trait/index.json $MY_MACHINE_IP:8090/druid/indexer/v1/task”。

请问有什么想法吗?