详解分布式应用程序协调服务Zookeeper
主从结构:HDFS、Yarn、HBase、storm、spark、zookeeper都存在单点故障问题
hadoop1.x没有解决方案
hadoop2.x利用zookeeper实现HA
zookeeper是开源的分布式应用程序协调服务,是Google chubby的开源实现
zookeeper相当于一个数据库,可以实现HA,zookeeper的功能:配置管理、集群管理、分布式锁
zookeeper的体系结构:leader和follower
zookeeper集群本身具有leader选举功能(解决单点故障问题,因此zookeeper集群至少需要三台)和数据同步功能(保证数据的安全性),
选举端口号:3888,同步端口号:2888
zookeeper也支持单点部署,不存在leader选举功能(paxos协议)和数据同步功能(zab协议),状态:standalone(单独的、独立的)
paxos协议的核心思想:当多数server写成功,则任务数据写成功。如果有3个server,则两个写成功即可。
安装和配置zookeeper:
安装zookeeper:tar -zxvf zookeeper-3.4.10.tar.gz -C ~/training
配置zookeeper:配置ZOOKEEPER_HOME环境变量:
vim ~/.bash_profile
export ZOOKEEPER_HOME=/root/training/zookeeper-3.4.10
export PATH=$ZOOKEEPER_HOME/bin:$PATH
source ~/.bash_profile
zookeeper的核心配置文件:conf/zoo.cfg 使用cp zoo_sample.cfg zoo.cfg得到zoo.cfg
zookeeper的安装模式:
1、单点模式:一台机器,不存在leader选举功能和数据同步功能 状态:standalone
修改配置文件zoo.cfg:
1、指定zookeeper中数据保存的目录:
dataDir=/root/training/zookeeper-3.4.10/tmp
2、指定zookeeper的主机是谁:
server.1=bigdata11:2888:3888
3、指定server.1的myid:1
2、集群模式:至少三台机器以上 具有leader选举功能和数据同步功能 状态:一个leader,多个follower
1、在bigdata12上安装和配置zookeeper:
安装zookeeper:tar -zxvf zookeeper-3.4.10.tar.gz -C ~/training
配置zookeeper:配置ZOOKEEPER_HOME环境变量:
ZOOKEEPER_HOME=/root/training/zookeeper-3.4.10
PATH=$ZOOKEEPER_HOME/bin:$PAHT
2、修改配置文件zoo.cfg:
1、指定zookeeper中数据保存的目录:
dataDir=/root/training/zookeeper-3.4.10/tmp
2、指定zookeeper的主机:
server.1=bigdata12:2888:3888
server.2=bigdata13:2888:3888
server.3=bigdata14:2888:3888
3、指定server.1的myid:1
3、把bigdata12上的zookeeper复制到其他节点上:
scp -r zookeeper-3.4.10 root@bigdata12:/root/training
scp -r zookeeper-3.4.10 root@bigdata13:/root/training
scp -r zookeeper-3.4.10 root@bigdata14:/root/training
4、修改bigdata13和bigdata14上的myid文件:
5、在每个节点上启动zookeeper:zkServer.sh start
zookeeper的数据模型:
zookeeper的数据模型类似于Linux文件系统,呈树形结构,每个目录称作一个z节点,每个z节点上可以存储少量数据,默认1M
启动zookeeper:zkServer.sh start
停止zookeeper:zkServer.sh stop
查看zookeeper的状态:zkServer.sh status
启动zookeeper的客户端命令行工具:zkCli.sh
zookeeper的客户端命令行工具端口号:2181
在zookeeper中创建节点添加数据:create /mydata helloworld
在zookeeper中查看节点:get /mydata
作者:李金泽AllenLi,清华大学在读硕士,研究方向:大数据和人工智能
详解分布式应用程序协调服务Zookeeper的更多相关文章
- 分布式应用程序协调服务 ZooKeeper
1.简介: ZooKeeper 是一个分布的.开源的协调服务,它主要是用来解决分布式应用中经常遇到的一些数据管理问题.统一命名服务.状态同步服务.集群管理.分布式应用配置项的管理等,简化分布式应用协调 ...
- ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务
ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件.它是一个为分布式应用提供一致性服务的软件,提供的功 ...
- hadoop之 Zookeeper 分布式应用程序协调服务
(1) Zookeeper 在 Hadoop 集群中的作用 Zookeeper 是分布式管理协作框架,Zookeeper 集群用来保证 Hadoop 集群的高可用,(高可用的含义是:集群中就算有一部分 ...
- 分布式协调服务Zookeeper
ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件.它是一个为分布式应用提供一致性服务的软件,提供的功 ...
- zookeeper--为分布式应用提供协调服务
1.概述 zookeeper是一个开源的.分布式的.为分布式应用提供协调服务的Apache项目 zookeeper的工作机制 zookeeper从设计模式角度来理解:是一个基于观察者模式设计的分布式服 ...
- 分布式协调服务Zookeeper扫盲篇
分布式协调服务Zookeeper扫盲篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 身为运维工程师对kubernetes(k8s)可能比较熟,那么etcd(go语言实现)分布式协 ...
- 搞懂分布式技术3:初探分布式协调服务zookeeper
搞懂分布式技术3:初探分布式协调服务zookeeper 1.Zookeepr是什么 Zookeeper是一个典型的分布式数据一致性的解决方案,分布式应用程序可以基于它实现诸如数据发布/订阅,负载均衡, ...
- 分布式协调服务Zookeeper集群搭建
分布式协调服务Zookeeper集群搭建 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.安装jdk环境 1>.操作环境 [root@node101.yinzhengjie ...
- 分布式协调服务Zookeeper集群之ACL篇
分布式协调服务Zookeeper集群之ACL篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.zookeeper ACL相关知识概览 1>.zookeeper官方文档(h ...
随机推荐
- JavaSE——TCP协议网络编程(一)
实现客户端与服务端的连接: 创建TCP服务端的 ServerSocket ServerSocket :此类实现服务器套接字.服务器套接字请求通过网络传入,基于该请求执行某些操作,然后可能向请求者返回结 ...
- linux根目录下的文件夹及文件
bin->放置执行文件的目录,但毕竟特殊,其下放置的是在单用户维护模式下还能被操作的命令.主要有cat.chmod.date. mv.mkdir.cp.bash等常用命令.dev->存放设 ...
- JNI使用方法
JNI可以让我们在java代码中调用本地库的功能. 下面记录一下JNI简单的使用方法 创建java端接口 public class JNIIterface { // 导入最终生成的dll文件 stat ...
- Expo大作战(十一)--expo中的预加载和缓存资产(Preloading & Caching Assets),expo中的图标 (Icon)
简要:本系列文章讲会对expo进行全面的介绍,本人从2017年6月份接触expo以来,对expo的研究断断续续,一路走来将近10个月,废话不多说,接下来你看到内容,讲全部来与官网 我猜去全部机翻+个人 ...
- Linux笔记(一):CentOS-7安装
(一) 安装环境 VMware® Workstation 12 Pro,安装到物理机的话还需要做个U盘启动盘 (二) 下载 https://www.centos.org/download/ ...
- easyui中日期格式化
<body> <div id="list"></div> <script type="text/javascrip ...
- Python2与python3中字符串的区别
Python2 在python中包含两种字符串类型:str和unicode,str并不是完全意义上的字符串,其实是由unicode经过编码(encode)后的字节组成的字节字符串,而unicode则是 ...
- OpenResty 安装配置
0. 说明 1. Windows 下安装 下载软件包 openresty-1.13.6.1-win32.zip ,解压即可食用. [开启] 直接运行 nginx.exe 在 Windows 的命令窗口 ...
- 最短路径Dijkstra matlab
Dijkstra: function [dist,pre, full_path]=MinRoad_Dijkstra(G,v0) n=0; if isfield(G,'w') && ~i ...
- 实例化list
List<String> lists = new ArrayList<String>();list.add("123");