Cloudera CDH/CDP 및 Hadoop EcoSystem, Semantic IoT등의 개발/운영 기술을 정리합니다. gooper@gooper.com로 문의 주세요.
1. zookeeper다운로드
http://apache.mirror.cdnetworks.com/zookeeper/zookeeper-3.4.6/
2. 압축풀기
tar xvfz zookeeper-3.4.6.tar.gz
3. soft link 생성
ln -s zookeeper-3.4.6 zookeeper
3-1 /data/zookeeper/data경로를 생성해준다.
3-1. log4j.properties수정(default가 . 이므로 zk서버 기동한곳에 생기게 되므로 /logs/zookeeper밑에 저장하도록 수정함)
#zookeeper.log.dir=.
zookeeper.log.dir=/logs/zookeeper/logs
#zookeeper.tracelog.dir=.
zookeeper.tracelog.dir=/logs/zookeeper/logs
# DEFAULT: console appender only
log4j.rootLogger=${zookeeper.root.logger} 를 주석으로 막고
# Example with rolling log file and tracing
#log4j.rootLogger=TRACE, CONSOLE, ROLLINGFILE의 주석을 풀어준다.
(TRACEFILE은 로그파일 사이즈가 너무 커지므로 log를 기록하지 않도록 함)
4. conf/zoo.cfg수정
- cp zoo_sample.cfg zoo.cfg
- vi zoo.cfg
----------------------------------------------------
# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes.
dataDir=/data/zookeeper/data
# the port at which the clients will connect
clientPort=2181
# the maximum number of client connections.
# increase this if you need to handle more clients
#maxClientCnxns=60
#
# Be sure to read the maintenance section of the
# administrator guide before turning on autopurge.
#
# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# The number of snapshots to retain in dataDir
#autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to "0" to disable auto purge feature
#autopurge.purgeInterval=1
server.1=master:2888:3888
server.2=node1:2888:3888
server.3=node2:2888:3888
zookeeper.skipACL=true
# If the consumer fails to heartbeat to zookeeper for this period of time it is considered dead and a rebalance will occur
zookeeper.session.timeout.ms=20000
# The max time that the client waits while establishing a connection to zookeeper
zookeeper.connection.timeout.ms=20000
--------------------------------------
5. 다른 2개의 서버에 동일하게 반영
scp -r -P 22 zookeeper-3.4.6 root@node1:$HOME
scp -r -P 22 zookeeper-3.4.6 root@node2:$HOME
* 각서버에 들어가서 ln -s zookeeper-3.4.6 zookeeper실행으로 링크 생성
6. dataDir(예, /data/zookeeper/data)로 지정된 data폴더에 들어가서 myid라는 파일을 만들고 1 혹은 2 혹은 3을 내용으로 기록하고 저장한다.
7. 서버기동(각각의 서버에서 각각 실행 시킴)
[root@master bin]$ ./zkServer.sh start
JMX enabled by default
Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
* 각각의 서버에서 각각 실행해야함
conf경로가 안맞에서 conf디렉토리를 bin밑으로 옮겨줌..
8. zk에 접속해서 값 확인
bin/zkCli.sh -server master:2181