사육사-개요

ZooKeeper는 대규모 호스트 집합을 관리하기위한 분산 조정 서비스입니다. 분산 환경에서 서비스를 조정하고 관리하는 것은 복잡한 프로세스입니다. ZooKeeper는 간단한 아키텍처와 API로이 문제를 해결합니다. ZooKeeper를 사용하면 개발자가 애플리케이션의 분산 특성에 대해 걱정하지 않고 핵심 애플리케이션 로직에 집중할 수 있습니다.

ZooKeeper 프레임 워크는 원래 "Yahoo!"에서 빌드되었습니다. 쉽고 강력한 방식으로 애플리케이션에 액세스 할 수 있습니다. 나중에 Apache ZooKeeper는 Hadoop, HBase 및 기타 분산 프레임 워크에서 사용하는 조직화 된 서비스의 표준이되었습니다. 예를 들어 Apache HBase는 ZooKeeper를 사용하여 분산 데이터의 상태를 추적합니다.

더 나아 가기 전에 분산 응용 프로그램에 대해 한두 가지를 아는 것이 중요합니다. 이제 분산 응용 프로그램에 대한 간략한 개요로 토론을 시작하겠습니다.

분산 응용 프로그램

분산 응용 프로그램은 특정 작업을 빠르고 효율적으로 완료하기 위해 서로 조정하여 주어진 시간에 (동시에) 네트워크의 여러 시스템에서 실행할 수 있습니다. 일반적으로 분산되지 않은 응용 프로그램 (단일 시스템에서 실행)으로 완료하는 데 몇 시간이 걸리는 복잡하고 시간이 많이 걸리는 작업은 관련된 모든 시스템의 컴퓨팅 기능을 사용하여 분산 응용 프로그램에서 몇 분 안에 수행 할 수 있습니다.

더 많은 시스템에서 실행되도록 분산 응용 프로그램을 구성하면 작업 완료 시간을 더욱 줄일 수 있습니다. 분산 응용 프로그램이 실행되는 시스템 그룹을Cluster 클러스터에서 실행되는 각 머신을 Node.

분산 응용 프로그램은 두 부분으로 구성됩니다. ServerClient신청. 서버 응용 프로그램은 실제로 분산되어 있으며 클라이언트가 클러스터의 모든 서버에 연결하여 동일한 결과를 얻을 수 있도록 공통 인터페이스를 가지고 있습니다. 클라이언트 응용 프로그램은 분산 응용 프로그램과 상호 작용하는 도구입니다.

분산 응용 프로그램의 이점

  • Reliability − 단일 또는 소수의 시스템이 실패한다고해서 전체 시스템이 실패하는 것은 아닙니다.

  • Scalability − 가동 중지 시간없이 애플리케이션 구성을 약간 변경하여 더 많은 기계를 추가하여 필요할 때마다 성능을 향상시킬 수 있습니다.

  • Transparency − 시스템의 복잡성을 숨기고 자신을 단일 엔티티 / 응용 프로그램으로 표시합니다.

분산 응용 프로그램의 과제

  • Race condition− 특정 작업을 수행하려는 두 대 이상의 컴퓨터. 실제로 주어진 시간에 단일 컴퓨터에서만 수행해야하는 작업. 예를 들어, 공유 리소스는 주어진 시간에 단일 시스템에서만 수정해야합니다.

  • Deadlock − 서로가 무기한 완료되기를 기다리는 두 개 이상의 작업.

  • Inconsistency − 부분적인 데이터 오류.

Apache ZooKeeper는 무엇을 의미합니까?

Apache ZooKeeper는 클러스터 (노드 그룹)에서 강력한 동기화 기술을 사용하여 자신을 조정하고 공유 데이터를 유지하는 데 사용하는 서비스입니다. ZooKeeper는 그 자체로 분산 애플리케이션을 작성하기위한 서비스를 제공하는 분산 애플리케이션입니다.

ZooKeeper에서 제공하는 일반적인 서비스는 다음과 같습니다.

  • Naming service− 이름으로 클러스터의 노드 식별. DNS와 유사하지만 노드 용입니다.

  • Configuration management − 가입 노드에 대한 시스템의 최신 및 최신 구성 정보.

  • Cluster management − 클러스터의 노드 가입 / 탈퇴 및 실시간 노드 상태.

  • Leader election − 조정 목적으로 노드를 리더로 선출.

  • Locking and synchronization service− 수정하는 동안 데이터 잠금. 이 메커니즘은 Apache HBase와 같은 다른 분산 애플리케이션을 연결하는 동안 자동 장애 복구에 도움이됩니다.

  • Highly reliable data registry − 하나 또는 몇 개의 노드가 다운 된 경우에도 데이터 가용성.

분산 애플리케이션은 많은 이점을 제공하지만 몇 가지 복잡하고 크랙하기 어려운 문제도 제기합니다. ZooKeeper 프레임 워크는 모든 문제를 극복 할 수있는 완전한 메커니즘을 제공합니다. 경쟁 조건 및 교착 상태는 다음을 사용하여 처리됩니다.fail-safe synchronization approach. 또 다른 주요 단점은 ZooKeeper가 해결하는 데이터의 불일치입니다.atomicity.

ZooKeeper의 이점

ZooKeeper 사용의 이점은 다음과 같습니다.

  • Simple distributed coordination process

  • Synchronization− 서버 프로세스 간의 상호 배제 및 협력. 이 프로세스는 구성 관리를 위해 Apache HBase에서 도움이됩니다.

  • Ordered Messages

  • Serialization− 특정 규칙에 따라 데이터를 인코딩합니다. 애플리케이션이 일관되게 실행되는지 확인하십시오. 이 접근 방식은 MapReduce에서 큐를 조정하여 실행중인 스레드를 실행하는 데 사용할 수 있습니다.

  • Reliability

  • Atomicity − 데이터 전송이 완전히 성공하거나 실패하지만 부분적인 트랜잭션은 없습니다.