Docker是一个开源的引擎,可以轻松地为任何应用创建一个轻量级的、可移植的、自给自足的容器。DolphinDB database 提供了基于docker的分布式集群部署包,可以让用户方便快捷的部署DolphinDB分布式集群。
本教程的目标是通过4个centos容器搭建一个5节点的多机集群,最终搭建好的集群情况如下:
部署分布式集群时,需要分别配置控制器节点(controller)、代理节点(agent)和数据节点(datanode)的网络IP和端口。本教程提供的部署包,通过docker容器间构建虚拟子网,为4个容器分别指定了从10.5.0.2到10.5.0.5 四个固定IP地址。包含这些信息的配置文件已经内置到部署包中,用户无需再手工一一指定。内置的网络IP及端口分配情况如下:
controller.cfg:
localSite=10.5.0.5:8888:master
agent1.cfg:
mode=agent
localSite=10.5.0.2:8710:P1-agent,agent
controllerSite=10.5.0.5:8888:master
cluster.nodes:
localSite,mode
10.5.0.2:8710:P1-agent,agent
10.5.0.2:8711:P1-node1,datanode
10.5.0.2:8712:P1-node2,datanode
10.5.0.3:8810:P2-agent,agent
10.5.0.3:8811:P2-node1,datanode
10.5.0.3:8812:P2-node2,datanode
10.5.0.4:8910:P3-agent,agent
10.5.0.4:8911:P3-node1,datanode
由于在docker虚拟网络环境下UDP协议无法正常运作,所以需要在agent.cfg和cluster.cfg中加上配置项lanCluster=0,此配置项在部署包中的配置文件中已默认添加。
在部署集群前,需要先搭建好docker环境,具体可以参考docker安装教程、docker-compose安装教程。
从https://github.com/dolphindb/Tutorials_CN/blob/master/docker/DolphinDB-Docker-Compose.zip下载DolphinDB docker部署包。
通过以下步骤得到一个包含最新版本DolphinDB server的镜像文件:
cd ./DolphinDB-Docker-Compose/Dockerbuild
docker build -t ddb:latest ./
编译完成后,使用docker images查看:
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ddb latest 4268ac618977 5 seconds ago 420MB
社区版中的license文件无法支持部署5个数据节点和1个控制节点,因此需要申请支持6个以上节点的企业版license,并将企业版license文件dolphindb.lic放到./cfg
文件目录下。
容器中的默认启动脚本会自动启动控制节点和代理节点。
cd ./DolphinDB-Docker-Compose
docker-compose up -d
执行后输出的结果如下:
$ docker-compose up -d
Creating network "20190121-dolphindb-docker-compose_dbnet" with driver "bridge"
Creating ddbcontroller ... done
Creating ddbagent2 ... done
Creating ddbagent3 ... done
Creating ddbagent1 ... done
通过上述步骤,已经完成了分布式集群的创建、启动和初始化工作。访问地址http://localhost:8888即可访问集群管理的web页面。在Web中启动所有数据节点,最终界面如下: