沉沙
2018-09-29
来源 :
阅读 1592
评论 0
摘要:本篇教程探讨了大数据技术 zookeeper学习笔记,希望阅读本篇文章以后大家有所收获,帮助大家对大数据技术的理解更加深入。
本篇教程探讨了大数据技术 zookeeper学习笔记,希望阅读本篇文章以后大家有所收获,帮助大家对大数据技术的理解更加深入。
<
########################### zookeeper 选举机制 ############################
#服务器ID, 编号越大在选举算法中权重越大;
#选举状态: Looking,竞选; Following,随从状态,同步leader状态,参与投票. observing, 观察状态,同步leader状态,不参与投票. Leading,领导状态.
#数据ID: 服务器中存放的最新数据version,值越大数据越新,在选举中权重越大.
#逻辑时钟: 也叫投票次数,同一轮投票过程中逻辑值是相同的,每投完一次票这个数据就增加,如果没参与投票,下一轮就比其它的小.
#全新集群选举: 1,每个机器都给自己投票; 2,投票数过半选举结束. 主要参考myid的值.
#非全新选举: 运行中有机器当掉时,就需要重新选举,过程就需要加入:数据ID,服务器ID和逻辑时钟.
#选举标准变为: 1,逻辑时钟小的选举结果被忽略,重新投票; 2,统一逻辑时钟后,数据ID大的胜出; 3,数据ID相同的情况下,服务器ID大的胜出.根据这些规则选出leader.
安装与配置:
#安装前先要安装好JDK, 配置ssh免密登录.
#集群时间同步, 防火墙关闭, 主机名, hosts配置.
#下载安装包 //zookeeper.apache.org
tar zxvf zookeeper-3.4.5.tar.gz
#配置环境变量 每台zookeeper都要修改.
vim /etc/profile #增加两行zookeeper环境变量
export ZOOKEEPER_HOME=/usr/local/src/zookeeper
export PATH=$PATH:$ZOOKEEPER_HOME/bin
scp -r /etc/profile root@slave1:/etc/
scp -r /etc/profile root@slave2:/etc/
source /etc/profile
cd /usr/local/src/zookeeper/
mkdir zkdata
vim zookeeper/conf/zoo.cfg #修改配置文件
dataDir=/usr/local/src/zookeeper/zkdata
server.1=master:2888:3888
server.2=slave1:2888:3888
server.3=slave2:2888:3888
shift zz
cd /usr/local/src/zookeeper/zkdata
echo 1 > myid #服务器编号
scp -r /usr/local/src/zookeeper/ root@slave1:/usr/local/src/
scp -r /usr/local/src/zookeeper/ root@slave2:/usr/local/src/
# 一定要修改各台服务器编号 myid
/usr/local/src/zookeeper/bin/zkServer.sh start #启动服务. 每台都需要启动
zkServer.sh status #查看状态 也可以jps
zkServer.sh stop #停止服务
Shell 的使用:
############################# 开始 shell 使用 #####################################
zkCli.sh -server master:2181 #连接zookeeper服务,省略参数则连接本机
ls / #查看根节点
#创建节点 节点类型: 临时节点、永久节点
#创建后,节点类型不能修改。
create /hellozk 123 #创建节点和数据
create -s /hellozk 456 #创建序列化的节点,容易判断顺序。
create -e /hellozk/a 456 #创建临时节点. 临时节点将在退出连接后自动删除
#读取节点
# dataVersion 数据版本号,每次set都会加1; cversion子节点版本号; cZxid Znode创建的事务id; mZxid Znode被修改的事务id; ephemeralOwner为0表示不是临时节点
get /hellozk #得到节点的数据和属性信息.
ls2 /hellozk #得到节点的子节点和属性信息
#更新/删除节点
set /hellozk abcd #更新节点的数据,
delete /hellozk #删除节点. 必须没有子节点.
rmr /hellozk #递归删除,包含子节点
#事件监听 watch 分布式的事件通知功能
ls /mygirls watch #对一个节点的子节点变化事件注册了监听
get /mygirls watch #对节点的数据内容变化注册了监听
stat /mygirls watch #对节点状态改变注册监听
#监听事件只一次有效,后续需要再注册,或者用脚本完成. ls2, stat 都可以watch
#quota
setquota -n|-b 2 /test # 限制子节点最大个数, 参数二选一, -b限制数据长度. 软限制.只会有日志警告.
cat zookeeper.out #可以看到quota的WARN信息 # > zookeeper.out 可以清空文件.
listquota /test # 查看quota
delquota -n /test #删除quota
#history
history #显示命令历史.
redo 10 #调用历史ID是10的命令.
Java API方式:简单监听机制实现
package zk.mydemo;
import org.apache.zookeeper.*;
public class Test {
public static void main(String[] args) throws Exception {
//构造java zk客户端
ZooKeeper zk = new ZooKeeper("slave2:2181,master:2181", 30000, new Watcher() {
//事件通知的回调方法
public void process(WatchedEvent e) {
System.out.println(e.getPath());
System.out.println(e.getType());
System.out.println(e.getState());
}
});
zk.create("/myDemo","第一个DEMO".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);
zk.close();
}
}
本文由职坐标整理发布,学习更多的大数据技术相关知识,请关注职坐标大技术云计算大技术技术频道!
喜欢 | 0
不喜欢 | 0
您输入的评论内容中包含违禁敏感词
我知道了

请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式AI+学习就业服务平台 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号