1

配置zookeeper

  • 进入zookerper-3.4.7目录,执行
cp conf/zoo_sample.cfg conf/zoo.cfg
vim conf/zoo.cfg
  • 配置文件如下:
tickTime=2000

initLimit=10

syncLimit=5

dataDir=/home/hadoopadmin/temp/zookeeper/

clientPort=2181

server.1=spark01:2888:3888 
server.2=spark02:2888:3888 
server.3=spark03:2888:3888

修改完成后拷贝配置内容,依次复制到其他Server下

相关配置介绍
* tickTime:CS通信心跳数;以毫秒为单位,可以使用默认配置。
* initLimit:LF初始通信时限;
* syncLimit:LF同步通信时限;数值不宜过高。
* dataDir:数据文件目录;
* dataLogDir:日志文件目录;
* clientPort:客户端连接端口;
* server.N:服务器名称与地址(服务编号,服务地址,LF通信端口,选举端口)
ZooKeeper高级配置

* gloabalOutstandingLimit:最大请求堆积属,默认1000;
* preAllocSize:预分配的Transaction log空间大小;
* snapCount:每进行snapCount次事务日志输出后,触发一次快照;
* maxClientCnxns:最大并发客户端数;
* forceSync:是否提交事务的同时同步到磁盘;
* leaderServes:是否禁止leader读功能;
* traceFile:是否记录所有请求的log;不建议使用
  • 创建目录
mkdir /home/hadoopadmin/temp/zookeeper
  • 建立Zookeeper节点标识文件myid

创建myid编号,依次在每台Server上执行,注意每台Server的myid要对应正确的编号

host1下输入
echo "1" > /home/hadoopadmin/temp/zookeeper/myid
host2下输入
echo "2" > /home/hadoopadmin/temp/zookeeper/myid
host3下输入
echo "3" > /home/hadoopadmin/temp/zookeeper/myid
  • 配置环境变量并使环境变量立即生效
vim /etc/profile
在末尾加入以下命令(只有root用户才可以改哦)
export ZOOKEEPER_HOME=/home/saprk01/bigdata/zookeeper-3.4.10
export PATH=$ZOOKEEPER_HOME/bin:$PATH
完成后保存退出,并使环境变量立即生效
source /etc/profile
同样,在其它Server也要做同样的操作。

启动并监控状态

  • 启动ZooKeeper
zkServer.sh start
  • 检查ZooKeeper的状态
zkServer.sh status
  • 这里需要注意下,各台Server的防火墙要关闭,要不可能会报错。关闭防火墙方法:
service iptables stop
  • 执行后查询是否关闭
service iptables status

集群启动脚本

  • 这里我写了一个集群启动脚本,基础环境(host、ssh、jdk等)都配置正确时,可以简单修改考虑使用
./start-all.sh start  #启动每一台机器上的kafka
./start-all.sh status #查看启动状态
#!/bin/bash --login
#需要改成集群的机器名称
ZOOKEEPERS="spark01 spark02 spark03"
# 执行前需要在/etc/environment  配置jdk环境

command=$1

start $command $ZOOKEEPERS

start(){
    for zookeeper in $2
    do
        echo "$1 zookeeper on $zookeeper"
        #需要修改一下目录
        ssh -l hadoopadmin $zookeeper  "/home/hadoopadmin/zookeeper-3.4.10/bin/zkServer.sh $1"
        #ssh -l hadoopadmin $zookeeper "java -version"
    done
}

sev7e0
1 声望1 粉丝