Druid 集群方式部署 —— 从独立服务器部署上合并到集群的硬件配置

如果你已经有一个已经存在并且独立运行的独立服务器部署的话,例如在页面 single-server deployment examples 中部署的服务器, 现在你希望将这个独立部署的服务器合并到集群的部署方式中的话,下面的这部分内容将会帮助你完成这个切换和合并的过程。 这个过程包括有如何对硬件进行的选择和针对 Master/Data/Query 服务器应该如何进行组织。

主服务器(Master Server)

针对主服务器主要需要考虑的就是 Coordinator 和 Overlord 进程的 CPU 使用和 RAM 内存的 heaps。

从单独服务器部署的实例中找到 Coordinator 和 Overlord 进程的总计 heap 内存使用大小,然后在新的集群服务上选择硬件时候的 RAM 内存选择,需要有这 2 个进程合并 heap 的大小。 同时还需要准备为这台服务器留够足够的内存供其他进程使用。

针对服务器使用的 CPU 内核,你可以只选择在单独部署情况下的 1/4 即可。

数据服务器(Data server)

当对数据服务器进行选择的时候,主要考虑的是 CPU 数量和 RAM 内存数量,同时如果能够使用 SSD 固态硬盘就更好了。

在针对集群的部署中,如果能够使用多台服务器来部署数据服务器就更好了,因为这样能够让集群拥有更多的冗余来保障持续运行。

当针对数据服务器选择硬件的时候,你可以选择分裂因子 ‘N’,针对原始独立服务器部署的时候的 CPU/RAM 的数量除以 N, 然后按照除以 ‘N’ 后的结果来确定集群服务器的硬件要求。

针对 Historical/MiddleManager 的配置调整和分离将会在本页面后部分的指南中进行说明。

查询服务器(Query server)

当对数据服务器进行选择的时候,主要考虑的是 CPU 数量,RAM 内存数量和 Broker 进程的的 heap 内存加上直接内存(direct memory),以及 Router 进程的 heap 内存。

将 Broker 和 Router 进程在独立服务器上使用的内存数量相加,然后选择的查询服务器的内存需要足够大的内存来覆盖 Broker/Router 进程使用内存相加的结果。 同时还需要准备为这台服务器留够足够的内存供其他进程使用。

针对服务器使用的 CPU 内核,你可以只选择在单独部署情况下的 1/4 即可。

请参考 basic cluster tuning guide 页面中的内容,来确定如何计算 Broker/Router 进程使用的内存。