参考资料https://gitee.com/dolphindb/Tutorials_CN/tree/master#/dolphindb/Tutorials_CN/blob/master/multi_machine_cluster_deploy.md
dolphindb下载地址https://dolphindb.com/alone/alone.php?id=75

单机单节点

windows

解压后直接运行dolphindb.bat即可运行。
通过查看dolphindb.cfg可以看到默认的localSite是localhost:8848,运行模式是mode=single所以已经单机启动。
通过浏览器输入:localhost:8848即可访问web界面,右上角登录(admin 123456)后即可使用web页面。
image.png

Linux

解压后

cd ./dolphindb/server
./dolphindb.sh 

访问web界面方法与windows相同

测试

在datanode执行代码

db=database("dfs://db1",VALUE,1 2 3)
timestamp = [09:34:07,09:36:42,09:36:51,09:36:59,09:32:47,09:35:26,09:34:16,09:34:26,09:38:12]
sym = `C`MS`MS`MS`IBM`IBM`C`C`C
price= 49.6 29.46 29.52 30.02 174.97 175.23 50.76 50.32 51.29
qty = 2200 1900 2100 3200 6800 5400 1300 2500 8800
t = table(timestamp, sym, qty, price)

dt=db.createTable(t,`dt).append!(t)
select * from dt;

image.png

通过DFS Explorer可以查看保存的数据
image.png

单机多节点

在dolphindb/server/clusterDemo中已经有了单机多节点的配置样例。
通过查看配置文件可以得到这个单机多节点的结构。
image.png

运行startAgent.bat 和 startController.bat即可启动服务。
image.png

利用GUI连接datanode

image.png

注意,选择节点必须是datanode
image.png
点击test即可查看连接情况
image.png
执行上方的测试语句
image.png

多机多节点

虚拟机群搭建

网络配置

该部分采用windows作为宿主机,virtualbox+centos三台虚拟机构建集群,虚拟机与主机之间通过两张网卡(网卡1:连接方式为网络地址转换NAT来实现虚拟机可以访问外部网络,网卡2:连接方式为仅主机(Host-Only)网络)
image.png
image.png

在windows网络适配器中对virtualbox虚拟网卡进行ip设置
image.png

安装centos

该部分略过,参考资料:https://blog.csdn.net/weixin_45115705/article/details/100538773

配置centos网卡,实现静态ip,实现宿主机与虚拟机,虚拟机与虚拟机之间可以ping通

image.png
通过ifconfig命令可以看到enp0s8网卡是我们设置好的用于主机Host-Only的网卡,因此对该网卡进行设置。

cd /etc/sysconfig/network-scripts/
cp ifcfg-enp0s3 ifcfg-enp0s8 # 如果没有ifcfg-enp0s8则拷贝ifcfg-enp0s3网卡配置
sudo vi ifcfg-enp0s8

将如下内容进行修改,注意UUID必须与ifcfg-enp0s3不同,随意改一个数就可以。
image.png

systemctl restart network # 重新启动network服务
ping 192.168.56.1 #ping主机ip的网卡地址

image.png

主机再ping虚拟机发现也可以ping通。
image.png

集群配置

image.png
通过对刚才配置好的虚拟机复制两次,得到了三台虚拟机,复制过程需要注意MAC地址设定,然后再依照刚才的方法进行网卡配置,实现三台虚拟机之间,虚拟机宿主机之间可以相互ping通,此时集群准备完毕。集群架构如下图:
image.png

Dolphindb三机集群配置

首先将下载的Linux版本的dolphindb下载至三台linux中。
集群配置如下图:
image.png

controller配置

为了方便起见,再server目录下创建data、config、log目录,controller再config目录中需要配置
controller.cfg
cluster.nodes
cluster.cfg

controller.cfg内容:

localSite=192.168.56.101:8990:master
localExecutors=3
maxConnections=512
maxMemSize=16
webWorkerNum=4
workerNum=4
dfsReplicationFactor=1
dfsReplicaReliabilityLevel=0
dataSync=1

cluster.cfg内容:

maxConnections=512
maxMemSize=32
workerNum=8
localExecutors=7
webWorkerNum=2
newValuePartitionPolicy=add
chunkCacheEngineMemSize=1
lanCluster=0

cluster.nodes内容:

localSite,mode
192.168.56.102:8960:P1-agent,agent
192.168.56.102:8961:P1-NODE1,datanode
192.168.56.103:8960:P2-agent,agent
192.168.56.103:8961:P2-NODE1,datanode

agent配置

为了方便起见,再server目录下创建data、config、log目录,controller再config目录中需要配置
agent.cfg

workerNum=3
localExecutors=2
maxMemSize=4
localSite=192.168.56.102:8960:P1-agent
controllerSite=192.168.56.101:8990:master
lanCluster=0

配置参数详情

遇到的问题:

  1. 在按照官方教程进行搭建的时候并没有要求lanCluster参数,导致controller的web服务无法启动,报错
    <ERROR> :Shut down the subscription daemon.
    <ERROR> :The socket server ended.

    image.png
    通过配置参数详情可以知道:lanCluster=1集群是否建立在 LAN(local area network) 上。若为 true,心跳采用 UDP 协议;若为 false,心跳采用 TCP 协议。默认值为 true。对部署在云上的集群,应当设为 false。

解决问题后就可正常访问了
image.png

文章作者: Hao.Jia
版权声明: 本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Hao.Jia's Blog
dolphindb
喜欢就支持一下吧