ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 09. 카프카 설치(Kafka Installation)
    BackEnd/kafka 2021. 11. 13. 12:23
    반응형

    1. 카프카 바이너리 패키지 Download

    https://kafka.apache.org/downloads

     

    Apache Kafka

    Apache Kafka: A Distributed Streaming Platform.

    kafka.apache.org

      카프카 바이너리 패키지는 2가지 버전이 존재하는데 각각 스칼라 2.12, 2.13 버전 컴파일입니다. 둘 다 실습환경에서 실행 시 기능상 차이가 앖으므로 스칼라 2.12로 컴파일된 패키지를 다운로드 합니다.

      카프카는 윈도우 환경에서 약간의 버그가 존재하기에 실습환경에서만 사용을 권장합니다. 3.0.0 버전으로 설치 후 java.nio.file.AccessDeniedException 발생할 경우 2.8.1 버전으로 다운그레이드합니다.

    3.0.0 download
    2.8.1 download

     

    2. 압축 해제

      다운로드 받은 파일을 적절한 경로에 압축해제 합니다.

    폴더 구조

    3. 카프카 브로커 실행 옵션 설정

    server.properties

      config 폴더에 있는 server.properties 파일에는 카프카 브로커가 클러스터 운영에 필요한 옵션들을 지정할 수 있습니다. 카프카 브로커 설정 변경 시 브로커를 재시작해야 합니다.

    server.properties

      아래는 server.properties 옵션에 대한 설명입니다.

    # 실행하는 카프카 브로커의 번호, 클러스터 구축 시 브러커들 구분
    broker.id=0
    
    # 카프카 브로커가 통신을 위해 열어둘 인터페이스 IP, port, 프로토콜 설정
    # 미설정 시 모든 IP와 port에서 접속 가능
    #listeners=PLAINTEXT://:9092
    
    # 카프카 클라이언트 or 카프카 커맨드 라인 툴에서 접속할 때 사용하는 IP와 port 정보
    #advertised.listeners=PLAINTEXT://your.host.name:9092
    
    # SASL_SSL, SASL_PLAIN 보안 설정 시 프로토콜 매핑을 위한 설정
    #listener.security.protocol.map=PLAINTEXT:PLAINTEXT,SSL:SSL,SASL_PLAINTEXT:SASL_PLAINTEXT,SASL_SSL:SASL_SSL
    
    # 네트워크 스레드 개수 설정
    num.network.threads=3
    
    # 카프카 브로커 내부에서 사용할 스레드 개수 설정
    num.io.threads=8
    
    # 통신을 통해 가져온 데이터를 파일로 저장할 디렉토리 위치
    log.dirs=/tmp/kafka-logs
    
    # 파티션 개수를 명시하지 않고 토픽 생성 시 기본 설정되는 파티션 개수
    num.partitions=1
    
    # 카프카 브로커가 저장한 파일이 삭제되기까지 걸리는 시간 설정
    # log.retention.ms 값으로 설정 권장, log.retention.ms=-1 설정 시 영원히 삭제하지 않음
    log.retention.hours=168
    
    # 카프카 브로커가 저장할 파일의 최대 크기 지정
    log.segment.bytes=1073741824
    
    # 카프카 브로커가 저장한 파일을 삭제하기 위해 체크하는 간격
    log.retention.check.interval.ms=300000
    
    # 카프카 브로커와 연동할 주키퍼의 IP와 port 설정
    zookeeper.connect=localhost:2181
    
    # 주키퍼의 세션 타임아웃 설정
    zookeeper.connection.timeout.ms=18000

     

    4. 주키퍼(zookeeper) 실행

      분산 코디네이션 서비스를 제공하는 주키퍼는 카프카의 클러스터 설정 리더 정보, 컨트롤러 정보를 담고 있어 카프카를 실행하는 데에 필요한 필수 애플리케이션입니다. 1대만 실행하는 주키퍼를 'Quick-and-dirty single-node'라고 부릅니다. 즉, 주키퍼 1대만 실행하여 사용하는 것은 비정상적인 운영임을 뜻하므로 실제 서비스 운영환경에서는 3대 이상의 서버로 구성해야 합니다. -daemon옵션과 주키퍼 설정 경로인 config/zookeeper.properties와 함께 실행하면 주키퍼를 백그라운드에서 실행할 수 있습니다.

    # 카프카 설치 경로로 이동 후 아래 명령어 실행 for Windows
    bin\windows\zookeeper-server-start.bat config\zookeeper.properties
    
    # for Mac
    bin/zookeeper-server-start.sh config/zookeeper.properties

    PowerShell

     

    5. 카프카 브로커 실행

      카프카 브로커 또한 -daemon옵션과 함께 백그라운드 모드로 실행할 수 있습니다.

    # 카프카 설치 경로로 이동 후 아래 명령어 실행 for Windows
    bin\windows\kafka-server-start.bat config\server.properties
    
    # for Mac
    bin/kafka-server-start.sh config/server.properties

    PowerShell

     

    6. 실행 확인

      주키퍼의 default 포트는 2181이고, 카프카의 default 포트는 9092입니다. netstat -a 명령어로 확인합니다.

      카프카가 정상 동작하는지 확인하는 가장 쉬운 방법은 카프카 브로커 정보를 요청하는 것입니다. 카프카 바이너리 패키지는 카프카 브로커에 대한 정보를 가져올 수 있는 kafka-broker-api-versions 명령어를 제공합니다. 해당 명령어와 함께 --bootstrap-server에 인스턴스 IP와 9092 포트를 넣으면 카프카의 버전과 broker.id, rack 정보, 각종 카프카 브로커 옵션들을 확인할 수 있습니다.

    # for Windows
    bin\windows\kafka-broker-api-versions.bat --bootstrap-server localhost:9092
    
    # for Mac
    bin/kafka-broker-api-versions.sh --bootstrap-server localhost:9092

     

    반응형

    댓글

Designed by Tistory.