2013-08-15 6 views
2

카산드라 클러스터에서 노드를 제거하고이 두 가지 관련 질문 (herehere)과 Cassandra document을 따르고 싶습니다. 그러나 나는 아직도 정확한 과정을 확신하지 못하고있다.카산드라 : 노드 제거

첫 번째 질문은 다음과 같습니다. Cassandra 클러스터에서 노드를 올바르게 제거하는 다음과 같은 방법이 있습니까? 내가 제거하고 싶은

  1. decommission 노드.
  2. removetoken 방금 ​​퇴역시킨 노드. 위의 과정이 옳다면

, 그럼 어떻게 내가 두 번째 단계로 진행 할 수 있도록 서비스 해제 프로세스가 완료 알 수 있습니까? 또는 1 단계 직후 2 단계를 수행하는 것이 항상 안전합니까?

또한, Cassandra document 말한다 :

당신은 죽은 하나를 제거하기 위해 라이브 노드에 nodetool의 서비스 해제, 또는 (다른 머신) nodetool의 removetoken와 클러스터에서 노드를 취할 수 있습니다. 그러면 이전 노드가 을 담당 한 범위가 다른 노드에 할당되고 해당 노드에 해당 데이터가 복제됩니다. 해제를 사용하는 경우 데이터는 폐기 된 노드에서 스트리밍됩니다. removetoken을 사용하면 데이터는 나머지 복제본에서 스트리밍됩니다.

해제 된 노드에서 데이터가 자동으로 제거되지 않습니다. 링의 다른 토큰 에서 노드를 다시 서비스하려는 경우 노드를 수동으로 제거해야합니다.

퇴역 노드가 사용 불능 노드입니까? 또한 폐기 된 노드에서 자동으로 데이터가 제거되지 않으므로 폐기 된 노드에서 데이터를 안전하게 제거 할 수 있는지 (즉, 데이터 스트리밍이 완료된 시점을 알 수있는 방법) 알리는 방법은 무엇입니까?

답변

11

  1. 서비스 해제 nodetool decommission하여 대상 노드하십시오 산드 클러스터에서 노드를 제거하는 단계 (카산드라 v1.2.8)에서 다음과 같이 될 것이다.
  2. 폐기 된 노드의 데이터 스트리밍이 완료되면 폐기 된 노드의 데이터를 수동으로 삭제하십시오 (선택 사항). 워드 프로세서

:

nodetool decommission - Decommission the *node I am connecting to* 

업데이트 :는 위의 프로세스는 시드 노드 작동합니다. 이 경우 클러스터는 다시 시작하지 않고도 원활하게 실행할 수 있습니다. 다른 이유로 클러스터를 다시 시작해야 할 경우 cassandra.yaml에 지정된 seeds 매개 변수를 모든 노드에 대해 업데이트해야합니다.서비스 해제가 시작되면


서비스 해제 대상 노드

, 해제 된 노드는 먼저 (L로 표시) leaving로 표시한다. 다음 예제에서, 우리는 node-76를 제거합니다 :

해제 노드가 leaving로 표시됩니다
> nodetool -host node-76 decommission 
> nodetool status 

Status=Up/Down 
|/ State=Normal/Leaving/Joining/Moving 
-- Address Load  Tokens Owns Host ID        Rack 
UN node-70 9.79 GB 256  8.3% e0a7fb7a-06f8-4f8b-882d-c60bff51328a 155 
UN node-80 8.9 GB  256  9.2% 43dfc22e-b838-4b0b-9b20-66a048f73d5f 155 
UN node-72 9.47 GB 256  9.2% 75ebf2a9-e83c-4206-9814-3685e5fa0ab5 155 
UN node-71 9.48 GB 256  9.5% cdbfafef-4bfb-4b11-9fb8-27757b0caa47 155 
UN node-91 8.05 GB 256  8.4% 6711f8a7-d398-4f93-bd73-47c8325746c3 155 
UN node-78 9.11 GB 256  9.4% c82ace5f-9b90-4f5c-9d86-0fbfb7ac2911 155 
UL node-76 8.36 GB 256  9.5% 15d74e9e-2791-4056-a341-c02f6614b8ae 155 
UN node-73 9.36 GB 256  8.9% c1dfab95-d476-4274-acac-cf6630375566 155 
UN node-75 8.93 GB 256  8.2% 8789d89d-2db8-4ddf-bc2d-60ba5edfd0ad 155 
UN node-74 8.91 GB 256  9.6% 581fd5bc-20d2-4528-b15d-7475eb2bf5af 155 
UN node-79 9.71 GB 256  9.9% 8e192e01-e8eb-4425-9c18-60279b9046ff 155 

, 그것은 다른 생활 노드에 데이터를 스트리밍한다. 스트리밍이 완료되면, 노드는 고리 구조에서 관찰되지 않으며, 다른 노드가 소유 한 데이터가 증가 할 것이다 :

Status=Up/Down 
|/ State=Normal/Leaving/Joining/Moving 
-- Address Load  Tokens Owns Host ID        Rack 
UN node-70 9.79 GB 256  9.3% e0a7fb7a-06f8-4f8b-882d-c60bff51328a 155 
UN node-80 8.92 GB 256  9.6% 43dfc22e-b838-4b0b-9b20-66a048f73d5f 155 
UN node-72 9.47 GB 256  10.2% 75ebf2a9-e83c-4206-9814-3685e5fa0ab5 155 
UN node-71 9.69 GB 256  10.6% cdbfafef-4bfb-4b11-9fb8-27757b0caa47 155 
UN node-91 8.05 GB 256  9.1% 6711f8a7-d398-4f93-bd73-47c8325746c3 155 
UN node-78 9.11 GB 256  10.5% c82ace5f-9b90-4f5c-9d86-0fbfb7ac2911 155 
UN node-73 9.36 GB 256  9.7% c1dfab95-d476-4274-acac-cf6630375566 155 
UN node-75 9.01 GB 256  9.5% 8789d89d-2db8-4ddf-bc2d-60ba5edfd0ad 155 
UN node-74 8.91 GB 256  10.5% 581fd5bc-20d2-4528-b15d-7475eb2bf5af 155 
UN node-79 9.71 GB 256  11.0% 8e192e01-e8eb-4425-9c18-60279b9046ff 155 

일단 수동으로

을 나머지 데이터를 제거 스트리밍이 완료되면 폐기 된 노드에 저장된 데이터는 Cassandra document :

에 설명 된대로 수동으로 제거 할 수 있습니다. 해제되는 노드에서 자동으로 제거됩니다. 링의 다른 토큰 에 노드를 다시 서비스하려는 경우 노드를 수동으로 제거해야합니다.

data_file_directories, commitlog_directory에 저장된 데이터를 제거 할 수 있으며,이 폐기 saved_caches_directory 노드에서 cassandra.yaml 파일에 지정.