Zookeeper,也要接触起来啦

分布式的东东,就是部署也方便,但管理,想法,大集群应用是要点。。。!

参考如下URL简单实现 ,以后应用时多留意。

http://blog.csdn.net/shirdrn/article/details/7183503

http://www.dataguru.cn/article-3292-1.html

前言

ZooKeeper是Hadoop家族的一款高性能的分布式协作的产品。在单机中,系统协作大都是进程级的操作。分布式系统中,服务协作都是跨服务 器才能完成的。在ZooKeeper之前,我们对于协作服务大都使用消息中间件,随着分布式系统的普及,用消息中间件完成协作,会有大量的程序开发。 ZooKeeper直接面向于分布式系统,可以减少我们自己的开发,帮助我们更好完成分布式系统的数据管理问题。

目录

  1. zookeeper介绍
  2. zookeeper单节点安装
  3. zookeeper伪分布式集群安装
  4. zookeeper命令行操作
  5. Java编程现实命令行操作

1. zookeeper介绍

ZooKeeper是一个为分布式应用所设计的分布的、开源的协调服务,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,简化分布式应用 协调及其管理的难度,提供高性能的分布式服务。ZooKeeper本身可以以Standalone模式安装运行,不过它的长处在于通过分布式 ZooKeeper集群(一个Leader,多个Follower),基于一定的策略来保证ZooKeeper集群的稳定性和可用性,从而实现分布式应用 的可靠性。

ZooKeeper是作为分布式协调服务,是不需要依赖于Hadoop的环境,也可以为其他的分布式环境提供服务。

ZooKeeper Distributed模式

 

ZooKeeper分布式模式安装(ZooKeeper集群)也比较容易,这里说明一下基本要点。

首先要明确的是,ZooKeeper集群是一个独立的分布式协调服务集群,“独立”的含义就是说,如果想使用ZooKeeper实现分布式应用的协调与管理,简化协调与管理,任何分布式应用都可以使用,这就要归功于Zookeeper的数据模型(Data Model)和层次命名空间(Hierarchical Namespace)结构,详细可以参考http://zookeeper.apache.org/doc/trunk/zookeeperOver.html。在设计你的分布式应用协调服务时,首要的就是考虑如何组织层次命名空间。

下面说明分布式模式的安装配置,过程如下所示:

第一步:主机名称到IP地址映射配置

ZooKeeper集群中具有两个关键的角色:Leader和Follower。集群中所有的结点作为一个整体对分布式应用提供服务,集群中每个结点之间都互相连接,所以,在配置的ZooKeeper集群的时候,每一个结点的host到IP地址的映射都要配置上集群中其它结点的映射信息。

例如,我的ZooKeeper集群中每个结点的配置,以slave-01为例,/etc/hosts内容如下所示:

 

[plain] view plaincopy

 

  1. 192.168.0.179   slave-01  
  2. 192.168.0.178   slave-02  
  3. 192.168.0.177   slave-03  

 

ZooKeeper采用一种称为Leader election的选举算法。在整个集群运行过程中,只有一个Leader,其他的都是Follower,如果ZooKeeper集群在运行过程中Leader出了问题,系统会采用该算法重新选出一个Leader。因此,各个结点之间要能够保证互相连接,必须配置上述映射。

ZooKeeper集群启动的时候,会首先选出一个Leader,在Leader election过程中,某一个满足选举算的结点就能成为Leader。整个集群的架构可以参考http://zookeeper.apache.org/doc/trunk/zookeeperOver.html#sc_designGoals

第二步:修改ZooKeeper配置文件

在其中一台机器(slave-01)上,解压缩zookeeper-3.3.4.tar.gz,修改配置文件conf/zoo.cfg,内容如下所示:

 

[plain] view plaincopy

 

  1. tickTime=2000  
  2. dataDir=/home/hadoop/storage/zookeeper  
  3. clientPort=2181  
  4. initLimit=5  
  5. syncLimit=2  
  6. server.1=slave-01:2888:3888  
  7. server.2=slave-02:2888:3888  
  8. server.3=slave-03:2888:3888  

上述配置内容说明,可以参考http://zookeeper.apache.org/doc/trunk/zookeeperStarted.html#sc_RunningReplicatedZooKeeper

 

第三步:远程复制分发安装文件

上面已经在一台机器slave-01上配置完成ZooKeeper,现在可以将该配置好的安装文件远程拷贝到集群中的各个结点对应的目录下:

 

[plain] view plaincopy

 

  1. cd /home/hadoop/installation/  
  2. scp -r zookeeper-3.3.4/ hadoop@slave-02:/home/hadoop/installation/  
  3. scp -r zookeeper-3.3.4/ hadoop@slave-03:/home/hadoop/installation/  

第四步:设置myid

 

在我们配置的dataDir指定的目录下面,创建一个myid文件,里面内容为一个数字,用来标识当前主机,conf/zoo.cfg文件中配置的server.X中X为什么数字,则myid文件中就输入这个数字,例如:

[plain] view plaincopy

 

  1. hadoop@slave-01:~/installation/zookeeper-3.3.4$ echo "1" > /home/hadoop/storage/zookeeper/myid  
  2. hadoop@slave-02:~/installation/zookeeper-3.3.4$ echo "2" > /home/hadoop/storage/zookeeper/myid  
  3. hadoop@slave-03:~/installation/zookeeper-3.3.4$ echo "3" > /home/hadoop/storage/zookeeper/myid  

按照上述进行配置即可。

 

第五步:启动ZooKeeper集群

在ZooKeeper集群的每个结点上,执行启动ZooKeeper服务的脚本,如下所示:

[plain] view plaincopy

 

  1. hadoop@slave-01:~/installation/zookeeper-3.3.4$ bin/zkServer.sh start  
  2. hadoop@slave-02:~/installation/zookeeper-3.3.4$ bin/zkServer.sh start  
  3. hadoop@slave-03:~/installation/zookeeper-3.3.4$ bin/zkServer.sh start  
时间: 2024-08-03 15:59:46

Zookeeper,也要接触起来啦的相关文章

hadoop +hbase +zookeeper 完全分布搭建 (版本二

这里有几个主要关系: 1.经过Map.Reduce运算后产生的结果看上去是被写入到HBase了,但是其实HBase中HLog和StoreFile中的文件在进行flush to disk操作时,这两个文件存储到了HDFS的DataNode中,HDFS才是永久存储. 2.ZooKeeper跟Hadoop Core.HBase有什么关系呢?ZooKeeper都提供了哪些服务呢?主要有:管理Hadoop集群中的NameNode,HBase中HBaseMaster的选举,Servers之间状态同步等.具体

亲密接触Redis-第一天

引言 nosql,大规模分布式缓存遍天下,Internet的时代在中国由其走得前沿,这一切归功于我国特色的电商.因此nosql.大数据技术在中国应用的比国外还要前沿.从这一章开始我们将开始进入到真正的SOA.PAAS.SAAS.互联网的领域,因此每一篇我都会加入一小段业务的基础知识,让大家在学习技术的同时也可以了解一些业务,这边的业务不是指的business logic不是让大家去做业务人员,而是为大家带来IDEA,"没有做不到只有想不到",阿里支付宝为什么发了...不是技术,而是它的

ZooKeeper场景实践:(1)准备工作

ZooKeeper是一个高可用的分布式数据管理与系统协调框架.保证了分布式环境中数据的强一致性,也正是基于这样的特性,使得ZooKeeper解决很多分布式问题. 有人认为ZooKeeper之于分布式的意义正如同lex/yacc之于编译的意义.我们知道lex/yacc是一套强大的语法编译工具.使用lex/yacc可以很轻松的完成许多语法规则的编写.同样道理,Zookeeper作为一个分布式的数据管理和协调框架,没有它依然可以做分布式,但是有了它,你的分布式会更轻松. 本系列文章主要是从学习的角度对

ZooKeeper 笔记(5) ACL(Access Control List)访问控制列表

zk做为分布式架构中的重要中间件,通常会在上面以节点的方式存储一些关键信息,默认情况下,所有应用都可以读写任何节点,在复杂的应用中,这不太安全,ZK通过ACL机制来解决访问权限问题,详见官网文档:http://zookeeper.apache.org/doc/r3.4.6/zookeeperProgrammers.html#sc_ZooKeeperAccessControl 总体来说,ZK的节点有5种操作权限: CREATE.READ.WRITE.DELETE.ADMIN 也就是 增.删.改.查

zookeeper集群搭建

因为公司的业务发展,需要搭建codis集群(一个由国内豌豆荚开发的redis集群解决方案),但是codis集群是依赖与zookeeper集群的.所以这篇文章,我们主要介绍有关zookeeper集群的搭建. 一.zookeeper介绍 zookeeper是一个分布式的开源框架,它能很好的管理集群,而且提供协调分布式应用的基本服务. 它向外部应用暴露一组通用服务--分布式同步(Distributed Synchronization).命名服务(Naming Service).集群维护(Group M

Zookeeper开源客户端框架Curator简介与示例

简介         Curator最初由Netflix的Jordan Zimmerman开发, Curator提供了一套Java类库, 可以更容易的使用ZooKeeper.         所谓ZooKeeper技巧(ZooKeeper Recipes),也可以称之为解决方案, 或者叫实现方案, 是指ZooKeeper的使用方法, 比如分布式的配置管理, Leader选举等         Curator作为Apache ZooKeeper天生配套的组件.ZooKeeper的Java开发者自然

初次接触:DirectDraw

第六章 初次接触:DirectDraw 本章,你将初次接触DirectX中最重要的组件:DirectDraw.DirectDraw可能是DirectX中最强大的技术,因为其贯穿着2D图形绘制同时其帧缓存层也是DirectX3D的基础.当然,DirectX8.0中DirectDraw已经完全集成到了DirectX3D里面.此外,如果你对DirectDraw深有了解,那将拥有创建任何DOS16/32类型的图形化程序的能力.DirectDraw是理解众多DirectX自身概念的钥匙.所以,听仔细了.

HBase与Zookeeper数据结构查询

一.前言   最近一年了吧,总是忙于特定项目的业务分析和顶层设计,很少花时间和精力放到具体的技术细节,感觉除了架构理念和分析能力的提升,在具体技术层次却并没有多大的进步.因为一些原因,总被人问及一些技术细节,很多细节都模糊了,花点时间,温习一下吧.技术部分将作为下一个阶段的工作重点. 二.操作说明 查看Zookeeper内部HBase相关数据,有两个主要的渠道:一.通过Hbase shell命令zk_dump查看:二.通过zk_cli.sh查看: 三.zk_dump HBase is roote

小白接触xcode,出现Thread1:EXC_BAD_ACCESS(code=1,address=0x68)

问题描述 小白接触xcode,出现Thread1:EXC_BAD_ACCESS(code=1,address=0x68) #import int main(int argc, const char * argv[]) { FILE *wordFile=fopen("/tmp/words.txt","r"); char word[100]; while(fgets(word,100,wordFile)) { word[strlen(word)-1]=''; NSLog