Riak - 所有分区都属于一个节点

cha*_*doh 4 riak

我正在浏览Seven Weeks中的七个数据库(迄今为止的一个很​​好的阅读),我对书中快速传递的Riak细节感到困惑.

默认情况下,Riak应该将数据分成64个分区.假设这些分区中的每一个在环中的节点之间被分开.(如果我的说法错了,请纠正我.)

我正在使用Riak源附带的4个dev节点.所有这些都是开始的,但是当我curl http://localhost:8091/stats | grep ring,我明白了

"ring_ownership": "[{'dev1@127.0.0.1',64}]"
Run Code Online (Sandbox Code Playgroud)

这进一步证实了$RIAK_INSTALL/dev/dev4/bin/riak-admin member-status:

================================= Membership ==================================
Status     Ring    Pending    Node
-------------------------------------------------------------------------------
joining     0.0%      --      'dev2@127.0.0.1'
joining     0.0%      --      'dev3@127.0.0.1'
joining     0.0%      --      'dev4@127.0.0.1'
valid     100.0%      --      'dev1@127.0.0.1'
-------------------------------------------------------------------------------
Run Code Online (Sandbox Code Playgroud)

这是怎么回事?为什么dev1节点声明了所有分区,如何让它共享?

也许相关

我为每个节点(in RIAK_ROOT/dev/devN/etc/app.config)编辑了app.config 以生成pb_ip 0.0.0.0而不是127.0.0.1.这样我就可以从主机中的浏览器访问Riak,即使我在Vagrant VM中运行Riak.即使我在每个中都进行了相同的更改,我只能从主机的浏览器(不是dev2,dev3或dev4)访问dev1.

如果您认为这会有所帮助,我可以将此虚拟机打包并使其可用于帮助您排除故障.(虚拟机很棒的众多原因之一.)

maf*_*sis 5

我怀疑你看到了那个输出,riak-admin member-status因为你需要提交对集群的未完成的更改.

riak-admin cluster plan

riak-admin cluster commit

正在运行riak-admin cluster plan将显示有关未完成转移的信息(如果有).然后,您需要使用第二个命令将更改提交到群集.