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

时间:2012-11-26 23:39:39

标签: riak

我正在浏览这本书Seven Databases in Seven Weeks(到目前为止读得很好),而且我对书中快速传递的Riak细节感到困惑。

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

我正在使用Riak源附带的4个dev节点。所有这些都已启动,但当我curl http://localhost:8091/stats | grep ring时,我看到了

"ring_ownership": "[{'dev1@127.0.0.1',64}]"

使用$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'
-------------------------------------------------------------------------------

发生了什么事?为什么dev1节点声明了所有分区,如何让它共享?

也许是相关的

我为每个节点(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。

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

2 个答案:

答案 0 :(得分:5)

我怀疑您看到了输出riak-admin member-status,因为您对群集进行了未完成的更改,需要提交。

riak-admin cluster plan

riak-admin cluster commit

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

答案 1 :(得分:2)

发布高速项目的危险在于墨水干燥之前界面会发生变化。

集群管理在1.0(本书涵盖的内容)和1.2(当前版本)之间发生了重大转变。这本书刚刚joindev1发出了riak-admin cluster并称之为一天。现在,您必须通过plan命令,该命令批处理多个连接/离开并将它们作为单个事务执行。加入后,您必须查看该事务的commit和{{1}},如另一条评论中所述。

FWIW,剩下的大部分Riak信息仍然相同。