2014-02-06 10 views
0

분산 시스템에서 Google MapReduce 및 GSF 연구 논문과 같은 몇 가지 사항을 최근에 읽었습니다. 이 두 시스템은 다른 "작업자"노드를 조정하는 Master 노드가 있다는 사실에 의존합니다. 디자이너가 마스터 실패로부터 자신을 보호 할 수 있을지 궁금합니다. MapReduce 논문에서 우리는 읽을 수 있습니다 :분산 시스템 - 마스터 오류

It is easy to make the master write periodic checkpoints of the master data structures described above. 
If the master task dies, a new copy can be started from the last checkpointed state 

WHO는 마스터 실패를 모니터링 할 책임이 있습니까? 사용자 코드는 Distributed System (Master)에 대한 제어권을 제공하고 그 결과를 기다리고 있습니다. 근로자 노드가 새로운 리더를 선출해야 하는가? 마스터에게 때때로 ping을 보내는 휴면 노드의 우선 순위 목록이 있어야하며 실패 할 경우 우선 순위가 가장 높은 노드 (ID)가 시작됩니다. 기사 나 더 많은 기술적 인 답변에 대한 포인터에 감사 할 수 있도록이 중 어떤 것이 의미가 있는지 확실하지 않습니다. 이 개 측면에서 그것에

답변

2

내가 기사를 가지고 있지만하지 않는 최초의 모습 :

  1. 당신은 마스터가 정말 실패 또는 네트워크가 단지 분할되는 경우 감지 할 수있는 신뢰할 수있는 방법이 필요합니다 -이 아무튼
  2. 새 마스터를 선택해야합니다. 설명 된 기술로 수행하거나 네트워크 파티셔닝을 방지하기 위해 paxos 알고리즘을 사용하여 새 마스터를 찾을 수 있습니다.

두 포인트는 모두 자체적으로 복잡합니다. h MapReduce 및 GFS 논문에 포함되지 않은 이유는 그 밖의 것에 초점을두고 있기 때문입니다.

MapReduce - Hadoop의 오픈 소스 구현으로 이동 - 나는 사육사가 마스터를 모니터링하고 실패 할 경우를 대비하여 새 마스터를 선출하는 작업을 담당한다고 생각합니다. 나는 Hadoop에 대해 100 % 확신하지는 못했지만, Giraph (프리 젤의 오픈 소스 구현)가 사육사를 정확히 이런 방식으로 사용한다는 것을 알고 있습니다.

어떻게 해결되는지 보려면 사육사에 관한 자료를 찾아 볼 수 있습니다.

+0

마스터가 실제로 실패했는지 또는 네트워크가 방금 분할되어 있는지 감지 할 수있는 확실한 방법이 필요합니다. 그게 무슨 뜻입니까? 마스터가 하나이므로이 특정 마스터가 실패한 것이 분명합니다. 예를 들어 링 토폴로지의 경우에 대해 말하지 않는 한, 의도 한 바가 아니 었습니다. – Bober02

+0

하나의 노드가 마스터에 접속할 수 없기 때문에 그것이 죽었다는 것을 의미하지는 않습니다. 다른 노드는 네트워크 파티션이라고하는 다른 노드와 통신 할 수 있습니다. 당신은 CAP 정리를 살펴볼 때 그것에 대해 더 많이 읽을 수 있습니다. – peter