Cassandra 节点工具退役
Cassandra nodetool decommission
我希望停用一个 cassandra 节点,因为该节点需要 OS 升级。
我登录到那个节点。执行停用命令,几分钟后我在控制台上收到此异常
nodetool decommission
error: Stream failed
-- StackTrace --
org.apache.cassandra.streaming.StreamException: Stream failed
at org.apache.cassandra.streaming.management.StreamEventJMXNotifier.onFailure(StreamEventJMXNotifier.java:85)
at com.google.common.util.concurrent.Futures.run(Futures.java:1172)
at com.google.common.util.concurrent.MoreExecutors$SameThreadExecutorService.execute(MoreExecutors.java:297)
at com.google.common.util.concurrent.ExecutionList.executeListener(ExecutionList.java:156)
at com.google.common.util.concurrent.ExecutionList.execute(ExecutionList.java:145)
at com.google.common.util.concurrent.AbstractFuture.setException(AbstractFuture.java:202)
at org.apache.cassandra.streaming.StreamResultFuture.maybeComplete(StreamResultFuture.java:208)
at org.apache.cassandra.streaming.StreamResultFuture.handleSessionComplete(StreamResultFuture.java:184)
at org.apache.cassandra.streaming.StreamSession.closeSession(StreamSession.java:412)
at org.apache.cassandra.streaming.StreamSession.onError(StreamSession.java:507)
at org.apache.cassandra.streaming.StreamSession.start(StreamSession.java:229)
at org.apache.cassandra.streaming.StreamCoordinator$StreamSessionConnector.run(StreamCoordinator.java:208)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
我不确定那个异常是什么意思,我打算通过 nodetool netstats 和 nodetool status whoose 输出来验证是否退役成功在下面。在这两个地方都写着 LEAVING,我如何确认它是否完成。
nodetool netstats
Mode: LEAVING
Not sending any streams.
Read Repair Statistics:
Attempted: 1
Mismatch (Blocking): 0
Mismatch (Background): 0
Pool Name Active Pending Completed
Commands n/a 0 26
Responses n/a 0 758780
nodetool status
Datacenter: DC1
===============
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
-- Address Load Tokens Owns Host ID Rack
UL x.x.x.x 1.02 MB 256 ? 377869a9-d01c-4b7d-a24c-dbb90afee3d8 RAC1
我的cassandra版本是2.1.8。发现了一个参考错误 https://issues.apache.org/jira/browse/CASSANDRA-10371,它表示更改可能需要 72 小时才能反映出来。
我应该assassinate the node as mentioned in the Removing a node doc
如果您没有看到nodetool status
中的节点,则确认已完成。如果没有,那么您可以尝试 nodetool removenode
从集群中删除该节点。 nodetool assassinate
是您从集群中删除节点的最后一个选项。如果nodetool removenode
无法从集群中删除节点,那么我们使用nodetool assassinate
删除节点。
错误问题:要查看此错误的更多详细信息,cat /install_directory/apache-cassandra-2.1.8/logs/system.log | grep ERROR
您的节点无法与其他节点传输数据。出现此类问题的原因有很多,例如:用户进程限制 (nproc)。查找有关您的问题的更多详细信息,以找出错误的原因。
我希望停用一个 cassandra 节点,因为该节点需要 OS 升级。
我登录到那个节点。执行停用命令,几分钟后我在控制台上收到此异常
nodetool decommission
error: Stream failed
-- StackTrace --
org.apache.cassandra.streaming.StreamException: Stream failed
at org.apache.cassandra.streaming.management.StreamEventJMXNotifier.onFailure(StreamEventJMXNotifier.java:85)
at com.google.common.util.concurrent.Futures.run(Futures.java:1172)
at com.google.common.util.concurrent.MoreExecutors$SameThreadExecutorService.execute(MoreExecutors.java:297)
at com.google.common.util.concurrent.ExecutionList.executeListener(ExecutionList.java:156)
at com.google.common.util.concurrent.ExecutionList.execute(ExecutionList.java:145)
at com.google.common.util.concurrent.AbstractFuture.setException(AbstractFuture.java:202)
at org.apache.cassandra.streaming.StreamResultFuture.maybeComplete(StreamResultFuture.java:208)
at org.apache.cassandra.streaming.StreamResultFuture.handleSessionComplete(StreamResultFuture.java:184)
at org.apache.cassandra.streaming.StreamSession.closeSession(StreamSession.java:412)
at org.apache.cassandra.streaming.StreamSession.onError(StreamSession.java:507)
at org.apache.cassandra.streaming.StreamSession.start(StreamSession.java:229)
at org.apache.cassandra.streaming.StreamCoordinator$StreamSessionConnector.run(StreamCoordinator.java:208)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
我不确定那个异常是什么意思,我打算通过 nodetool netstats 和 nodetool status whoose 输出来验证是否退役成功在下面。在这两个地方都写着 LEAVING,我如何确认它是否完成。
nodetool netstats
Mode: LEAVING
Not sending any streams.
Read Repair Statistics:
Attempted: 1
Mismatch (Blocking): 0
Mismatch (Background): 0
Pool Name Active Pending Completed
Commands n/a 0 26
Responses n/a 0 758780
nodetool status
Datacenter: DC1
===============
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
-- Address Load Tokens Owns Host ID Rack
UL x.x.x.x 1.02 MB 256 ? 377869a9-d01c-4b7d-a24c-dbb90afee3d8 RAC1
我的cassandra版本是2.1.8。发现了一个参考错误 https://issues.apache.org/jira/browse/CASSANDRA-10371,它表示更改可能需要 72 小时才能反映出来。
我应该assassinate the node as mentioned in the Removing a node doc
如果您没有看到nodetool status
中的节点,则确认已完成。如果没有,那么您可以尝试 nodetool removenode
从集群中删除该节点。 nodetool assassinate
是您从集群中删除节点的最后一个选项。如果nodetool removenode
无法从集群中删除节点,那么我们使用nodetool assassinate
删除节点。
错误问题:要查看此错误的更多详细信息,cat /install_directory/apache-cassandra-2.1.8/logs/system.log | grep ERROR
您的节点无法与其他节点传输数据。出现此类问题的原因有很多,例如:用户进程限制 (nproc)。查找有关您的问题的更多详细信息,以找出错误的原因。