集群配置:
物理机P1:controller
物理机P2:agent1,datanode1,datanode2
物理机P3:agent2,datanode3,datanode4
controller.cfg文件中:
dfsReplicationFactor=2
//表示有两个副本
dfsReplicaReliabilityLever=1
//示不同的副本必须写入到不同的物理机器上
集群控制web界面如下:
所有节点启动正常,执行如下代码创建分布式数据库:
login("admin","123456")
n=1000000
date=rand(2018.08.01..2018.08.05,n)
sym=rand(`AAPL`MS`C`YHOO,n)
qty=rand(1..1000,n)
price=rand(100.0,n)
t=table(date,sym,qty,price)
if(existsDatabase("dfs://db2")){
dropDatabase("dfs://db2")
}
db=database("dfs://db2",VALUE,2018.08.01..2018.08.05)
trades=db.createPartitionedTable(t,`trades,`date).append!(t)
分布式数据库无法创建,返回如下错误:
db = database("dfs://db2", VALUE, 2018.08.01 .. 2018.08.05) => RemoteRun[controller3] openChunks failed to find enough datanodes for write, need 2 datanodes, found 1
问题:从web界面发现,由于P3物理机上的数据节点存储磁盘已满,导致其无法正常使用,而上述创建的分布式数据库需要有两个副本,且不能同时存在一台物理机上(controller.cfg文件中设置的),所以无法正常创建上述分布式数据库。
web监控显示如下:
解决方法:
打开P1物理机上,DolphinDB安装目录下的server/config/cluster.cfg文件,重新对datanode3和datanode4分配磁盘,具体指令为:
datanode3.volumes=Path(磁盘位置)
datanode4.volumes=Path(磁盘位置)
保证新的磁盘有足够的空间。
修改完P1物理机上的cluster.cfg文件后,在web界面上关闭数据节点,再重启即可,可以发现datanode3和datanode4的存储位置已经更改为新指定的位置。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。