본문 바로가기

Zookeeper

Zookeeper-client 라이브러리 빌드

[1. 개요]

Zookeeper-client 관련하여, C++ 에서 사용하기 위한, 라이브러리 빌드 과정 기술.

  • 리눅스 기반.

zookeeper-jute

  • 직렬화와 역직렬화(serialization/deserialization) 작업을 수행하는 라이브러리
  • Zookeeper의 데이터 객체(예: DataNode, Request 등)들을 네트워크로 전송할 수 있는 형태로 변환하거나, 
  • 다시 원래 객체로 복원하는 작업을 한다.

[2. Prerequisite]

몇몇 바이너리 필요

  • java
  • mvn
  • cmake

mvn 은 아래에서 원하는 버전으로 다운로드 혹은...


[3. 빌드 과정]

소스코드 다운로드

https://github.com/apache/zookeeper/archive/refs/tags/release-3.5.8.zip

 

압축파일을 해제하면 아래와 같은 디렉터리를 확인 할 수 있으며,

여기서는 jut 와 client 만 집중하도록 한다.

  • zookeeper-assembly/
  • zookeeper-client/
  • zookeeper-contrib/
  • zookeeper-docs/
  • zookeeper-it/
  • zookeeper-jute/
  • zookeeper-recipes/
  • zookeeper-server/

먼저, zookeeper-jute 로 및 mvn 을 이용하여 compile 을 진행하다.

  • cd zookeeper-jute
  • mvn compile

성공 메시지를 확인하고 나면,

  • [INFO] BUILD SUCCESS

zookeeper-client 로 이동한다.

이동하면, generated 라는 디렉터리를 확인 할 수 있다.

  • cd ../zookeeper-client/zookeeper-client-c

이 후,  CMakeLists.txt 를 수정하도록 한다.

  • DEFAULT_WANT_CPPUNIT 가 ON 으로 되어 있는 부분을 OFF 로 수정한다.

이제, cmake 와 make 를 이용하여 빌드를 마무리한다.

  • mkdir build
  • cd build
  • cmake ..
  • make

생성 된 정적 라이브러리를 확인한다. 

  • libhashtable.a
  • libzookeeper.a

[4. ref]