하둡 완벽 가이드 4판 맛보기

Page 161

CHAPTER

21

주키퍼

지금까지 이 책에서 대용량 데이터 처리를 배웠다. 이 장에서는 하둡의 분산 코디네이션 Coordination 서비스인 주키퍼 ZooKeeper 를 이용해서 분산 애플리케이션을 구축하는 방법을 알아보겠다. 분산 애플리케이션을 작성하는 것은 매우 어려운 일이다. 가장 큰 이유는 부분 실패 partial failure 때 문이다. 네트워크로 연결된 두 노드 사이에 메시지가 전송된 후 네트워크가 끊겼을 때 송신자는 수신자가 메시지를 수신했는지 여부를 모르게 된다. 네트워크가 끊기기 전에 잘 도착했을 수도 있고 그렇지 않을 수도 있다. 어쩌면 수신자 프로세스가 메시지는 제대로 받았지만 처리 도중에 죽었을 수도 있다. 어떤 일이 일어났는지 송신자가 알 수 있는 유일한 방법은 수신자에게 다시 연결해서 물어보는 것이다. 이것이 바로 부분 실패, 다시 말해 작업의 실패 여부조차 모르게 되 는 상황이다. 분산 시스템에 있어서 부분 실패는 절대 피할 수 없기 때문에 주키퍼를 사용한다고 해도 부분 실 패가 완전히 사라지는 것은 아니며 완벽히 감출 수도 없다.1 그러나 주키퍼는 부분 실패를 안전 하게 처리할 수 있는 분산 애플리케이션을 구축하기 위한 도구를 제공한다. 주키퍼는 다음과 같은 특징이 있다.

1 이 내용은 짐 왈도(Jim Waldo) 공저 「분산 컴퓨팅에 대한 메모(A Note on Distributed Computing)」(http://www.eecs.harvard. edu/~waldo/Readings/waldo-94.pdf )( Sun Microsystems, November 1994 )에서 주장한 것이다. 분산 프로그래밍은 본질적 으로 로컬 프로그래밍과 다른데, 그 차이점은 단순히 덮고 넘어갈 수준이 아니다.

749


Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.