Zookeeper安装使用(centos7.2)

Zookeeper 安装

安装java:yum install java

 

Zookeeper下载目录(选择稳定版本):http://apache.org/dist/zookeeper/

例如:http://apache.org/dist/zookeeper/stable/zookeeper-3.4.9.tar.gz

 

解压:

tar -zxvf zookeeper-3.4.9.tar.gz -C /opt/libs

 

“bin目录”中存放有运行脚本;“conf目录”中存放有配置文件;“lib目录”中存放有运行所需要第三方库

 

Zookeeper 配置

一、机模式

1.1编辑配置文件:

> cp /opt/libs/zookeeper-3.4.9/conf/zoo_sample.cfg /opt/libs/zookeeper-3.4.9/conf/zoo.cfg> vi /opt/zookeeper/conf/zoo.cfg 编辑修改下面信息: dataDir=/opt/data/zookeeper/         //数据目录. 可以是任意目录.dataLogDir=/opt/data/zookeeper/logs  //log目录, 同样可以是任意目录. 如果没有设置该参数, 将使用和#dataDir相同的设置.clientPort=2181                  //监听client连接的端口号tickTime=2000                        //zookeeper中使用的基本时间单位, 毫秒值.

 

启动与停止:

方式1:

启动zookeeper服务:

/opt/libs/zookeeper-3.4.9/bin/zkServer.sh start

停止zookeeper服务:

/opt/libs/zookeeper-3.4.9/bin/zkServer.sh stop

方式2:

/opt/libs/zookeeper-3.4.9/bin/zkServer.sh start-foreground (非后台运行ZooKeeper Server进程)

验证是否成功:telnet 127.0.0.1 2181

 

二、集群模式

Zookeeper的分布式部署安装详细文档(集群模式)

集群模式有两种形式:
1)使用多台机器,在每台机器上运行一个ZooKeeper Server进程;
2)使用一台机器,在该台机器上运行多个ZooKeeper Server进程。
在生产环境中,一般使用第一种形式,在练习环境中,一般使用第二种形式。

 

配置

  1. data目录
    用于存放进程运行数据。
  2. data目录下的myid文件
    用于存储一个数值,用来作为该ZooKeeper Server进程的标识。
  3. 监听Client端请求的端口号
  4. 监听同ZooKeeper集群内其他Server进程通信请求的端口号
  5. 监听ZooKeeper集群内“leader”选举请求的端口号
    该端口号用来监听ZooKeeper集群内“leader”选举的请求。注意这个是ZooKeeper集群内“leader”的选举,跟分布式应用程序无关。

参数配置注意事
1)同一个ZooKeeper集群内,不同ZooKeeper Server进程的标识需要不一样,即myid文件内的值需要不一样
2)采用上述第2种形式构建ZooKeeper集群,需要注意“目录,端口号”等资源的不可共享性,如果共享会导致ZooKeeper Server进程不能正常运行,比如“data目录,几个监听端口号”都不能被共享

myid Data Client Server Leader 配置文件
1 /opt/data/zookeeper/z1 2181 2222 2225 z1.cfg
2 /opt/data/zookeeper/z2 2182 3333 3335 z2.cfg
3 /opt/data/zookeeper/z3s 2183 4444 4445 z3.cfg

配置如下:

# zx.cfg

tickTime=2000

initLimit=10

syncLimit=2

dataDir=/opt/data/zookeeper/zx

clientPort=218x

# server.x中的“x”表示ZooKeeper Server进程的标识

server.1=127.0.0.1:2222:2225

server.2=127.0.0.1:3333:3335

server.3=127.0.0.1:4444:4445

注:

  • initLimit: zookeeper集群中的包含多台server, 其中一台为leader, 集群中其余的server为 initLimit参数配置初始化连接时, follower和leader之间的最长心跳时间. 此时该参数设置为5, 说明时间限制为5倍tickTime, 即5*2000=10000ms=10s.
  • syncLimit: 该参数配置leader和follower之间发送消息, 请求和应答的最大时间长度. 此时该参数设置为2, 说明时间限制为2倍tickTime, 即

 

设置myid

>echo “1” > /opt/data/zookeeper/z1/myid

>echo “2” > /opt/data/zookeeper/z2/myid

>echo “3” > /opt/data/zookeeper/z3/myid

 

启动ZooKeeper集群

分别执行

bin/zkServer.sh start conf/z1.cfg,

bin/zkServer.sh start conf/z2.cfg

bin/zkServer.sh start conf/z3.cfg

安装验证

执行命令(建立ZooKeeper Client端到ZooKeeper集群的连接会话)

bin/zkCli.sh -server 127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183

 

 管理界面:zkdash: 

安装与运行:

  • 安装并运行mysql
  • 下载zkdash

·        git clone https://github.com/ireaderlab/zkdash.git   (Python2.7)

git clone  https://github.com/wolfelee/zkdash.git  (Python3.5.2,对原版进行了python3的兼容性修改)

  • 安装依赖项

·       cd zkdash·       pip install -r requirements.txt·       (如果报错,直接一项一项安装)

  • pip install peewee

·        

  • 设置配置文件

根据需要修改当前目录下./conf/conf.yml中相关配置信息,配置文件详细说明见后面

  • 同步数据库表结构 首先创建数据库zkdash,并设置数据库的用户名和密码 将配置文件的数据库的用户名和密码进行修改

·         DATABASE:·           db: ‘zkdash’·           host: ‘localhost’   # 修改为你的数据库地址·           port: 3306   # 设置端口号·           user: ‘root’   # 修改用户名·           passwd: ‘123456’  # 修改密码

设置完成后进行初始化数据库

cd zkdashpython ./bin/syncdb.py   # 注意执行路径必须为./bin/syncdb.py

说明:数据库使用mysql,创建表结构前请先配置数据库连接信息

  • 运行

·       cd zkdash·       python init.py -port=20001

说明:初次运行zkdash时需要到zookeeper管理菜单下增加监控的zookeeper集群ip信息

配置文件说明:

配置文件详细说明

数据库配置项(DATABASE)

  • db: 数据库名称
  • host: ip地址
  • port: 端口号
  • user: 用户名
  • passwd: 密码

全局配置项

  • USE_QCONF: 是否通过QConf获取zookeeper数据(使用该项可以提高树形展示配置信息的响应速度)

与QConf的搭配使用:

  • 反馈服务器地址:http://ip:port/api/v1/feedback(Agent同步状况查看依赖此反馈信息)

注意事项:

  1. 新增节点需要先指定父节点,并且只能逐级增加

当设置使用QConf获取zookeeper数据时,zookeeper管理菜单下的zookeeper集群名称需要与QConf 客户端Agent配置文件的idc名称一致

CentOS 7 使用阿里云的yum源

1. 备份原来的yum源

sudo cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
2.设置aliyun的yum源

sudo wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

3.添加EPEL源

sudo wget -P /etc/yum.repos.d/ http://mirrors.aliyun.com/repo/epel-7.repo

4.清理缓存并生成新的缓存

sudo yum clean all
sudo yum makecache

Gogs配置安装

0、确认是否安装了git,如果没有安装

    yum install git

1wget http://7d9nal.com2.z0.glb.qiniucdn.com/gogs_v0.9.97_linux_amd64.zip

     解压到/usr/local/gogs

2、配置nginx

  server {

    listen 80;

    server_name 域名;

        location / {

             proxy_pass http://127.0.0.1:3000;

          }

      }

     加载配置

     nginx -s reload

4、添加git用户

>useradd -d /home/git git

>mkdir /opt/git

>mkdir /opt/git/data      #存放gogs数据库

>mkdir /opt/git/repositories   #git数据仓库

分配权限:

chown git:git /home/git -R

chown git:git /usr/local/gogs -R

chown git:git /opt/git -R

chown git:git /opt/git/data -R

chown git:git /opt/git/repositories -R

5、切换用户 >su git

6、进入/usr/local/gogs

      >./gogs web

7、访问

      域名开始配置 

      配置sqlite数据库/opt/git/data

     数据仓库opt/git/repositories

8、调试没有问题了直接后台运行

     nohup ./gogs web &