环境

  • Centos 6.5 64位

  • jdk 1.8 u 101

  • python 2.7.12

  • zookeeper 3.4.8

  • https://www.python.org/ftp/python/2.7.12/下载tgz文件

修改服务器信息

  • 更改master的hostname为master

    vim /etc/sysconfig/network更改hostname

    重启后生效,用hostname命令检查是否生效

  • 更改hosts文件 对应master和slave的ip

    vim /etc/hosts

配置免密码登录

  • 使用```ssh-keygen命令生成密钥对

  • cp id_rsa.pub authorized_keys

  • 把其他机器的公钥也复制到authorized_keys文件中

  • 使用scp命令将hosts文件和authorized_keys文件传输到其他机器

    spc 文件名 用户名@IP:地址

    如果是文件夹加上`-r```

  • 使用ssh 主机名 尝试是否能连接到主机

安装jdk

  • tar -zxvf 包名

  • 把bin的路径添加到~/.bashrc文件中:

    PATH=$PATH:路径

    export PATH

编译安装python

  • 解压压缩包

  • 进入目录

  • ./configure

  • make

  • 转到root,make install,再转回来

安装ZooKeeper

  • 解压ZooKeeper

  • 将zk的bin目录加入到环境变量中

  • 复制conf中的zoo_sample.cfg为zoo.cfg

  • 添加如下配置

dataDir=/home/matrix42/storm/zookeeper/data
dataLogDir=/home/matrix42/storm/zookeeper/datalog
clientPort=2181
server.1=master:2888:3888
server.2=slave1:2888:3888
server.3=slave2:2888:3888
  • 新建data,datalog目录

  • 在data目录下新建myid文件,按服务器写入1,2,3....

配置说明

  • initLimit:多少个心跳时间内,允许其他server连接并初始化数据,如果ZooKeeper管理的数据较大,则应相应增大这个值

  • clientPort:服务的监听端口

  • dataDir:用于存放内存数据库快照的文件夹,同时用于集群的myid文件也存在这个文件夹里(注意:一个配置文件只能包含一个dataDir字样,即使它被注释掉了)

  • dataLogDir:用于单独设置transaction log的目录,transaction log分离可以避免和普通log还有快照的竞争

  • syncLimit:多少个tickTime内,允许follower同步,如果follower落后太多,则会被丢弃

启动ZK集群

  • zkServer.sh start

  • 如遇到Error contacting service. It is probably not running.错误可以把zk的端口号加入到iptables或关闭防火墙

  • 可能需要安装nc包yum install nc

  • zkServer.sh status检查ZK状态

  • zkServer.sh stop 停止ZK服务

  • zkServer.sh restart 重启ZK服务

  • Zookeeper常用命令