【分布式协调zookeeper】利用ansible部署篇

一、环境准备

操作系统:centOS-6.8 2.6.32-642.el6.x86_64【虚拟机环境】
节点主机:10.0.55.3、10.0.55.5、10.0.55.6
目录结构: /opt/
软件版本:   jdk-7u67-linux-x64.rpm
            zookeeper-3.5.0-alpha.tar.gz

二、安装Java环境

$ rpm -ivh jdk-7u67-linux-x64.rpm 
$ cat /etc/profile
export JAVA_HOME=/usr/java/jdk1.7.0_67
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOME/bin
立即生效
$ source /etc/profile

三、下载zookeeper包并创建zookeeper管理数据

$ wget http://archive.apache.org/dist/zookeeper/zookeeper-3.5.0-alpha/zookeeper-3.5.0-alpha.tar.gz
$ ln -s /opt/zookeeper-3.5.0-alpha /opt/zookeeper
$ mkdir /opt/zookeeper/data
$ echo "1" > /opt/zookeeper/data/myid

四、编辑zookeeper/conf/zoo.cfg配置文件,启动时需要

$ cp /opt/zookeeper/conf/zoo_sample.cfg /opt/zookeeper/conf/zoo.cfg
--- 查看zoo.cfg内容 ---
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/opt/zookeeper/data
clientPort=2181
server.1=10.0.55.3:2888:3888
server.2=10.0.55.5:2888:3888
server.3=10.0.55.6:2888:3888

五、启动zookeeper服务并查看

--- 启动服务 ---
$ /opt/zookeeper/bin/zkServer.sh start
JMX enabled by default
Using config: /opt/zookeeper/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED

--- 检查端口 ---
netstat -lnpt
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name   
tcp        0      0 0.0.0.0:22678               0.0.0.0:*                   LISTEN      1074/sshd           
tcp        0      0 :::2181                     :::*                        LISTEN      121685/java         
tcp        0      0 :::55369                    :::*                        LISTEN      121685/java         
tcp        0      0 ::ffff:10.0.55.3:3888       :::*                        LISTEN      121685/java         
tcp        0      0 :::8080                     :::*                        LISTEN      121685/java         
tcp        0      0 :::22678                    :::*                        LISTEN      1074/sshd

使用自动化运维工具 ansible 进行批量分发

这里只介绍如何使用ansible的命令组件模块进行节点部署

为了节省篇幅,这里不介绍ansible的部署安装

1、远程安装zookeeper节点

$ ansible webservers -m copy -a ‘src=zookeeper-3.5.0-alpha.tar.gz dest=/opt/ owner=root group=root mode=0644‘
$ ansible webservers -m shell -a ‘tar fxz /opt/zookeeper-3.5.0-alpha.tar.gz -C /opt/‘
$ ansible webservers -m shell -a ‘ln -s /opt/zookeeper-3.5.0-alpha /opt/zookeeper‘
$ ansible webservers -m shell -a ‘mkdir /opt/zookeeper/data‘
$ ansible webservers -m shell -a ‘echo "2" >/opt/zookeeper/data/myid‘

2、将配置文件copy到远端节点

$ ansible webservers -m copy -a ‘src=/opt/zookeeper/conf/zoo.cfg dest=/opt/zookeeper/conf/zoo.cfg owner=root group=root mode=0644‘

3、批量启动zookeeper服务并查看

$ ansible webservers -m shell -a ‘/opt/zookeeper/bin/zkServer.sh stats‘
$ ansible webservers -m shell -a ‘netstat -lnpt‘

4、批量坚持zookeeper状态

$ ansible webservers -m shell -a ‘/opt/zookeeper/bin/zkServer.sh status‘
10.0.55.5 | SUCCESS | rc=0 >>
Client port found: 2181
Mode: leaderJMX enabled by default              ## 这里面的mode信息中,该主机被选举为 Leader
Using config: /opt/zookeeper/bin/../conf/zoo.cfg

10.0.55.3 | SUCCESS | rc=0 >>
Client port found: 2181
Mode: followerJMX enabled by default            ## 这里面的mode信息中,该主机被选举为 follower
Using config: /opt/zookeeper/bin/../conf/zoo.cfg

10.0.55.6 | SUCCESS | rc=0 >>
Client port found: 2181
Mode: followerJMX enabled by default            ## 这里面的mode信息中,该主机被选举为 follower
Using config: /opt/zookeeper/bin/../conf/zoo.cfg

zookeeper基础操作

启动一个CLI客户端
[[email protected] opt]# ./zookeeper/bin/zkCli.sh
创建、编辑、删除znode
--- 创建一个/workers路径的znode ---
[zk: localhost:2181(CONNECTED) 0] create /workers helloworld
Created /workers

--- 使用get -s命令查看znode数据 ---
[zk: localhost:2181(CONNECTED) 1] get -s /workers
helloworld
cZxid = 0x500000006
ctime = Sat Apr 22 10:33:42 CST 2017
mZxid = 0x500000006
mtime = Sat Apr 22 10:33:42 CST 2017
pZxid = 0x500000006
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 6
numChildren = 0

--- 使用get -w选项,进行监听/factory的变化 ---
[zk: localhost:2181(CONNECTED) 11] get -w /workers
strong

--- 在 follower节点上启动客户端,并修改/workers ---
[[email protected] bin]# ./zkCli.sh 
[zk: localhost:2181(CONNECTED) 2] set /workers weakness

---查看监听那台主机,返回的通知信息如下: ---
[zk: localhost:2181(CONNECTED) 12] 
WATCHER::

WatchedEvent state:SyncConnected type:NodeDataChanged path:/workers

--- 删除workers的znode ---
[zk: localhost:2181(CONNECTED) 7] delete /workers

创建序列znode

[zk: localhost:2181(CONNECTED) 13] create -s /workers/worker-
Created /workers/worker-0000000000
[zk: localhost:2181(CONNECTED) 14] create -s /workers/worker-
Created /workers/worker-0000000001
[zk: localhost:2181(CONNECTED) 15] create -s /workers/worker-
Created /workers/worker-0000000002
[zk: localhost:2181(CONNECTED) 16] create -s /workers/worker-
Created /workers/worker-0000000003

通过stat命令,进行查看workers状态

[zk: localhost:2181(CONNECTED) 18] stat /workers
cZxid = 0x500000006
ctime = Sat Apr 22 10:33:42 CST 2017
mZxid = 0x500000008
mtime = Sat Apr 22 10:35:25 CST 2017
pZxid = 0x50000000c
cversion = 4
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 8
numChildren = 4

通过浏览器查看zookeeper状态

--- 从zookeeper-3.5.0版本以上,可以使用http接口提交4字命令的请求;
--- 在zookeeper服务中嵌入了Jetty server作为AdminServer管理服务器,其默认端口为8080;
--- 服务访问的URL格式是"/commands/[command name]",例如:访问stats命令
--- 服务器返回的结果是以JSON格式显示
http://10.0.55.3:8080/commands
http://10.0.55.3:8080/commands/stats

时间: 2024-11-04 10:13:48

【分布式协调zookeeper】利用ansible部署篇的相关文章

【分布式协调zookeeper】安装篇

一.环境准备 操作系统:centOS-6.8 2.6.32-642.el6.x86_64[虚拟机环境] 节点主机:10.0.55.3.10.0.55.5.10.0.55.6 目录结构: /opt/ 软件版本:   jdk-7u67-linux-x64.rpm             zookeeper-3.5.0-alpha.tar.gz 二.安装Java环境 $ rpm -ivh jdk-7u67-linux-x64.rpm  $ cat /etc/profile export JAVA_HO

【分布式协调zookeeper】基础篇

一.zookeeper介绍  它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护.名字服务.分布式同步.组服务等 zookeeper做了什么? 1.命名服务 2.配置管理 3.集群管理 4.分布式锁 5.队列管理 二.zookeeper架构的架构模型 zookeeper的两种模型的混合式: Client-Server模型:用于对分布式协调系统中的对象提供协调服务: Peer-to-Peer模型:用于在zookeeper集群内交互数据: 这种混合的体系结构,让zookeeper既保

利用Ansible部署运行Apache(http)的Docker容器

在自动化运维领域,除了saltstack,还有ansible这个批量安装部署工具,在写具体内容先,先谈谈我用过两个工具后的感想. saltstack是C/S框架,要在客户端装软件,并且启动服务才能进行管理,ansible是通过ssh连接到客户端的,也就是说必须把密钥传给客户端才能进行管理,虽然可以关闭这个验证方式,但是生产环境中肯定是不能关闭的,从这一点看,还是ansible更容易配置,完全可以用脚本循环遍历所有主机来添加密钥. 使用方面,命令复杂程度相似,理解起来更容易的应该是saltstac

(九)分布式服务----Zookeeper注册中心

==>>点击查看本系列文章目录 首先看一下几种注册中心: 最老的就是Zookeeper了, 比较新的有Eureka,Consul 都可以做注册中心.可以自行搜索对比三者的优缺点. Zookeeper 最开始就是hadoop大家族中的一员,用于做协调的框架,后来已经是apache的子项目了. 几年前大数据很火的时候,只要学hadoop必学zookeeper,当然还有其他成员. 大数据简单说就是分布式,比如分布式文件存储hdfs,分布式数据库hbase,分布式协调zookeeper,还有kafka

知识链-分布式协调服务zookeeper

分布式协调服务 Zookeeper zookeeper是一个开源的分布式协调服务.是典型的分布式数据一致性的解决方案. 集群内所有server基于Zab(ZooKeeper Atomic Broadcast)协议进行通信 Zookeeper官网地址: http://zookeeper.apache.org/ Zookeeper官网文档地址:http://zookeeper.apache.org/doc/trunk/index.html 认识ZooKeeper ZooKeeper概述 ZooKee

分布式协调服务Zookeeper原理

CAP理论 C: (Consistency) 一致性 ???????在分布式系统中,数据能够在多个副本之间保持一致的特性.对于有多个副本的分布式系统来说,如果数据在一个节点上进行修改,其他节点尚未同步数据,当在其他节点上读取操作的时候,读取的还是老的数据.这就是分布式数据不一致. ???????在分布式系统中,如果更新一个节点,其他节点的数据也能保证有相应的更新.那么系统被认为具有强一致性. A: (Availability) 可用性 ???????在分布式系统中,可用性指的是系统提供的服务,一

DFS分布式文件系统--部署篇

DFS分布式文件系统--部署篇 续DFS分布式文件系统--基础篇 三.DFS部署实例 在VMwareWorkstation 12.0虚拟环境下,建立五台Windows Server 2008 R2虚拟机. NameSrv01:192.168.0.180/24,DC,DNS: NameSrv02:192.168.0.181/24,辅助DC,DNS:域名FromHeart.Com. 这两台DC为命名空间服务器. ShareSrv01:192.168.0.182/24:ShareSrv02:192.1

Hadoop系列之zookeeper(分布式协调服务)安装配置

Hadoop系列之zookeeper(分布式协调服务)安装配置 1.安装cd /root/softtar zxvf zookeeper-3.4.6.tar.gzmv zookeeper-3.4.6 /usr/local/hadoop/zookeeper2.修改配置文件mkdir -p /data/zookeeper/data //3个节点都需要创建此目录cd /usr/local/hadoop/zookeeper/confcp zoo_sample.cfg zoo.cfg#vim zoo.cfg

搞懂分布式技术3:初探分布式协调服务zookeeper

搞懂分布式技术3:初探分布式协调服务zookeeper 1.Zookeepr是什么 Zookeeper是一个典型的分布式数据一致性的解决方案,分布式应用程序可以基于它实现诸如数据发布/订阅,负载均衡,命名服务,分布式协调/通知.集群管理,Master选举,分布式锁和分布式队列等功能. 2.zookeeper可以保证的分布式一致性 a.顺序一致性 从一个客户端发起的事务请求,最终将会严格地按照其发起顺序被应用到zookeeper中去 b.原子性 所有事务请求的处理结果在整个集群中所有机器上的应用情