Hadoop_简单操作ZooKeeper

一、概念

  1. 一个开源的、分布式的,为分布式应用提供协调服务的Apache项目

  2. 提供一个简单的原语集合,以便于分布式应用可以在它之上构建更高层次的同步服务

  3. 设计非常易于编程,它使用的是类似于文件系统那样的树形数据结构

  4. 目的是将分布式服务不再需要由于协作冲突而另外实现协作服务

  5. 项目由Java语言开发,并提供了很多API

  6. 官方网站:http://zookeeper.apache.org

  7. 分布式:最少三个节点(节点数必为奇数个,即2n+1个节点,n为允许宕掉的节点数目)
    1> Zookeeper服务启动时,会进行"选举"操作,即leader与follower,并进行监控
    2> 领导者leader:为了在分布式环境中保证数据一致性,负责进行投票和发起决议,更新系统状态
    3> 跟随者follower:用于接收客户请求并向客户端返回结果,在选主过程中参与投票
    4> 观察者Observer:可以接受客户端连接,将请求发给leader,但不参与选主,只同步leader状态
       Observer的目的是为了扩展系统,提高读取速度
    5> 客户端client:请求发起方
    6> 数据存放在内存中与本地,使用内存读取速度更快
    7> 其下的客户端可连接任意一个server(server与client关系:多对多)
    8> 允许宕机具有容错性

  8. Zookeeper从设计模式看是一个基于观察者模式设计的分布式服务管理框架,负责存储和管理重要的数据,
    然后接受观察者的注册,一旦数据发生变化,Zookeeper负责通知注册的观察者并做相应处理,
    从而实现类似与Msater与slaver的管理模式,应用场景:
    1> 统一命名服务(Name Service)
    2> 硬盘管理(Configuration Management)
    3> 集群管理(Group Membership)
    4> 共享锁(Locks)、同步锁

二、单机模式
    1> 下载zookeeper-3.4.6.tar.gz 并上传至指定目录
    2> 解压并重命名其中的conf/zoo_sample.cfg为zoo.cfg
    3> 修改其中dataDir属性为自定义路径
    4> 回到项目主目录使用bin/zkServer.sh start启动项目
    5> jps查看后多出一个QuorumPeerMain进程
    6> 使用bin/zkCli.sh打开客户端

[zk: localhost:2181(CONNECTED) 1] ls /
[zookeeper]
[zk: localhost:2181(CONNECTED) 2] ls /zookeeper         # 查看zookeeper
[quota]
[zk: localhost:2181(CONNECTED) 3] get /zookeeper        # 获取其中信息
cZxid = 0x0
ctime = Thu Jan 01 08:00:00 CST 1970
mZxid = 0x0
mtime = Thu Jan 01 08:00:00 CST 1970
pZxid = 0x0
cversion = -1
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 0
numChildren = 1
[zk: localhost:2181(CONNECTED) 4] create /test "123456"  # 创建一个文件(目录)并赋予其值
Created /test
[zk: localhost:2181(CONNECTED) 5] ls /
[test, zookeeper]
[zk: localhost:2181(CONNECTED) 6] get /test
"123456"
cZxid = 0x4
ctime = Thu Oct 20 00:12:25 CST 2016
mZxid = 0x4
mtime = Thu Oct 20 00:12:25 CST 2016
pZxid = 0x4
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 8
numChildren = 0
[zk: localhost:2181(CONNECTED) 7] rmr /test         # 删除该文件
[zk: localhost:2181(CONNECTED) 8] ls /
[zookeeper]
[zk: localhost:2181(CONNECTED) 9]

三、 分布式模式

PS:在部署Zookeeper分布式模式之前需要先后关闭Zookeeper相关进程:
quit->退出客户端
bin/zkServer.sh stop -> 关闭服务

    1> 准备三个节点
    2> 选取其中一台,上传并解压Zookeeper
    3> 重命名Zookeeper
    5> 修改本地数据存储路径 -> 属性dataDir
    6> 添加三个节点服务:格式 -> server.1=hadoop09-linux-01.ibeifeng.com:2888:3888
 
    7> 在你的dataDir目录下建立myid文件并录入1(1表示计算机编号,其他两台以此类推)
 
    8> scp 命令分发zookeeper文件夹到其他两个节点并依次修改myid机器码
 
    9> 分别在zookeeper主目录下使用bin/zkServer.sh start 命令启动服务,
 
    10> 每个节点使用jps查看一下进程,再使用bin/zkServer.sh status命令查看当前server选主结果 
 
    11> 可以打开客户端测试使用 
  

时间: 2024-11-07 12:56:48

Hadoop_简单操作ZooKeeper的相关文章

ZooKeeper系列3:ZooKeeper命令、命令行工具及简单操作

问题导读1.ZooKeeper包含哪些常用命令?2.通过什么命令可以列出服务器 watch 的详细信息?3.ZooKeeper包含哪些操作?4.ZooKeeper如何创建zookeeper? 常用命令 ZooKeeper 支持某些特定的四字命令字母与其的交互.它们大多是查询命令,用来获取 ZooKeeper 服务的当前状态及相关信息.用户在客户端可以通过 telnet 或 nc 向 ZooKeeper 提交相应的命令. ZooKeeper 常用四字命令见下表 1 所示: 表 1 : ZooKee

【ZooKeeper】ZooKeeper安装及简单操作

ZooKeeper介绍 ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件.它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护.域名服务.分布式同步.组服务等. ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效.功能稳定的系统提供给用户. ZooKeeper包含一个简单的原语集, [1] 提供Java和C的接口. 官网:https://zookeep

storm操作zookeeper源码分析-cluster.clj

storm操作zookeeper的主要函数都定义在命名空间backtype.storm.cluster中(即cluster.clj文件中).backtype.storm.cluster定义了两个重要protocol:ClusterState和StormClusterState.clojure中的protocol可以看成java中的接口,封装了一组方法.ClusterState协议中封装了一组与zookeeper进行交互的基础函数,如获取子节点函数,获取子节点数据函数等,ClusterState协

客户端操作zookeeper服务代码示例

本文主要贴出通过zookeeper的客户端类访问zookeeper的示例,以及其它第三方更高层次的封装的客户端使用. 1.通过org.apache.zookeeper.ZooKeeper来操作zookeeper服务 有关zookeeper服务的部署参见文:http://aiilive.blog.51cto.com/1925756/1684145 下文将有代码示例展示通过编码方式在应用中启动zookeeper服务. ZooKeeper类对zookeeper服务的简单操作示例代码如下: packag

Java代码操作zookeeper

以下为一个完整JAVA操作Zookeeper项目步骤: 1. 项目中pom.xml中添加需要的依赖jar包信息 <dependencies> <dependency> <groupId>org.apache.zookeeper</groupId> <artifactId>zookeeper</artifactId> <version>3.4.9</version> </dependency> <

python 操作zookeeper详解

ZooKeeper 简介 ZooKeeper 是一个分布式的.开放源码的分布式应用程序协调服务,是 Google 的 Chubby 一个开源的实现,是 Hadoop 和 Hbase 的重要组件.它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护.域名服务.分布式同步.组服务等.ZooKeeper 支持大部分开发语言,除了某些特定的功能只支持 Java 和 C.python 通过 kazoo 可以实现操作 ZooKeeper . 一.安装 这个简单,使用 pip 命令安装 pip3

ORACLE的安装与网页版创建表空间的简单操作以及PLsql的简单操作

1.oracle的安装: 安装简单易学,在这里不做解释.下载看装包后耐心等待,注意安装目录不要有中文字符,尽量按照指定目录进行安装.安装完成后会占用有大约5g的内存. 如果要卸载oracle,需要用其自带的卸载工具进行卸载[universal installer],然后删除注册表项,删除环境变量,删除目录并且重新启动计算机. 2.在网页版进行创建表空间: 进入网页版: 在电脑的服务中我们可以看到一共有7个oracle的服务项目,其中只有三个是正在启动中.这三项中,只有当OracleDBConso

简单操作只需10秒破解PDF加密文件

简单操作只需10秒破解PDF加密文件 [尊重原创,转载请注明出处]http://blog.csdn.net/guyuealian/article/details/51345950 如何破解PDF加密文件,如何破解PDF密码呢,破解加密的PDF文件? 从网上下载的PDF文件,由于版权的问题,作者经常会加密禁止读者复制修改等权限,如下面的PDF文档,用Adobe pdf Reader打开时,会显示"已加密"的字样,虽然可以阅读,但不能修改和标记. 为了解决这个问题,可以采用绕过破解密码这一

C++ 文件的简单操作

=================================================================== 编写程序时,很多时候都要对文件进行操作,比如从文件中读取数据,通过程序将一些数据保存到文件中等等.. 以下是c++对文件的一些简单操作. =================================================================== 一.文件输出 要将程序中的数据输出到文件中,一般需要以下5个步骤: ① 包含fstream