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安裝教程。
1.下載並編譯DolphinDB docker集羣部署包
從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
2.替換部署包中的license文件
社區版中的license文件無法支持部署5個數據節點和1個控制節點,因此需要申請支持6個以上節點的企業版license,並將企業版license文件dolphindb.lic放到./cfg
文件目錄下。
3.創建controller和agent所需容器,並啓動容器
容器中的默認啓動腳本會自動啓動控制節點和代理節點。
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
4.查看集羣
通過上述步驟,已經完成了分佈式集羣的創建、啓動和初始化工作。訪問地址http://localhost:8888即可訪問集羣管理的web頁面。在Web中啓動所有數據節點,最終界面如下: