二、分布式服务框架Zookeeper学习笔记
2016-07-12 20:50
411 查看
二、分布式服务框架Zookeeper学习笔记
标签(空格分隔): 高级Hadoop2.x2.分布式服务框架Zookeeper
网址:zookeeper.apache.prg2.1 zookeeper框架架构与功能介绍
What?开源式分布,避免协作冲突
架构图
最少节点数3台,节点数必须为奇数,三台允许1台坏,5台允许2台坏
2n+1 , n:表示集群中允许损坏的机器数目
启动时会选一个leader server, others are follower
客户端可以连接任何一个机器server
所有机器时间必须一致
数据结构:树状
角色:
leader:负责投票的发起和决议,更新系统状态
follower:接受客户请求并向客户端返回结果,参与投票
client:请求发起方
应用场景:
观察者模式设计的分布式服务管理框架,负责存储和管理大家关心的数据,监控数据的变化,一旦监控到就会通知注册的观察者做出反应。
2.2单机模式安装,基本命令
2.2.1单机模式安装
2.2.1.1安装JDK2.2.1.2安装zookeeper
1)下载zookeeper压缩包到opt/softwares/目录下
下载地址:http://apache.dataguru.cn/zookeeper/
2)执行权限修改
$chmod u+x zookeeper-3.4.5.tar.gz
3)解压安装压缩包到/opt/modules目录下
$tar -zxf zookeeper-3.4.5.tart.gz -C /opt/modules
2.2.1.3修改配置文件(在notepad中进行)
到目录opt/modules/zookeeper.3.4.5/conf/
a.先将文件zoo_sample.cfg重命名为zoo.cfg
b.再命令行创建一个目录
$mkdir -p data/zkData
c.修改配置文件里的dataDir目录为以上创建的目录
dataDir=/opt/modules/zookeeper-3.4.5/data/zkData
2.2.1.4启动
$bin/zkServer.sh start
jps后可以看到启动了QuorumPeerMain
2.2.2基本命令
可以进去看看目录结构$bin/zkCli.sh
查看根目录,有一个[zookeeper]
ls /
1)每一个目录叫znode,每个znode上都可以赋值数据,若要得到数据(如zookeeper节点上的数据),则可以
$get /zookeeper
2)创建一个znode:
$create /test "123" //(123为test目录中的数据) $get /test //可以查看该节点的数据
3)删除znode
$rmr /test
4)退出znode
$quit
2.2.3 标准的链接服务器方法:指定链接哪个server
1)$bin.zkCli.sh -server 主机名
2)链接到其他机器,先分发已经配置好的zookeeper到其他机器
$scp -r zookeeper-3.4.5/ beifeng@02主机名:opt/modules /
(用户名beifeng相同的话,可以省去beifeng@)
如此便可在02机器上启动01机器上的zookeeper客户端:
$bin.zkCli.sh -server hadoop-senior01.ibeifeng.com
(zk端口号2181)
2.3zookeeper分布式集群安装配置部署启动和配置参数
2.3.1分布式安装:
先关闭所有节点,包括QuorumPeeServer$bin/zkSerer.sh stop
2.3.1.1解压zookeeper安装包到/opt/app/目录下
$tar -zxf /opt/soaftwares/zookeeper-3.4.5.tart.gz -C /opt/app
2.3.1.2 配置
到目录opt/modules/zookeeper.3.4.5/conf/
a.先将文件zoo_sample.cfg重命名为zoo.cfg
b.再命令行创建一个目录
$mkdir -p data/zkData
c.修改配置文件里的dataDir目录为以上创建的目录
dataDir=/opt/app/zookeeper-3.4.5/data/zkData
d.initLimit=5 客户端初始化时间
e.syneLimit=2
f.添加以下内容
server.1=主机名01:2888:3888
server.2=主机名02:2888:3888
server.3=主机名03:2888:3888
2.3.1.3各机器存储目录下建myid文件,并编辑标号
1)创建文件zkdata/myid
$touch myid
2)vi data/myid
3)添加编号:1
192.168.194.110:1
192.168.194.111:2
192.168.194.112:2
2.3.1.4分发到三台机器
$scp -r zookeeper-3.4.5.jar hadoop-senior02.ibeifeng.com:/opt/app/
分发完之后记得改myid上的编号
2.3.1.5启动每台机器
$bin/zkServer.sh start
查看状态
$bin/zkServer.sh status
2.3.2 分布式参数讲解
ticktime:zookeeper服务器与客户端服务器之间维持心跳的时间间隔。dataDir:zookeeper保持数据的目录,默认情况下,日志文件也保存在此
clientPort:客户端连接zookeeper服务器的端口,zookeeper会接听到这个端口,接受客户端的访问请求
zookeeper Client命令:
$bin/zkCli.sh -server locallhost:2181
server.A=B.C.D : A表示第记号服务器,B为IP地址,C表示这个服务器与leader服务器交换信息的端口,D为选举时服务器互通信的端口,在myid里的编号其实就是A
相关文章推荐
- 打造高逼格耀斑效果
- 一个用于获取Image对象以及AudioClip对象的工具类
- linux防止DDoS攻击
- FloatingActionButton的一点学习感悟
- 113. Path Sum II
- HTML DOM概念及相关操作
- 永不落幕的 zy [HN2016师大附中省队集训day2]
- Java 位运算(移位、位与、或、异或、非)
- Android 在布局中用代码随意添加视图
- HDU 4513 单增回文 manacher
- 【华为OJ】字符串加密
- 简单HTML的使用
- 链接地址
- as follows ,as follow && following
- java.lang.NoClassDefFoundError: Could not initialize class org.apache.log4j.Log4
- Mybatis3.2+版本 log4j2 Debug 模式打印sql语句
- Fibonacci sequence
- CodeForces 374A Inna and Pink Pony
- 通过simpleXML解析XML格式的数据 (两种方法)
- Redis常用几种数据类型