Druid、Kinesis 和 Vagrant 的大数据项目

一则或许对你有用的小广告

欢迎加入小哈的星球 ,你将获得:专属的项目实战 / Java 学习路线 / 一对一提问 / 学习打卡/ 赠书活动

目前,正在 星球 内带小伙伴们做第一个项目:全栈前后端分离博客项目,采用技术栈 Spring Boot + Mybatis Plus + Vue 3.x + Vite 4手把手,前端 + 后端全栈开发,从 0 到 1 讲解每个功能点开发步骤,1v1 答疑,陪伴式直到项目上线,目前已更新了 204 小节,累计 32w+ 字,讲解图:1416 张,还在持续爆肝中,后续还会上新更多项目,目标是将 Java 领域典型的项目都整上,如秒杀系统、在线商城、IM 即时通讯、权限管理等等,已有 870+ 小伙伴加入,欢迎点击围观

我们已经看到了光。

在与 Fangjin Giam 进行了一次精彩的会面之后,我们正沿着 Tranquility 路线前进,以便从 Kinesis 到 Druid 进行实时摄取。对我来说,这意味着熟悉 Druid 集群中扩展的节点类型集。

要适应集群和新的节点类型,没有比启动一个完整的环境并试一试更好的方法了。没有比“ vagrant up ”更好的方法了!

因此,今天早上我着手创建一个适合 Tranquility 的完整环境,其中包括中层管理人员(通常从独立的“简单”集群中省略)。我从 Quantily 的 Druid 0.6.160 流浪者配置 开始,分叉回购协议,然后开始工作。

如果你不耐烦,你可以 在这里找到我的叉子 然后开始。如果你有耐心...

了解 Druid 集群的结构很重要。首先,Druid 依赖于 Zookeeper 和 MySQL。 install.sh 脚本 安装这些的普通版本,并在 MySQL 中创建一个德鲁伊数据库和用户。 (德鲁伊本身在启动时填充模式。)

以下是 Druid 集群中的服务器类型列表。在我们的 vagrant 服务器上,每个服务器占用不同的端口,并有自己的配置。 (下面还有详细介绍)

霸王:(8080端口)

overlord负责Druid集群上的任务管理。由于 Tranquility 主要是一个编排引擎,实时分配任务以创建片段,因此 overlord 是 Tranquility 进入 Druid 集群的入口点。

https://github.com/boneill42/druid-vagrant/blob/master/config/overlord/runtime.properties

协调员:(端口8081)

协调器负责段管理,告诉节点加载/删除段。

https://github.com/boneill42/druid-vagrant/blob/master/config/coordinator/runtime.properties

经纪人:(端口8090)

Broker 是系统中的查询代理。它接收查询,知道哪些节点有哪些段,并将查询代理到相应的节点。

https://github.com/boneill42/druid-vagrant/blob/master/config/broker/runtime.properties

历史:(端口 8082)

历史节点是加载段和响应“静态”数据查询的野兽。一旦一个段被提交到深度存储,它就会被一个历史节点加载,它会响应查询。

https://github.com/boneill42/druid-vagrant/blob/master/config/historical/runtime.properties

中间管理器:(端口 8100)

MiddleManagers 正是这样。 =) 他们将任务推送到他们在同一节点上产生的 Peons。现在,一个 Peon 从事一项任务,即产生一个片段。 (可能会改变)

https://github.com/boneill42/druid-vagrant/blob/master/config/middleManager/runtime.properties

关于实时节点的特别说明:

根据我之前的博客 ,我们正在讨论实时 (RT) 节点的使用。但是有了 Tranquility,您就不需要 RT 节点了。它们被临时的 peon 实例所取代,这些实例运行一个临时的 firehose,直接从 Tranquility 客户端获取该段的事件。

Druid 的目标是高可用性、完全复制的、事务性的实时摄取。由于 RT 节点不共享任何内容。他们无法协调也无法复制数据,这意味着他们不适合项目的战略愿景。 Tranquility 及其协调的摄取模型最终可能会完全淘汰/替换 RT 节点。 (有关更多信息,请参见 #1642

入门

好的——言归正传。

要启动您自己的集群,只需克隆 存储库 并“vagrant up”。一旦事情启动并运行,您可以:

在以下位置击中霸王:

http://192.168.50.4:8080/console.html

在以下位置点击协调员:

http://192.168.50.4:8081/

在我的下一篇博客中,我将详细介绍使用直接 Finagle API 集成 Tranquility 的客户端。