# 二 Zookeeper的安装部署

### 2.1 Zookeeper的安装

- Zookeeper安装前需要安装好 JDK。配置好环境变量。

- 下载:[zookeeper-3.4.5-cdh5.7.0.tar.gz](http://archive.cloudera.com/cdh5/cdh/5/zookeeper-3.4.5-cdh5.7.0.tar.gz)

- 解压

  ``` shell
  tar -zxvf zookeeper-3.4.5-cdh5.7.0.tar.gz  -C ~/bigdata/
  ```

- 解压后进入到 zookeeper目录 找到conf目录, 复制配置文件并编辑

  ``` shell
  cp zoo_sample.cfg zoo.cfg 
  vi zoo.cfg
  ```

- 在zoo.cfg中添加如下内容

  ``` shell
  dataDir=/root/bigdata/zookeeper-3.4.5-cdh5.7.0/data
  dataLogDir=/root/bigdata/zookeeper-3.4.5-cdh5.7.0/logs
  ```


- 配置完毕后 进入bin目录运行

  ``` shell
  ./zkServer.sh start
  ```

- 查看运行状态

  ``` shell
  ./zkServer.sh status 
  
  JMX enabled by default
  Using config: /home/hadoop/app/zookeeper-3.4.5-cdh5.7.0/bin/../conf/zoo.cfg
  Mode: standalone
  ```

- 停止运行

  ```shell
  ./zkServer.sh stop
  
  Using config: /home/hadoop/app/zookeeper-3.4.5-cdh5.7.0/bin/../conf/zoo.cfg
  Stopping zookeeper ... STOPPED
  ```

### 2.2 zoo.cfg配置

- tickTime: 用于计算的时间单位 比如session超时: N*tickTime
- initLimit: 用于集群, 允许从节点连接并同步到master节点的初始化连接时间, 以tickTime的倍数来表示
- syncLimit: 用于集群, master主节点与从节点之间发送消息, 请求和应答时间长度.(心跳机制)
- dataDir: 必须配置
- dataLogDir:日志目录, 如果不配置会和dataDir公用
- clientPort: 连接服务器的端口, 默认2181

### 2.3 Zookeeper主要目录结构

- bin 主要的一些运行命令
- conf 存放配置文件, 其中需要修改的是zk.cfg
- contrib:附加的一些功能
- dist-maven: mvn编译后的目录
- docs:文档
- lib: 需要依赖的jar包
- recipes:案例demo代码
- src:源码