* zookeeper zoo.cfg
Minimum Configuration
1. 주요 설정 항목
항목 |
설명 |
clientPort |
클라이언트 접속을 대기하는 포트. 즉, 클라이언트가 연결을 시도하는 포트입니다. |
dataDir |
ZooKeeper가 메모리 내 데이터베이스 스냅 샷을 저장할 위치이며, 특별히 지정하지 않는 한 데이터베이스 업데이트에 대한 트랜잭션 로그입니다. |
* 트랜잭션 로그를 어디에 두어야하는지주의하십시오. 전용 트랜잭션 로그 장치는 일관된 우수한 성능의 핵심입니다. 로그를 사용중인 장치에두면 성능에 나쁜 영향을줍니다. | |
tickTime |
ZooKeeper가 사용하는 기본 시간 단위 인 단일 틱의 길이 (밀리 초 단위). 하트 비트 및 제한 시간을 조정하는 데 사용됩니다. 예를 들어, 최소 세션 타임 아웃은 2 tick입니다. |
Advanced Configuration
2. 고급 구성을 위한 설정 항목
이하 구성 설정은 선택 사항입니다. ZooKeeper 서버의 동작을 더욱 세밀하게 조정할 수 있습니다. 일부는 Java 시스템 속성 (일반적으로 zookeeper.keyword 형식)을 사용하여 설정할 수도 있습니다. 사용 가능한 경우에 정확한 시스템 속성은 다음과 같습니다.
항목 |
설정 |
dataLogDir (Java 시스템 속성 없음) |
이 옵션은 머신이 트랜잭션 로그를 dataDir이 아닌 dataLogDir에 기록하도록 합니다. 이를 통해 전용 로그 장치를 사용할 수 있으며 로깅과 스냅 샷간의 경쟁을 피할 수 있습니다. |
* 전용 로그 장치가 있으면 처리량과 안정적인 대기 시간에 큰 영향을 미칩니다. 로그 장치를 전용으로 지정하고 해당 장치의 디렉터리를 가리 키도록 dataLogDir을 설정 한 다음 dataDir을 해당 장치에 없는 디렉터리로 지정해야 합니다. |
|
globalOutstandingLimit (Java 시스템 속성: zookeeper.globalOutstandingLimit.) |
클라이언트들은, 보통 이상으로 다수의 클라이언트가 있다면, ZooKeeper가 처리 할 수있는 것보다 빠르게 요청을 제출할 수 있습니다. ZooKeeper가 대기중인 요청으로 인해 메모리 부족을 방지하기 위해 ZooKeeper는 클라이언트에 globalOutstandingLimit 미해결 요청이 시스템에 없도록 제한합니다. 기본 제한은 1,000입니다. |
preAllocSize (Java 시스템 등록 정보: zookeeper.preAllocSize) |
검색을 피하기 위해 ZooKeeper는 preAllocSize 킬로바이트 블록 단위로 트랜잭션 로그 파일에 공간을 할당합니다. 기본 블록 크기는 64M입니다. 블록 크기를 변경하는 한 가지 이유는 스냅 샷을 더 자주 사용하는 경우 블록 크기를 줄이는 것입니다. (snapCount 참조). |
snapCount (Java 시스템 등록 정보 : zookeeper.snapCount) |
ZooKeeper는 트랜잭션을 트랜잭션 로그에 기록합니다. snapCount 트랜잭션이 로그 파일에 기록된 후 스냅 샷이 시작되고 새 트랜잭션 로그 파일이 작성됩니다. 기본 snapCount는 100,000입니다. |
traceFile (Java 시스템 속성: requestTraceFile) | 이 옵션이 정의되면 요청은 traceFile.year.month.day라는 추적 파일에 기록됩니다. 이 옵션을 사용하면 유용한 디버깅 정보를 얻을 수 있지만 성능에는 영향을줍니다. (참고 : 시스템 속성에는 사육사 접두어가 없으며 구성 변수 이름은 시스템 속성과 다릅니다. 예 - 일관성이없고 성가 시게됩니다.) |
maxClientCnxns (Java 시스템 속성 없음) | IP 주소로 식별되는 단일 클라이언트가 ZooKeeper 앙상블의 단일 구성원으로 만들 수 있는(소켓 수준으로) 동시 연결 수를 제한합니다. 이것은 파일 디스크립터 소진을 포함하여 특정 클래스의 DoS 공격을 방지하는 데 사용됩니다. 기본값은 60입니다. 이 값을 0으로 설정하면 동시 연결의 제한이 완전히 제거됩니다. |
clientPortAddress | 3.3.0의 새로운 점 : 클라이언트 연결을 대기하는 주소 (ipv4, ipv6 또는 hostname). 즉, 클라이언트가 연결을 시도하는 주소입니다. 이것은 선택 사항입니다. 기본적으로 서버의 어떠한 주소 혹은 인터페이스 그리고 NIC에 대한 clientPort의 모든 연결이 허용되도록 바인딩합니다. |
minSessionTimeout (Java 시스템 속성 없음) | 3.3.0의 새로운 기능 : 서버가 클라이언트의 협상을 허용하는 최소 세션 시간 초과 (밀리 초)입니다. tickTime의 2배가 기본값입니다. |
maxSessionTimeout (Java 시스템 특성 없음) | 3.3.0의 새로운 기능 : 서버가 클라이언트의 협상을 허용하는 최대 세션 시간 초과 (밀리 초)입니다. 기본값은 tickTime의 20배입니다. |
fsync.warningthresholdms (Java 시스템 속성: fsync.warningthresholdms) | 3.3.4의 새로운 사항 : 트랜잭션 로그(WAL)의 fsync가 이 값보다 오래 걸릴 때마다 경고 메시지가 로그에 출력됩니다. 값은 밀리 초 단위로 지정되며 기본값은 1000입니다. 이 값은 시스템 속성으로만 설정할 수 있습니다. |
autopurge.snapRetainCount (Java 시스템 속성 없음) | 3.4.0의 새로운 기능 : 활성화되면 ZooKeeper 자동 제거 기능은 autopurge.snapRetainCount 가장 최근의 스냅 샷과 해당 트랜잭션 로그를 각각 dataDir 및 dataLogDir에 유지하고 나머지는 삭제합니다. 기본값은 3입니다. 최소값은 3입니다. |
autopurge.purgeInterval (Java 시스템 속성 없음) | 3.4.0의 새로운 기능 : 제거 작업을 트리거해야 하는 시간 간격. 자동 제거를 사용하려면 양의 정수 (1 이상)로 설정하십시오. 기본값은 0입니다. |
syncEnabled (Java 시스템 속성: zookeeper.observer.syncEnabled) | 3.4.6, 3.5.0의 새로운 기능 : 관찰자는 기본적으로 트랜잭션과 스냅 샷을 디스크에 기록합니다. 이렇게 하면 재시작 시 옵저버의 복구 시간이 단축됩니다. 이 기능을 사용하지 않으려면 "false"로 설정하십시오. 기본값은 "true"입니다. |
Cluster Options
추후 추가
Authentication & Authorization Options
추후 추가
Experimental Options/Features
추후 추가
Unsafe Options
추후 추가
참조: https://zookeeper.apache.org/doc/r3.4.8/zookeeperAdmin.html#sc_configuration
'Big Data Platform > Zookeeper' 카테고리의 다른 글
[알림] Unable to read additional data from server sessionid 0x0, likely server has closed socket, closing socket connection and attempting reconnect (0) | 2017.10.17 |
---|---|
Zookeeper 환경 구축 (0) | 2017.10.10 |