Riak 不允許添加節點,因為它在自己的集群中
(這是我從堆棧溢出問題的轉貼,那裡是題外話,這裡是問它的正確地方)
我試圖在 Raspberry Pi 上建構一個 Riak 集群。用 Erland 和 Riak 創建了一個圖像,單個節點似乎工作正常。然後我為我的不同 Pi 複製了這個圖像:
riak@192.168.8.59 riak@192.168.8.214 riak@192.168.8.215
它們都具有相同的配置,唯一不同的是靜態 IP
vm.args
和app.config
.現在的問題是,我從 開始建構集群
riak@192.168.8.59
,添加了一個節點riak@192.168.8.214
,它似乎沒問題:# ./riak-admin member-status ================================= Membership ================================== Status Ring Pending Node ------------------------------------------------------------------------------- valid 100.0% 50.0% 'riak@192.168.8.214' valid 0.0% 50.0% 'riak@192.168.8.59' -------------------------------------------------------------------------------
當我嘗試添加第三個節點 (
riak@192.168.8.215
) 時,我收到以下錯誤消息:# ./riak-admin cluster join riak@192.168.8.215 Failed: This node is already a member of a cluster
為什麼我沒有這個問題
riak@192.168.8.214
?它似乎只發生在riak@192.168.8.215
節點上。我不能強制
riak@192.168.8.215
從它的集群中刪除,因為它說:# ./riak-admin cluster force-remove riak@192.168.8.215 Failed: 'riak@192.168.8.215' is the claimant (see: riak-admin ring_status). The claimant is the node responsible for initiating cluster changes, and cannot forcefully remove itself. You can use 'riak-admin down' to mark the node as offline, which will trigger a new claimant to take over. However, this will clear any staged changes.
或者
# ./riak-admin cluster leave Failed: 'riak@192.168.8.215' is the only member.
我只是無法理解,我想我需要一個新的觀點。我還想補充一點,我遵循文件中的所有步驟:
http://docs.basho.com/riak/latest/ops/building/basic-cluster-setup/
並且還學習了 Raspberry Pi 的計數教程(但我不在 Raspbian 上,我在 ArchLinux 上)。
http://basho.com/building-a-riak-cluster-on-raspberry-pi/
我還要補充一點,網路工作正常,我可以從每個節點 ping 和 ssh 到每個節點。
我指望你的建議。乾杯!
編輯:
如前所述,他們建議使用
riak-admin down <node>
命令停止此節點為claimant
,這也不起作用。# ./riak-admin down riak@192.168.8.215 Failed: riak@192.168.8.215 is up
我無法阻止它,因為它已經啟動了……但是,如果我在 Riak 沒有啟動時嘗試相同的操作,我會得到:
# ./riak-admin down riak@192.168.8.215 Node is not running!
這很令人困惑。顯然我不明白這裡發生了什麼,我希望有人能澄清一下。
嘗試以下步驟:
riak stop
在所有節點上rm -rf /var/lib/riak/ring/*
在所有節點上- 仔細檢查
/etc/riak/vm.args
以確保-name
參數使用正確的 IP 地址riak start
在所有節點上riak-admin cluster join riak@192.168.8.59
在其他兩個節點上重新執行命令。重要的是要記住所有其他節點都加入同一個“起始”節點——riak@192.168.8.59
在這種情況下- 在節點上執行
riak-admin cluster plan
驗證riak@192.168.8.59
riak-admin cluster commit
在riak@192.168.8.59
節點上執行