2010-11-19 5 views
5

HBase의 사육사 구성을 설명 할 때이 점을 보았습니다.이 용어에 익숙하지 않습니다. 'N'은 HBase 클러스터의 노드 수와 관련이 있습니까? 또는 사육사 클러스터에서 사용해야하는 노드 수?2n + 1 쿼럼은 무엇을 의미합니까?

답변

6

2f + 1은 필요한 안정성/가용성 수준을 나타내며 일반적으로 성능과 관련이 없습니다.

ZooKeeper 앙상블 (서비스 클러스터)은 각 변경 사항에 "투표"하는 하나 이상의 서버로 구성됩니다. 원래 서버의 대부분은 승인되기 전에 변경을 "승인"해야합니다. 클라이언트 (이 경우 hbase)는 앙상블에 연결하여 좌표에 사용합니다. 앙상블이 작동하면 클라이언트가이를 수행 할 수 있습니다. 앙상블이 작동 중지 된 경우 hbase은 서비스를 사용할 수 없습니다.

앙상블에 3 개의 서버 (f = 1)가있는 경우 하나가 실패하면 서비스가 여전히 작동합니다 (2 명이 다수). 그러나 두 번째 서버가 실패하면 서비스가 중단됩니다.

앙상블에 5 개의 서버 (f = 2)가 있다고 가정 해보십시오. 이 경우 두 대의 서버가 실패 할 수 있으며 (3 대다수) 서비스가 계속 작동합니다.

일반적으로 3 개의 서버가 충분합니다. 그러나 온라인 프로덕션 서비스 환경에서는 5를 제안합니다. 왜? 예정된 유지 보수를 위해 1 대의 서버를 사용한다고 가정 해보십시오. 5 대의 서버가있는 경우 남아있는 활성 서버 중 하나에 예기치 않게 장애가 발생하더라도 문제가 발생하지 않습니다.

그럼 왜 101 대의 서버가 없습니까? - 탄스타프. 여기 그래프를보십시오. ZK는 쿼럼 기반 서비스입니다. 서버 수가 증가하면 실제로 쓰기 성능이 저하됩니다. 쿼럼 프로세스 (투표)에 참여하려면 더 많은 서버가 필요합니다. 결과적으로 쓰기 ops/초가 감소합니다. (읽기는 영향을받지 않습니다).

4

n은 시스템에서 발생할 수 있지만 여전히 대부분의 노드에서 작동 할 수있는 오류 수를 나타냅니다. 두 가지 예 :

n = 1-2n+1 = 5 노드

등등의 총에서 실패 할 수있는 두 개의 노드 - 하나 개의 노드가 2n+1 = 3 노드

n = 2의 총에서 실패 할 수 있습니다!

+1

Chris Bunch의 대답을 명확히하기 위해 노드는 사육사 노드이므로 2n + 1은 실패한 사육사 노드에서 생존하기 위해 2n + 1 개의 Zookeepr 노드가 필요하다는 것을 의미합니다. –

관련 문제