Apache Druid 被设计部署为可扩展和容错的集群部署方式。
在本文档中,我们将会设置一个示例集群,并且进行一些讨论,你可以进行那些修改来满足你的需求。
这个简单的集群包括有下面的特性:
- 主服务器(Master Server)将会运行 Coordinator 和 Overlord 进程
- 2 个可扩展和容错的数据服务器将会运行 Historical 和 MiddleManager 进程
- 一个查询服务器(Query Server)将会运行 Broker 和 Router 进程
在生产环境中,我们建议你部署多个 Master 服务器和多个 Query 服务器,服务器的高可用性(fault-tolerant)配置与你的数据特性和容错性要求息息相关。
但是你可以使用一个主服务器(Master Server) 和 一个查询服务器(Query Server)来启动服务,随着需求的增加你可以随时增加更多的服务器节点。
选择硬件
全新部署
如果你没有已经存在的 Druid 集群,但是你希望开始在你的环境中使用集群方式部署 Druid,本文档将会使用预配置(pre-made configurations)内容来帮助你开始部署 Druid 的集群。
主服务器(Master Server)
Coordinator 和 Overlord 进程将会负责处理 metadata 数据和在你集群中进行协调。这 2 个进程可以合并在同一个服务器上。
在本示例中,我们将会在 AWS m5.2xlarge 部署一个评估的服务器和实例。
AWS 上面硬件的配置为:
- 8 vCPUs
- 31 GB RAM
有关本服务器的配置信息和有关硬件大小的建议,可以在文件 conf/druid/cluster/master
中找到。
数据服务器(Data server)
Historicals 和 MiddleManagers 可以合并到同一个服务器上,这个 2 个进程在你的集群中用于处理实际的数据。通常来说越大 CPU, RAM, SSDs硬盘越好。
在本示例中,我们将会在 i3.4xlarge 部署一个评估的服务器和实例。
AWS 上面硬件的配置为:
- 16 vCPUs
- 122 GB RAM
- 2 * 1.9TB SSD storage
有关本服务器的配置信息和有关硬件大小的建议,可以在文件 conf/druid/cluster/data
中找到。
查询服务器(Query server)
Druid Brokers 可以接受查询,并且将接受的查询发送到集群中处理。同时他们也负责维护内存中的查询缓存, 常来说越大的 CPU, RAM 越好。
在本示例中,我们将会在 m5.2xlarge 部署一个评估的服务器和实例。
AWS 上面硬件的配置为:
- 8 vCPUs
- 31 GB RAM
你也可以考虑在运行 Broker 进程的查询服务器上部署任何开源的 UI 或者查询库。
有关本服务器的配置信息和有关硬件大小的建议,可以在文件,可以在文件 conf/druid/cluster/query
中找到。
其他硬件大小
上面的示例集群配置是从多种确定 Druid 集群可能的配置方式中选择的一个示例。
您可以根据自己的特定需求和要求来选择 较小/较大的硬件配置或 较少/更多的服务器数量。 如果你的使用实例有比较复杂的可扩展性要求,你也可以选择不将进程合并到服务器上的配置方案,而针对每一个进程配置一台服务器(例如,你可以配置一个独立的 Historical 服务器)。
有关更多的配置信息,请参考页面 basic cluster tuning guide 中的内容,能够帮助你如何对你的配置进行配置和扩展。