ZooKeeper部署文档
搭建zookeeper单机部署和集群部署
2. 3. 4. 5. zookeeper有单机、伪集群、集群三种部署方式,可根据自己对可靠性的需求选择合适的部署方式。
下边对这三种部署方式逐一进行讲解。
1. 系统环境准备操作系统 :centos7java 环境:jdk8我搭建的是自centos7的linux下,先配置好java的配置环境,然后下载zookeeper的相关的jar进行部署2.zookeeper部署下 载 zookeeper 安装包:下载完成,通过 tar -zxvf 解压tar -zxf zookeeper-3.4.5.tar.gz常用命令1.启动 ZK 服务:sh bin/zkServer.sh start查看 ZK 服务状态:sh bin/zkServer.sh status停止 ZK 服务:sh bin/zkServer.sh stop重启 ZK 服务:sh bin/zkServer.sh restart连接服务器sh zkCli.sh -timeout 0 -r -server ip:port3.集群模式初 次 使 用 zookeeper , 需 要 将 %zk_home%/conf 目 录 下 的zoo_sample.cfg 文件 copy 一份重命名为 zoo.cfg,修改 dataDir 目录,dataDir 表示日志文件存放的路径集群环境安装在 zookeeper 集群中,各个节点总共有三种角色,分别是:leaderfollowerobserver集群模式我们采用模拟 3 台机器来搭建 zookeeper 集群。
分别复制安装包到三台机器上并解压,同时 copy 一份zoo.cfg。
3.1 修改配置文件zoo.cfg在zoo.cfg配置文件配置以下的语句tickTime=2000dataDir=/tmp/zookeeperdataLogDir=/usr/myapp/zookeeper-3.4.5/logsclientPort=2181initLimit=10syncLimit=5server.1=192.168.44.128:2888:3888server.2=192.168.44.129:2888:3888server.3=192.168.44.130:2888:3888server.id=host:port1:port2idservice ID ,同时,在每台zookeeper机器上,需要在数据目录(dataDir参数指定的那个目录下)创建一个myid的文件,文件只要一行内容,并且是一个数字,即对应每台服务器的serverID的数字port1 Leaderport2 Leader Leader。
ZooKeeper安装、配置和使用
ZooKeeper安装、配置和使⽤Zookeeper的概述:ZooKeeper是⼀个开源的分布式的,为分布式应⽤提供协调服务的Apache项⽬。
ZooKeeper从设计模式⾓度来理解:是⼀个基于观察者模式设计的分布式服务管理框架,它负责存储和管理⼤家都关⼼的数据,然后接受观察者的注册,⼀旦这些数据的状态发⽣变化,ZooKeeper就将负责通知已经在ZooKeeper上注册的那些观察者做出相应的反应。
例如:⼀组服务器集群、⼀组客户端,全部通过ZooKeeper注册,如果⼀台服务节点宕机,则ZooKeeper集群可以监测宕机⼏点服务器状态并通知客户端。
ZooKeeper的特点:1. ZooKeeper:⼀个领导者(Leader),多个跟随者(Follower)组成的集群。
2. 集群中只要有半数以上的节点存活,ZooKeeper集群就能正常服务。
3. 全局数据⼀致性:每个Server保存⼀份相同的数据副本,Client⽆论连接到哪个Server,数据都是⼀致的。
4. 更新请求顺序进⾏,来⾃同⼀个Client的更新请求按其发送顺序依次执⾏。
5. 数据更新原⼦性,⼀次数据更新要么成功,要么失败。
6. 实时性,在⼀定时间范围内,Client能读到最新数据。
ZooKeeper的数据结构ZooKeeper数据模型的结构与Unix⽂件系统类似,整体上可以看做是⼀棵树,每个节点称作⼀个ZNode。
每⼀个ZNode默认能够存储1MB的数据,每个ZNode都可以通过其路径唯⼀标识。
ZooKeeper应⽤场景提供的服务包括:统⼀命名服务,统⼀配置管理,统⼀集群管理,服务器节点动态上下线,软负载均衡等。
ZooKeeper的内部原理选举机制半数机制:集群中半数以上机器存活,集群可⽤。
所以ZooKeeper适合安装奇数台服务器。
ZooKeeper虽然在配置⽂件中没有指定Master和Slave,但是在集群⼯作时,是有⼀个节点为Leader,其他节点为Follower的,Leader是通过内部的选举机制临时产⽣的。
Zookeeper统一配置管理
Disconf介绍
模块信息
客户端 • disconf-core: 分布式配置基础包模块。 • disconf-client: 分布式配置客户端模块, 依赖disconf-core包。 用户程序使 用它作为Jar包进行分布式配置编程。 • disconf-tool: 分布式配置工具包,依赖disconf-core包, 目前使用不多,建 议不使用。 管理端 • disconf-web是统一的分布式配置管理平台。disconf-web: 分布式配置平 台服务模块, 依赖disconf-core包。采用SpringMvc+纯HTML方式(前后端 分离架构)实现。用户使用它来进行日常的分布式配置管理。
Zookeeper配置管理
Zookeeper配置管理
优势
• 简单。配置统一管理,方便运维;用户只要修改配置,无需进行其他任 何操作,配置自动生效。 • 可靠。ZooKeeper 服务集群具有无单点失效的特性 ,使整个系统更加 可靠,即使ZooKeeper 集群中的一台机器失效,也不会影响整体服务, 更不会影响分布式应用配置信息的更新。 • 实时。ZooKeeper的数据更新通知机制,可以在数据发生变化后,立即 通知给分布式应用程序,具有很强的变化响应能力。
劣势
• 最终一致性。配置的更新并不能做到强一致性,因为网络延迟等原因 ,只能做到最终一致性。
Disconf介绍
简介
Disconf(Distributed Configuration Management Platform )是百 度前端技术部研发的基于Zookeeper的分布式配置管理平台,它是专注于各 种系统的配置管理的通用组件/通用平台。 使用Disconf,可以对所有业务系统的配置进行统一管理,远程对配置进 行动态更新,免去重复发布的各种问题。 目前项目放在github上,并开放源代码。
zookeeper集群安装
zookeeper集群安装2010-07-19 15:43:22| 分类:分布式|字号订阅Linux/OS X下:1 install1.1) 建立安装目录mkdir -p /local/software/zookeeper/cd /local/software/zookeeper/1.2) 下载压缩包curl -O /hadoop/zookeeper/zookeeper-3.3.1/zookeeper-3.3.1.tar.gz1.3) 解压缩文件tar xzf zookeeper-3.3.1.tar.gzcd /local/software/zookeeper/2. Config我们把提供相同应用的服务器组称之为一个quorum,quorum中的所有机器都有相同的配置文件。
在这里我们以3个机器组成的quorum为例,具体配置如下。
2.1) 建立数据目录mkdir -p /local/software/zookeeper/zookeeper-3.3.1/data2.2) 编辑配置文件 /local/software/zookeeper/zookeeper-3.3.1/conf/zoo.cfgdataDir=/local/software/zookeeper/zookeeper-3.3.1/data clientPort=2181initLimit=10syncLimit=5tickTime=2000server.1=175.41.131.28:2888:3888server.2=175.41.131.114:2888:3888server.3=175.41.132.171:2888:3888其中server.X代表组成整个服务的机器,当服务启动时,会在数据目录下查找这个文件myid,这个文件中存有服务器的号码。
下面会讲myid文件的配置。
2.3) 创建dataDir参数指定的目录(这里指的是"/local/software/zookeeper/zookeeper-3.3.1/data"),并在目录下创建文件,命名为“myid”,编辑该“myid”文件,并在对应的IP的机器上输入对应的编号。
Kylin部署文档
Kylin部署1、操作系统Centos 6.52、使用组件及版本jdk1.8.0_73zookeeper-3.4.6.tar.gzhadoop-2.7.3.tar.gzhbase-1.2.4-bin.tar.gzapache-hive-1.2.1-bin.tar.gzMySQL 5.1.73 (采用yum安装)apache-kylin-1.6.0-hbase1.x-bin.tar.gz一、安装前准备1.1、关闭防火墙serviceiptables stopchkconfigiptables off1.2、关闭SELinuxvi /etc/sysconfig/selinux修改文件中1.3、修改HostName3.1修改主机名vi /etc/sysconfig/network修改文件中主机名HOSTNAME的值为host13.2 重启系统主机名生效重启系统让主机名生效,使用shutdown -r now 重启系统,命令如下:shutdown -r now1.4 IP映射vi /etc/hosts1.5 安装JDK1.5.1 java文件上传cd /opt/tar -xzvf jdk-8u73-linux-x64.tar.gz删除压缩包rm -rf jdk-8u73-linux-x64.tar.gz1.5.2 配置环境变量vi /etc/profilesource /etc/profile1.5.3 检验是否安装成功java -version1.6 创建用户和密码(用户可以添加,也可以不添加。
如果是测试环境不添加直接可以用root用户来执行)创建用户:useraddhadoop为新创建的用户设置密码:passwdhadoop1.7 创建文件夹使用root用户进入/opt目录并创建appcd /opt/mkdir app为新建的app目录授予hadoop可使用的权限:chownhadoop.hadoopapp -R1.8 配置其它的节点按照上面第一步到第八步,配置集群中的其它节点1.9 ssh无密码校验使用命令ssh-keygen -t rsa生成公钥/私钥对,在执行命令行,按回车,在$home/.ssh/目录下,会新生成两个文件:id_rsa.pub和id_rsa,前面是你的公钥,后面是你的私钥使用相同的命令在集群的其它节点上面生成生成公钥/私钥对1.9.1使用hadoop用户登录:su - hadoop1.9.2安装ssh[hadoop@h1 ~]$ ssh-keygen -t rsa[hadoop@h2 ~]$ ssh-keygen -t rsa截图见上图[hadoop@h3 ~]$ ssh-keygen -t rsa截图见上图1.9.3设置无秘钥连接[hadoop@h1 ~]$ ssh-copy-id -i /home/hadoop/.ssh/id_rsa.pub h1[hadoop@h1 ~]$ ssh-copy-id -i /home/hadoop/.ssh/id_rsa.pub h2 截图见上图[hadoop@h1 ~]$ ssh-copy-id -i /home/hadoop/.ssh/id_rsa.pub h2 截图见上图[hadoop@h2 ~]$ ssh-copy-id -i /home/hadoop/.ssh/id_rsa.pub h1[hadoop@h2 ~]$ ssh-copy-id -i /home/hadoop/.ssh/id_rsa.pub h2 截图见上图[hadoop@h2 ~]$ ssh-copy-id -i /home/hadoop/.ssh/id_rsa.pub h3 截图见上图[hadoop@h3 ~]$ ssh-copy-id -i /home/hadoop/.ssh/id_rsa.pub h1[hadoop@h3 ~]$ ssh-copy-id -i /home/hadoop/.ssh/id_rsa.pub h2截图见上图[hadoop@h3 ~]$ ssh-copy-id -i /home/hadoop/.ssh/id_rsa.pub h3截图见上图二zookeeper安装2.1确定集群结构(1)我们打算在三个节点安装ZK,分别是192.168.254.182(h1)、192.168.254.184(h2)、192.168. 254.217(h3)。
zookeeper文档
zookeeper文档(一)Zookeeper基础知识、体系结构、数据模型1zookeeper是一个类似hdfs的树形文件结构,zookeeper可以用来保证数据在(zk)集群之间的数据的事务性一致、2zookeeper有watch事件,是一次性触发的,当watch监视的数据发生变化时,通知设置了该watch的client,即watcher3 zookeeper有三个角色:Learner,Follower,Observer4 zookeeper应用场景:统一命名服务(Name Service)配置管理(Configuration Management)集群管理(Group Membership)共享锁(Locks)队列管理(二) Zookeeper配置(搭建zookeeper服务器集群)1.1 结构:一共三个节点(zk服务器集群规模不小于3个节点),要求服务器之间系统时间保持一致。
1.2 上传zk进行解压:tar zookeeper-3.4.5.tar.gz重命名:mv zookeeper-3.4.5 zookeeper修改环境变量:vi /etc/profileexportZOOKEEPER_HOME=/usr/local/zookeeperexportPATH=.:$HADOOP_HOME/bin:$ZOOKEEPER_HOME/bin:$JA VA_HOME/...刷新:source /etc/profile到zookeeper下修改配置文件cd /usr/local/zookeeper/confmv zoo_sample.cfg zoo.cfg修改conf: vi zoo.cfg 修改两处(1)dataDir=/usr/local/zookeeper/data(2)最后面添加server.0=bhz:2888:3888server.1=hadoop1:2888:3888server.2=hadoop2:2888:3888服务器标识配置:创建文件夹:mkdir data创建文件myid并填写内容为0:vi myid (内容为服务器标识: 0) 进行复制zookeeper目录到hadoop01和hadoop02还有/etc/profile文件把hadoop01、hadoop02中的myid文件里的值修改为1和2 路径(vi /usr/local/zookeeper/data/myid)启动zookeeper:路径:/usr/local/zookeeper/bin执行:zkServer.sh start(注意这里3台机器都要进行启动)状态:zkServer.shstatus(在三个节点上检验zk的mode,一个leader和俩个follower)1.3 操作zookeeper (shell)zkCli.sh 进入zookeeper客户端根据提示命令进行操作:查找:ls / ls /zookeeper创建并赋值:create /bhz hadoop获取:get /bhz设值:set /bhz baihezhuo可以看到zookeeper集群的数据一致性创建节点有俩种类型:短暂(ephemeral)持久(persistent)(三) zoo.cfg详解:tickTime:基本事件单元,以毫秒为单位。
小记--------clickhouse集群安装部署文档
⼩记--------clickhouse集群安装部署⽂档clickhouseCentOS系统三台测试机Host: 192.168.2.211、 192.168.2.212、 192.168.2.213⼆、RPM# 前提需要zookeeper环境,如没有需要安装(因为之前就有,所以就讲解如何搭建kafka集群)# 分别在三台机器上root⽤户下安装clickhouse-server、clickhouse-clientsudo yum install -y yum-utilssudo yum-config-manager --add-repo https:///rpm/clickhouse.reposudo yum install -y clickhouse-server clickhouse-clientclickhouse-server、clickhouse-client version 21.12.2.17单机版1、修改clickhouse-server的配置⽂件config.xml[clickhouse@node2 clickhouse-server]$ vim /etc/clickhouse-server/config.xml<!--因为9000端⼝被其他服务占⽤,故把端⼝tcp端⼝修改1200,为了之后管理⽅便就把相关的端⼝号都改成⼀个范围内的端⼝号,⽅便后期维护使⽤--> <!-- Port for HTTP API. See also 'https_port' for secure connections.This interface is also used by ODBC and JDBC drivers (DataGrip, Dbeaver, ...)and by most of web interfaces (embedded UI, Grafana, Redash, ...).--><!--http⽹址访问端⼝--><http_port>1199</http_port><!-- Port for interaction by native protocol with:- clickhouse-client and other native ClickHouse tools (clickhouse-benchmark, clickhouse-copier);- clickhouse-server with other clickhouse-servers for distributed query processing;- ClickHouse drivers and applications supporting native protocol(this protocol is also informally called as "the TCP protocol");See also 'tcp_port_secure' for secure connections.--><!--clickhouse-client客户端监听端⼝--><tcp_port>1200</tcp_port><!-- Compatibility with MySQL protocol.ClickHouse will pretend to be MySQL for applications connecting to this port.--><!--监听mysql端⼝--><mysql_port>1201</mysql_port><!-- Compatibility with PostgreSQL protocol.ClickHouse will pretend to be PostgreSQL for applications connecting to this port.--><postgresql_port>1202</postgresql_port><!-- Port for communication between replicas. Used for data exchange.It provides low-level data access between servers.This port should not be accessible from untrusted networks.See also 'interserver_http_credentials'.Data transferred over connections to this port should not go through untrusted networks.See also 'interserver_https_port'.--><interserver_http_port>1203</interserver_http_port>.........<!--将注释掉的这⾏放开,作⽤是可以通过远程服务器访问服务--><listen_host>::</listen_host>.........<!--将原始的全部注释掉--><!-- <remote_servers> --><!-- Test only shard config for testing distributed storage --><!-- <test_shard_localhost> --><!-- Inter-server per-cluster secret for Distributed queriesdefault: no secret (no authentication will be performed)If set, then Distributed queries will be validated on shards, so at least:- such cluster should exist on the shard,- such cluster should have the same secret.And also (and which is more important), the initial_user willbe used as current user for the query.Right now the protocol is pretty simple and it only takes into account:- cluster name- queryAlso it will be nice if the following will be implemented:- source hostname (see interserver_http_host), but then it will depends from DNS,it can use IP address instead, but then the you need to get correct on the initiator node.- target hostname / ip address (same notes as for source hostname)- time-based security tokens--><!-- <secret></secret> --><!-- <shard> -->......<!--</remote_servers>-->修改到此处单机版的clickhouse就安装完成了。
ZooKeeper 安装与配置
ZooKeeper 安装、配置如题本文介绍的是ZooKeeper 的安装和配置过程,此过程非常简单,关键是如何应用(将放在下节及相关节中介绍)。
单机安装、配置:安装非常简单,只要获取到Zookeeper 的压缩包并解压到某个目录如:/home/frank/ZooKeeperInstall/zookeeper-3.3.3下。
配置文件存放在/conf/目录下,将zoo_sample.cfd文件名称改为zoo.cfg, 缺省的配置内容如下:# The number of milliseconds of each ticktickTime=2000# The number of ticks that the initial# synchronization phase can takeinitLimit=10# The number of ticks that can pass between# sending a request and getting an acknowledgementsyncLimit=5# the directory where the snapshot is stored.dataDir=/home/frank/ZooKeeperInstall /data //这是我修改后的# the port at which the clients will connectclientPort=2181∙tickTime:这个时间是作为Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个tickTime 时间就会发送一个心跳。
∙dataDir:顾名思义就是Zookeeper 保存数据的目录,默认情况下,Zookeeper 将写数据的日志文件也保存在这个目录里。
∙clientPort:这个端口就是客户端连接Zookeeper 服务器的端口,Zookeeper 会监听这个端口,接受客户端的访问请求。
ZooKeeper安装部署指南
第一章软件准备1.1系统环境Ubuntu 1504 Server 64bit1.2软件环境zookeeper-3.4.6.tar.gz第二章安装配置1安装zookeeper-3.4.6下载:wget/apache/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar .gz解压:tar zxvf zookeeper-3.4.6.tar.gz进入目录:cd zookeeper-3.4.62配置2.1单机模式与测试(1).生成配置进入zookeeper目录下的conf/目录下有个zoo_sample.cfg,是样板配置文件复制一份改名字为:zoo.cfg(2).修改参数里面有两个比较重要的配置:dataDir=/var/lib/zookeeper # 数据存放位置,可根据需要修改clientPort=2181 # 服务监听端口,可根据需要修改(3).启动服务bin/zkServer.sh start如果未启动成功,看端口是否冲突(4).启动客户端测试启动命令:bin/zkCli.sh -server 127.0.0.1:2181显示根目录下、文件:ls /创建文件,并设置初始内容:create /bhgx hello获取文件内容:get /bhgx修改文件内容:set /bhgx world删除文件:delete /bhgx退出客户端:quit查看zookeeper的状态zk@PC0021:~/zookeeper-3.4.6/bin> zkServer.sh status JMX enabled by defaultUsing config: /home/zk/zookeeper-3.4.6/bin/../conf/zoo.cfg Mode: standalone重启zookeeper 命令zk@PC0021:~/zookeeper-3.4.6/bin> zkServer.sh restart JMX enabled by defaultUsing config: /home/zk/zookeeper-3.4.6/bin/../conf/zoo.cfg JMX enabled by defaultUsing config: /home/zk/zookeeper-3.4.6/bin/../conf/zoo.cfgStopping zookeeper ... STOPPEDJMX enabled by defaultUsing config: /home/zk/zookeeper-3.4.6/bin/../conf/zoo.cfgStarting zookeeper ... STARTED2.2伪集群模式所谓伪集群, 是指在单台机器中启动多个zookeeper进程, 并组成一个集群. 以启动3个zookeeper进程为例,将zookeeper的目录拷贝2份:|--zookeeper0|--zookeeper1|--zookeeper2更改zookeeper0/conf/zoo.cfg文件为:tickTime=2000initLimit=5syncLimit=2dataDir=/psp/zookeeper /datadataLogDir=/psp /zookeeper /logsclientPort=4180server.0=127.0.0.1:8880:7770server.1=127.0.0.1:8881:7771server.2=127.0.0.1:8882:7772新增了几个参数, 其含义如下:∙initLimit: zookeeper集群中的包含多台server, 其中一台为leader, 集群中其余的server为follower. initLimit参数配置初始化连接时, follower和leader之间的最长心跳时间. 此时该参数设置为5, 说明时间限制为5倍tickTime, 即5*2000=10000ms=10s.∙syncLimit: 该参数配置leader和follower之间发送消息, 请求和应答的最大时间长度. 此时该参数设置为2, 说明时间限制为2倍tickTime, 即4000ms.∙server.X=A:B:C 其中X是一个数字, 表示这是第几号server. A是该server所在的IP地址. B配置该server和集群中的leader交换消息所使用的端口. C配置选举leader时所使用的端口. 由于配置的是伪集群模式, 所以各个server的B, C参数必须不同.参照zookeeper0/conf/zoo.cfg, 配置zookeeper1/conf/zoo.cfg, 和zookeeper2/conf/zoo.cfg文件. 只需更改dataDir, dataLogDir, clientPort参数即可.在之前设置的dataDir中新建myid文件, 写入一个数字, 该数字表示这是第几号server. 该数字必须和zoo.cfg文件中的server.X中的X一一对应./psp/zookeeper/data/myid文件中写入0, /psp /zookeeper1/data/myid文件中写入1, /psp /zookeepe2r/data/myid文件中写入2.注:myid文件为无后缀文件,直接写入数字。
zookeeper配置文件说明(zoo.cfg)
zookeeper配置⽂件说明(zoo.cfg)clientPort # 客户端连接server的port,即对外服务port,⼀般设置为2181。
dataDir # 存储快照⽂件snapshot的⽂件夹。
默认情况下。
事务⽇志也会存储在这⾥。
建议同⼀时候配置參数dataLogDir, 事务⽇志的写性能直接影响zk性能。
tickTime # ZK中的⼀个时间单元。
ZK中全部时间都是以这个时间单元为基础,进⾏整数倍配置的。
⽐如,session的最⼩超时时间是2*tickTime。
dataLogDir # 事务⽇志输出⽂件夹。
尽量给事务⽇志的输出配置单独的磁盘或是挂载点,这将极⼤的提升ZK性能。
globalOutstandingLimit # 最⼤请求堆积数。
默认是1000。
ZK执⾏的时候,虽然server已经没有空暇来处理很多其它的client请求了,可是还是同意client将请求提交到服务器上来,提⾼吞吐性能。
当然,为了防⽌Server内存溢出,这个请求堆积数还是须要限制下的。
Java system property:zookeeper.globalOutstandingLimit. preAllocSize # 预先开辟磁盘空间。
⽤于兴许写⼊事务⽇志。
默认是64M,每⼀个事务⽇志⼤⼩就是64M。
假设ZK的快照频率较⼤的话。
建议适当减⼩这个參数。
snapCount # 每进⾏snapCount次事务⽇志输出后,触发⼀次快照(snapshot), 此时,ZK会⽣成⼀个snapshot.*⽂件,同⼀时候创建⼀个新的事务⽇志⽂件log.*。
默认是100000.(真正的代码实现中,会进⾏⼀定的随机数处理,以避免全部server在同⼀时间进⾏快照⽽影响性能)。
traceFile # ⽤于记录全部请求的log,⼀般调试过程中能够使⽤,可是⽣产环境不建议使⽤。
会严重影响性能maxClientCnxns # 单个client与单台server之间的连接数的限制,是ip级别的,默认是60。
zookeeper理解(转)
zookeeper理解(转)zookeeper的部署和使用的部署和使用ZooKeeper是一个高可用、高可靠的协同工作系统,分布式程序可以用ZooKeeper保存并更新关键共享状态。
Katta使用zookeeper保证主节点和搜索节点的有效性,指派索引文件给搜索节点,察觉搜索节点的失效等。
安装zookeeper也很简单,下载zookeeper-3.1.1.tar.gz,解压到/home/hezhiming/zookeeper-3.1.1。
zookeeper要部署到各台机器的相同目录下,且具有相同的配置文件。
Zookeeper 的配置文件主要有以下两个:1、/zookeeper -3.1.1/conf/zoo.cfg:# The number of milliseconds of each ticktickTime=2000# The number of ticks that the initial# synchronization phase can takeinitLimit=10# The number of ticks that can pass between# sending a request and getting an acknowledgementsyncLimit=5# the directory where the snapshot is stored.dataDir=/home/nutch/zookeeper-3.1.1/zookeeper-data# the port at which the clients will connectclientPort=3355# 2888,3888 are election portserver.1=devcluster01:2555:3555server.2=devcluster05:2555:3555server.3=devcluster06:2555:3555注明:2555端口号是zookeeper服务之间通信的端口,而3555是zookeeper 与其他应用程序通信的端口。
zookeepe集群部署简单指南v1.0
zookeeper集群部署指南zookeeper集群部署至少需要3个节点,即需要在3台机器上分别部署zookeeper。
3台机器的zookeeper的配置文件保持一致即可,只是每台机器的myid文件不同。
详细步骤如下:1 修改zoo.cfg配置文件1.tickTime=20002.dataDir=/var/lib/zookeeper/3.clientPort=21814.initLimit=55.syncLimit=26.server.1=192.168.1.1:2888:38887.server.2=192.168.1.2:2888:38888.server.3=192.168.1.3:2888:38882 建立myid文件(1)在配置文件dataDir的目录下建立myid文件,myid文件内容有且只有一行。
内容取值范围为0~255。
(2)myid文件内容与配置文件中server.*中的*保持一致。
如:192.168.1.1的是server.1,则myid内容为1,192.168.1.2的myid内容为2。
依次类推。
(3)红色ip地址请替换为实际的机器IP(4)蓝色2888端口号可以保持默认。
如果端口号已经被占用,更改一个即可。
3台机器为了保持配置方便,配置一样即可。
(5)绿色3888端口号可以保持默认。
如果端口号已经被占用,更改一个即可。
3台机器为了保持配置方便,配置一样即可。
(6)按server的顺序启动zookeeper。
首先启动的机器可能会报错,因为需要查找其他的机器,而此时其他的2台server可能还没有启动完毕。
等所有机器都启动完毕后,日志会稳定在正常输出。
3台机器的启动间隔尽量的短。
3 验证部署成功分别在3台机器上执行zkServer.sh status会发现其中一台机器为Mode: leader 其余两台为Mode: follower。
ZooKeeper笔记(1)安装部署及helloworld
ZooKeeper笔记(1)安装部署及helloworld先给⼀堆学习⽂档,⽅便以后查看官⽹⽂档地址⼤全:OverView(概述)Getting Started(开始⼊门)Tutorial(教程)Java Example(Java⽰例)Programmer's Guide(开发⼈员指南)Recipes and Solutions(技巧及解决⽅案)3.4.6 API online(在线API速查)另外推荐园友sunddenly的zookeeper系列⼀、安装部署本⽂在⼀台机器上模拟3个 zk server的集群安装1.1下载解压解压到3个⽬录(模拟3台zk server): /home/hadoop/zookeeper-1 /home/hadoop/zookeeper-2 /home/hadoop/zookeeper-31.2创建每个⽬录下conf/zoo.cfg配置⽂件/home/hadoop/zookeeper-1/conf/zoo.cfg 内容如下:tickTime=2000initLimit=10syncLimit=5dataDir=/home/hadoop/tmp/zk1/datadataLogDir=/home/hadoop/tmp/zk1/logclientPort=2181server.1=localhost:2287:3387server.2=localhost:2288:3388server.3=localhost:2289:3389/home/hadoop/zookeeper-2/conf/zoo.cfg 内容如下:tickTime=2000initLimit=10syncLimit=5dataDir=/home/hadoop/tmp/zk2/datadataLogDir=/home/hadoop/tmp/zk2/logclientPort=2182server.1=localhost:2287:3387server.2=localhost:2288:3388server.3=localhost:2289:3389/home/hadoop/zookeeper-3/conf/zoo.cfg 内容如下:tickTime=2000initLimit=10syncLimit=5dataDir=/home/hadoop/tmp/zk3/datadataLogDir=/home/hadoop/tmp/zk3/logclientPort=2183server.1=localhost:2287:3387server.2=localhost:2288:3388server.3=localhost:2289:3389注:因为是在⼀台机器上模拟集群,所以端⼝不能重复,这⾥⽤2181~2183,2287~2289,以及3387~3389相互错开。
ZooKeeper管理员指南
1.tickTime=20002.dataDir=/var/lib/zookeeper/3.clientPort=21814.initLimit=55.syncLimit=2server.1=zoo1:2888:38886.server.2=zoo2:2888:38887.server.3=zoo3:2888:3888本文后续章节会对这些参数进行详细的介绍,这里只是简单说几点:A. 集群中的每台机器都需要感知整个集群是由哪几台机器组成的,在配置文件中,可以按照这样的格式,每行写一个机器配置:server.id=host:port:port. 关于这个id,我们称之为Server ID,标识host 机器在集群中的机器序号,在每个ZK机器上,我们需要在数据目录(数据目录就是dataDir参数指定的那个目录)下创建一个myid文件,myid中就是这个Server ID数字。
B. 在ZooKeeper的设计中,集群中任意一台机器上的zoo.cfg文件的内容都是一致的。
因此最好是用SVN把这个文件管理起来,保证每个机器都能共享到一份相同的配置。
5. 关于myid文件。
myid文件中只有一个数字,即一个Server ID。
例如,server.1 的myid文件内容就是―1‖。
注意,请确保每个server的myid文件中id数字不同,并且和server.id=host:port:port中的id 一致。
另外,id的范围是1~255。
6. 至此,配置文件基本ok,可以尝试使用如下命令来启动zookeeper了:1.$ java -cp zookeeper.jar:lib/slf4j-api-1.6.1.jar:lib/slf4j-log4j12-1.6.1.jar:lib/log4j-1.2.15.jar:conf \ org.apache.zookeeper.server.quorum.QuorumPeerMainzoo.cfg注意,不同的ZK版本,依赖的log4j和slf4j版本也是不一样的,请看清楚自己的版本后,再执行上面这个命令。
zookeeper环境搭建
Zookeeper环境搭建1.Zookeeper的安装部署,有三种模式:单机模式,伪集群模式和集群模式2.先在VMware上新建三台Centos6.5的虚拟机,并配置IP保证网络畅通,三台虚拟机使用不同的固定IP且相互ping通。
如果是一台物理主机上的三个虚拟机,则建议使用NAT 网络模式3.Zookeeper的运行环境依赖Java的JDK,所以,需要下载JDK8或JDK7先安装并配置环境变量在/etc/profile中4.官网下载zookeeper-3.4.10.tar.gz包,然后通过xftp上传至三台linux虚拟机。
本人上传至/opt/soft下保存5.cd /opt/soft 进入安装包目录,tar –zxvf zookeeper-3.4.10.tar.gz -C /opt/soft 解压到/opt/soft目录下6.cd $ZK_HOME/conf/进入zookeeper目录($ZK_HOME代表zookeeper的安装目录),mvzoo_sample.cfg zoo.cfg重命名文件,其中zoo_simple.cfg为配置样例文件7.配置修改dataDir目录,var常用来存放安装软件的临时数据,日志数据等其他参数配置1.tickTime=2000 #心跳机制间隔时间单位为ms2.dataDir=/var/zookeeper #存储内存数据库快照的位置和事务日志。
3.clientPort=2181 #和外部通信的端口4.initLimit=55.syncLimit=26.#配置集群服务器地址两个port,第一个leader服务器和follower服务器通信端口7.#格式:server.id=host:port:port 第二个port用来leader选举投票通信8.server.10=10.10.10.10:2888:38889.server.11=10.10.10.11:2888:388810.server.12=10.10.10.12:2888:388811.#server.id 这里的id指的是dataDir配置目录中,myid文件中的ID值,服务器ID,下面步骤会创建8.配置好的zoo.cfg,需要配置到其他的虚拟机上,也可以远程复制到其他机子上,命令如下:********************.10.12:/opt回车后,会确认和输入密码,复制到其他机子上9.cd /var 进入var目录,mkdir zookeeper新建目录。
ZooKeeper基础知识部署和应用程序
ZooKeeper 基础知识、部署和应用程序2017-03-17Mark Grover36大数据作者:Mark Grover, 软件工程师, ClouderaApache ZooKeeper 是一个面向分布式应用程序的高性能协调服务器。
它使用一个简单的接口暴露公共服务(比如命名和配置管理、同步和组服务),让用户不必从头开始编程。
它为实现共识、组管理、领导者选举和到场协议(presenceprotocol)配备了现成的支持。
在本文中,我们将探讨ZooKeeper 的基础知识,然后解释一个在模拟的微型分布式环境中建立和部署ZooKeeper 集群的指南。
最后,我们将提供如何在流行的项目中使用ZooKeeper 的示例。
简介让我们首先讨论一下为什么想使用ZooKeeper。
ZooKeeper 是一个面向分布式系统的构建块。
当设计一个分布式系统时,一般需要设计和开发一些协调服务:名称服务—名称服务是将一个名称映射到与该名称有关联的一些信息的服务。
电话目录是将人的名字映射到其电话号码的一个名称服务。
同样,DNS 服务也是一个名称服务,它将一个域名映射到一个IP 地址。
在分布式系统中,您可能想跟踪哪些服务器或服务在运行,并通过名称查看其状态。
ZooKeeper 暴露了一个简单的接口来完成此工作。
也可以将名称服务扩展到组成员服务,这样就可以获得与正在查找其名称的实体有关联的组的信息。
锁定—为了允许在分布式系统中对共享资源进行有序的访问,可能需要实现分布式互斥(distributed mutexes)。
ZooKeeper 提供一种简单的方式来实现它们。
同步—与互斥同时出现的是同步访问共享资源的需求。
无论是实现一个生产者-消费者队列,还是实现一个障碍,ZooKeeper 都提供一个简单的接口来实现该操作。
配置管理—您可以使用ZooKeeper 集中存储和管理分布式系统的配置。
这意味着,所有新加入的节点都将在加入系统后就可以立即使用来自ZooKeeper 的最新集中式配置。
Zookeeper集群部署
Zookeeper集群部署ZooKeeper 是 Apache 的⼀个顶级项⽬,为分布式应⽤提供⾼效、⾼可⽤的分布式协调服务,提供了诸如数据发布/订阅、负载均衡、命名服务、分布式协调/通知和分布式锁等分布式基础服务。
由于 ZooKeeper 便捷的使⽤⽅式、卓越的性能和良好的稳定性,被⼴泛地应⽤于诸如 Hadoop、HBase、Kafka 和 Dubbo 等⼤型分布式系统中。
本⽂的⽬标读者是对 ZooKeeper 有⼀定了解的技术⼈员,将从 ZooKeeper 运⾏模式、集群组成、容灾和⽔平扩容四⽅⾯逐步深⼊,最终构建出⾼可⽤的 ZooKeeper 集群。
⼀、运⾏模式Zookeeper 有三种运⾏模式:单机模式、伪集群模式和集群模式。
1.1 单机模式这种模式⼀般适⽤于开发测试环境,⼀⽅⾯我们没有那么多机器资源,另外就是平时的开发调试并不需要极好的稳定性。
在 Linux 环境下运⾏单机模式需要执⾏以下步骤:1. 准备 Java 运⾏环境由于zookeeper集群的运⾏需要Java运⾏环境,所以需要⾸先安装 JDK,这⾥安装 Java 1.6 或更⾼版本的 JDK,并配置好 Java 相关的环境变量 $JAVA_HOME 。
2. 下载 ZooKeeper 安装包为了能够在任意⽬录启动zookeeper,我们需要配置环境变量。
ps:你也可以不配,这不是搭建集群的必要操作,只不过如果你不配置环境变量,那么每次启动zookeeper需要到安装⽂件的 bin ⽬录下去启动。
⾸先进⼊到 /etc/profile ⽬录,添加相应的配置信息:#set zookeeper environmentexport ZK_HOME=/usr/local/zookeeper/zookeeper-3.6.3export PATH=$PATH:$ZK_HOME/bin然后通过如下命令使得环境变量⽣效:source /etc/profle3. 配置 zoo.cfg⾸次使⽤ ZooKeeper,需要将 $ZK_HOME 下的 zoo_sample.cfg ⽂件重命名为 zoo.cfg,并进⾏以下配置tickTime=2000 ##Zookeeper最⼩时间单元,单位毫秒(ms),默认值为3000dataDir=/var/lib/zookeeper ##Zookeeper服务器存储快照⽂件的⽬录,必须配置dataLogDir=/var/lib/log ##Zookeeper服务器存储事务⽇志的⽬录,默认为dataDirclientPort=2181 ##服务器对外服务端⼝,⼀般设置为2181initLimit=5 ##Leader服务器等待Follower启动并完成数据同步的时间,默认值10,表⽰tickTime的10倍syncLimit=2 ##Leader服务器和Follower之间进⾏⼼跳检测的最⼤延时时间,默认值5,表⽰tickTime的5倍4. 启动服务使⽤ $ZK_HOME/bin ⽬录下的 zkServer.sh 脚本进⾏服务的启动。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ZooKeeper部署流程
一、下载
从Apache网站上()下载ZooKeeper软件包并进行解压,如zookeeper-3.3.4.tar.gz。
二、单节点模式
1.将zookeeper-3.3.4/conf目录下面的zoo_sample.cfg修改为zoo.cfg,配置文件
内容如下所示:
2.启动ZooKeeper服务器进程:
3.通过jps命令可以查看ZooKeeper服务器进程,名称为QuorumPeerMain。
三、伪分布式模式
将解压出来的zookeeper复制三份,分别重命名为zookeeper-1,zookeeper-2和zookeeper-3。
1.配置zookeeper-1:
a.创建data目录:/home/java2000_wl/hadoop/zookeeper-1/data
b.创建log目录:/home/java2000_wl/hadoop/zookeeper-1/logs
c.创建myid文件:/home/java2000_wl/hadoop/zookeeper-1/data/myid
内容:1
d.创建/home/java2000_wl/hadoop/zookeeper-1/conf/zoo.cfg文件
内容:
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/home/java2000_wl/hadoop/zookeeper-1/data
clientPort=2181
dataLogDir=/home/java2000_wl/hadoop/zookeeper-1/logs
server.1=127.0.0.1:4000:5000
server.2=127.0.0.1:4001:5001
server.3=127.0.0.1:4002:5002
2.配置zookeeper-2:
a.创建data目录:/home/java2000_wl/hadoop/zookeeper-2/data
b.创建log目录:/home/java2000_wl/hadoop/zookeeper-2/logs
c.创建myid文件:/home/java2000_wl/hadoop/zookeeper-2/data/myid
内容:2
d.创建/home/java2000_wl/hadoop/zookeeper-2/conf/zoo.cfg文件
内容:
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/home/java2000_wl/hadoop/zookeeper-2/data
clientPort=2182
dataLogDir=/home/java2000_wl/hadoop/zookeeper-2/logs
server.1=127.0.0.1:4000:5000
server.2=127.0.0.1:4001:5001
server.3=127.0.0.1:4002:5002
3.配置zookeeper-3:
a.创建data目录:/home/java2000_wl/hadoop/zookeeper-3/data
b.创建log目录:/home/java2000_wl/hadoop/zookeeper-3/logs
c.创建myid文件:/home/java2000_wl/hadoop/zookeeper-3/data/myid
内容:3
d.创建/home/java2000_wl/hadoop/zookeeper-3/conf/zoo.cfg文件
内容:
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/home/java2000_wl/hadoop/zookeeper-3/data
clientPort=2183
dataLogDir=/home/java2000_wl/hadoop/zookeeper-3/logs
server.1=127.0.0.1:4000:5000
server.2=127.0.0.1:4001:5001
server.3=127.0.0.1:4002:5002
分别进入三个文件夹的bin目录,启动服务zkServer.sh start。
四、分布式模式
1.主机名称到IP地址映射配置
以三个节点为例,在三个机器的/etc/hosts文件添加如下配置:
2.修改ZooKeeper配置文件
打开每台机器上的zookeeper-3.3.4/conf/zoo.cfg文件,进行如下修改:
3.设置myid
在我们配置的dataDir指定的目录下面,创建一个myid文件,里面内容为一个数字,用来标识当前主机,conf/zoo.cfg文件中配置的server.X中X是什么数字,则myid文件中就输入这个数字。
4.启动ZooKeeper集群
5.安装验证
可以通过ZooKeeper的脚本来查看启动状态,包括集群中各个结点的角色(或是Leader,或是Follower)。
五、客户端连接
成功启动zookeeper服务之后,输入下述命令,连接到其中一个zookeeper 服务./zkCli.sh-server127.0.0.1:2181,通过执行一些zookeeper命令来操作zookeeper节点。