我正在浏览这本书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。
如果您认为这会有所帮助,我可以将此虚拟机打包并使其可用于帮助您排除故障。 (虚拟机很棒的众多原因之一。)
答案 0 :(得分:5)
我怀疑您看到了输出riak-admin member-status
,因为您对群集进行了未完成的更改,需要提交。
riak-admin cluster plan
riak-admin cluster commit
正在运行riak-admin cluster plan
将显示未完成的转移的信息(如果有)。然后,您需要使用第二个命令将更改提交到集群。
答案 1 :(得分:2)
发布高速项目的危险在于墨水干燥之前界面会发生变化。
集群管理在1.0(本书涵盖的内容)和1.2(当前版本)之间发生了重大转变。这本书刚刚join
向dev1
发出了riak-admin cluster
并称之为一天。现在,您必须通过plan
命令,该命令批处理多个连接/离开并将它们作为单个事务执行。加入后,您必须查看该事务的commit
和{{1}},如另一条评论中所述。
FWIW,剩下的大部分Riak信息仍然相同。