问题标签 [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 回答
152 浏览

metadata - 如何从 Druid 段元数据查询中检索特定的分析类型

如何从 druid segmentMetadata 元数据查询中检索所有列的特定标识符。我期望结果仅包含基数和大小,但返回所有分析。

但仍然在结果中返回所有列的所有分析。
实际结果:

预期结果:

0 投票
1 回答
432 浏览

hadoop - OLAP 实时查询海量数据 - 选项

我们有一个 1800 亿行和 100+ 列的 OLAP 表,Hive 中的卷接近 8TB。大多数列都是维度,而且我们也很少有指标列。我们想构建一个实时系统支持即席查询来运行仪表板应用程序,其中查询应该在 10 秒以下的延迟内执行。

我们现在正在寻找构建这样一个实时即席查询系统的选项,并且我们正在检查可能的选项,并且实际上正在努力选择一个正确的系统。我们正在看到

Presto可以用来直接查询 hdfs,但我们不确定它是否支持如此大容量的低延迟查询。

Cassandra,根据查询构建预聚合视图。

Druid,构建预聚合视图,看起来很有趣,但似乎没有任何企业支持。

在这里,我们实际上正在努力从这些组件中做出选择,而且我们不确定是否错过了可能适合此要求的任何其他相关工具。

我们正在寻找可以与 HDFS 紧密交互的工具/数据库,如果它对大容量的读取性能良好,我们也可以考虑任何其他工具。

我恳请您帮助指导我选择组件,如果我需要了解任何其他工具,请给我建议。

0 投票
2 回答
465 浏览

datasource - 如何获取现有德鲁伊数据源的粒度

我正在努力通过检索现有记录、更新然后用更新的记录取回来更新德鲁伊中的现有记录。因此,我需要获取现有数据源的粒度,这些数据源将在提取更新记录时使用。

0 投票
1 回答
69 浏览

graylog2 - 用来自 graylog2 服务器的数据喂 druid

亲爱的

我需要从 graylog2 服务器获取数据到德鲁伊(例如 CPU、内存、多台机器的磁盘利用率)。

我在 graylog 市场和宁静文档中搜索了插件,但没有找到任何从 graylog2 检索数据的解决方案。

我相信解决方案是使用来自 graylog2 的 REST API,但是如何从德鲁伊/宁静方面“自动化”呢?

0 投票
1 回答
157 浏览

sql - 我需要一些关于德鲁伊和元市场的建议

我需要一种存储日志的解决方案(或多或少遵循 10 种标准格式之一),最好是实时存储在数据库中,该数据库可以快速查询并且可以轻松地将结果提供给各种有线查询。例如,在文本正文中查找关键字的查询,涉及多个表的查询。

向我推荐的一个解决方案是 MetaMarket,它似乎可以使用风格非常好的查询系统进行实时日志记录。但是,我不确定成本以及是否需要如此复杂的解决方案。

据我了解,metamarket 的“卖点”是德鲁伊数据库,并说数据库是开源的,可以部署在他们的堆栈之外。所以我来这里要问的是:

你们中有人有使用 Druid 部署实时日志系统的经验吗?有多难?花了多长时间 ?有哪些挑战?除了德鲁伊,你还使用了哪些其他技术?你有什么推荐的读物吗?

有没有人有过元市场的经验。如果是这样,那么它有多难?花了多长时间 ?有哪些挑战?一旦投入生产,成本如何?你有关于这个主题的推荐阅读吗?

另外,还有一个额外的问题:“公正的专业人士”实际上是否对 druid 进行了任何基准测试?实时实时输出数据库是用 Java 编写的这一事实似乎有点……啊,难以置信。

0 投票
1 回答
223 浏览

druid - 从 Kafka 消费并发送给 Druid 问题

我有一个 Java 应用程序,它应该从 Kafka 读取数据,做一些魔术并将数据发送给 Druid。

我有 Kafka 工作线程(每个主题大约 15 个),它们使用来自 Kafka 的数据并最终使用 Tranquillity 将其发送给 Druid。

这就是问题所在:如果我使用一个线程 - 一切都很好。如果我与多个人一起工作,我会遇到异常。

我尝试按以下方式工作:

  1. 带有几个 Tranquility 对象的 Spring Druid 服务。
  2. 没有 Spring,只需为每个线程创建几个 Tranquility 对象。

我认为这可能是并发问题。

当我说“几个宁静”时,我的意思是我将数据发送到不同的表。

我得到:

0 投票
1 回答
555 浏览

hadoop - Druid + Hadoop(用于两种用途,深度存储和索引)

如果我在单独的机器上运行 Hadoop 服务器(伪分布式模式),我还需要将这些文件放在我的 Druid 的 conf 目录下吗?:http ://druid.io/docs/latest/configuration/hadoop.html

我的看法:

看起来那些 -site.xml 文件用于 Hadoop 服务器......,而 Druid 仅充当 Hadoop 客户端。所以我认为 Druid 不需要 hdfs-site.xml。

Core-site.xml...,好的,我可以得到它。我的意思是,德鲁伊需要知道名称节点(hadoop)的 IP。

Mapred-site.xml,部分。Druid 需要知道 mapreduce 作业的状态(我想它会将索引作为 MR 作业委托给 Hadoop)。因此它需要与那些作业跟踪器进行通信,以查看索引是否完成/失败/正在进行。为此,它需要 Hadoop JT 的 URL。

但是 Druid 不需要这个属性“mapreduce.cluster.local.dir”,因为它不积极参与 MR 工作。

纱线站点.xml?也许它应该保留,部分。至少用于提交工作(?)。

HDFS-site.xml 呢?我认为这可以完全废弃。

容量调度程序.xml?它可以走了。

如果我错了,请纠正我。


出现这些问题/疑问是因为我对 hadoop 很陌生。我正在运行我的 hadoop 设置。伪分布式模式。我还使用 javascript webhdfs 库对其进行了测试以写入和读取文件。还尝试了 hadoop dist 提供的示例 MR 作业。所以我想我的hadoop设置很好。我对德鲁伊网站有点不确定,部分原因是文档不太清楚。

顺便说一句....我有 hadoop 2.7.2 ...虽然 Druid 使用的 hadoop-client 库仍在 2.3.0 上。

我应该将我的 hadoop 服务器降级到 2.3.0 吗?

http://druid.io/docs/latest/operations/other-hadoop.html

谢谢,拉卡

0 投票
2 回答
847 浏览

hadoop - Druid / Hadoop 批量索引 / Map Reduce / YARN / 没有远程,只有本地

解决

原来我们需要将validation.jar 放在hadoop/share/hadoop/common/lib/ 中(从https://mvnrepository.com/artifact/javax.validation/validation-api * 下载)。

将其与文档所说的相结合:在您的 Druid 的索引任务 json 中将“mapreduce.job.classloader”设置为“true”。

你会得到它的工作:)——德鲁伊 0.9.2 和 Hadoop 2.7.3

*) 不知道为什么,我可以看到 Druid 将其类路径中的所有 jar 上传到 Hadoop(并且 validation.jar 在那里)。也许对 JVM 如何从自定义类加载器加载 javax.* 库有限制(?)

以下内容出于历史目的,以帮助搜索。


更新更新

我的错。我忘记将 Dockerfile 中的 core-site.xml 等复制到 Druid 安装中的正确位置。

我解决了这个问题,现在它将工作发送到 hadoop。

在此处输入图像描述

但是,现在我遇到了另一个问题。作业执行失败。java.lang.reflect.InvocationTargetException,位于 io.druid.indexer.JobHelper.runJobs(JobHelper.java:369) ~[druid-indexing-hadoop-0.9.2.jar:0.9.2]。

在此处输入图像描述

与此处报道的类似:https ://groups.google.com/forum/#!topic/druid-development/_JXvLbykD0E 。但至少在堆栈跟踪(权限)中有更多提示。我的情况不是很清楚。有人有同样的问题吗?

!!!再次更新!!!

我想这就是我遇到的情况。同样:https ://groups.google.com/forum/#!topic/druid-user/4yDRoQZn8h8

我通过 Hadoop 的时间线服务器检查了 MR 的日志,确认了这一点:

在此处输入图像描述

让我尝试修复它并在之后更新这篇文章。

更新:发现这个:https ://groups.google.com/forum/#!topic/druid-user/U6zMkhm3WiU

更新:不。设置 "mapreduce.job.classloader": "true" 在地图任务上给了我另一个问题:java.lang.ClassNotFoundException: javax.validation.Validator at java.net.URLClassLoader.findClass(URLClassLoader.java:381) at java .lang.ClassLoader.loadClass(ClassLoader.java:424).... 这整个类加载的事情:(

所以,罪魁祸首是 guice 库。Druid 0.9.2 使用 Guice 4.1.0,而 Hadoop 2.7.3 坚持使用 Guice 3.0.0...,并且 mapreduce.job.classloader 不工作(它给出了另一个 java 类未找到问题)。

现在要做什么?将 guice 4.1.0 从 Druid 复制到 Hadoop?

在此处输入图像描述

原帖

为什么 Druid (0.9.2) 没有将作业提交给资源管理器(并且作业在 hadoop 集群中运行)?有人可以指出我遗漏了什么细节吗?

我在主机名设置为“hadoop”的机器上运行 2.7.2 版的 Hadoop 集群(伪)。那个 hadoop 和我的德鲁伊在不同的​​ docker 实例上运行。druid docker 有 --link 到 hadoop 实例。

从日志中我可以看出它在本地执行 MR(使用 LocalJobRunner)。

在此处输入图像描述

我还可以从日志中并通过检查 HDFS 来确认索引是否成功:

在此处输入图像描述

另外,从 YARN UI...我没有看到任何正在提交的作业。

在此处输入图像描述

我已经根据文档配置了所有内容。在我的德鲁伊的 core-site.xml 中,我有:

(是的,它是 fs.default.name,而不是 fs.defaultFS……因为 Druid 扩展仍然使用 2.3.0,而 defaultFS 直到 2.4.x 才知道)。稍微回避一下:我认为 Druid 中的类路径存在一个错误,它没有将 hadoop 依赖项添加到运行工作者的类路径列表中(我已经在 common 的运行时属性中指定了默认坐标)。

在此处输入图像描述

好的,另外,在overlord runtime.properties 中,我已将索引运行器类型指定为远程。在 middleManager runtime.properties 中也是如此。我可以看到德鲁伊拿起那些配置。

在此处输入图像描述

此外,索引日志存储类型设置为 HDFS,我可以确认文件存储在 HDFS 中。

在此处输入图像描述

因此,就深度存储而言,一切都很好。就是这个 Map-Reduce。不在集群中运行。有人也偶然发现了同样的问题,线程没有解决方案。在这里:https ://groups.google.com/forum/#!topic/druid-user/vvX3VEGMTcw

我可以确认深度存储没有问题(从我指定的 HDFS 路径中提取的输入文件,并且段也存储在 HDFS 中)。

我错过了什么?

0 投票
1 回答
1026 浏览

druid - 用不同的过滤器交叉两个查询

我使用 Druid 来监控我网站中的事件。数据可以表示如下:

我还定义了一个用于计数事件的聚合。我向 Druid 查询以显示 event_id=3 的数据,如下所示:

请注意,访问与 event_id 无关。

目前,我使用两个带有 2 个不同过滤器的 topNResults 查询:

  1. event_type = visit -> 计算每个国家/地区的访问次数,而不考虑事件 ID。
  2. event_id = 3

当然,我的数据要大得多,并且包含许多国家。topNResults api 必须具有阈值参数,该参数表示我希望作为响应获得的最大结果量。

问题是如果我的阈值小于实际结果,那么这两个查询可能不会具有相同的国家/地区结果。

目前,我在我的服务器中合并了重叠的结果,但我丢失了一些国家的结果,并且显示的结果低于我的阈值,尽管有更多的结果。

我可以做些什么来优化我的阈值总是相同的国家(没有将从第一个查询返回的国家列表发送到第二个过滤器 - 我试过了,它很慢)?

0 投票
1 回答
954 浏览

cassandra - Cassandra vs Druid

I have a use case where i had to analyze real time data using Apache Spark. But i still have a confusion related to choosing data store for my application. The analysis mostly include aggregation, KPI based identity analysis and machine learning tools to predict trends and analysis. Cassandra has good support and large tech companies are already using it in production. But after research i found Druid is faster than Cassandra and is good for OLAP queries but it's results are inconsistent of queries like Count Distinct.

Guys any help related that will be appreciated. Thanks