zookpper的使用和详解

zookpper的使用与详解
简介
基于观察者模式
zookpper是一个开源的分布式的,为分布式应用提供协调服务的Apache项目!以便于为分布式应用可以在zookpper纸上构建更高层次的同步服务!为用户提供同步、配置管理、分组和命名等服务!它是使用java编写的!
zookpper的特点
简单性:不同于典型的文件系统,zookpper的数据是存放在内存当中的,这样zookpper就可以实现一个高的吞吐量以及低的延迟!
健壮性:只要大部分的服务器可用,那么zookpper服务就可用!
zookpper中的数据模型以及层次命名空间
zookpper提供的命名空间与标准的文件系统非常类似,它的系统是由通过斜线分割的路径序列所组成的。如 /为根目录,/zk_1为第一个zk,/zk_1_data_1又为/zk_1下的某一数据文件目录!这样 zookpper中的每一个节点都是通过路径来识别的!zookpper组成的层次命名空间为树形状。
zookpper中的节点与临时节点
首先zookpper中的节点被称为znode,所有的znode是通过橡树一样的数据结构进行维护,并且所有的节点都是通过路径来标识以及访问的、此外,znode还维护着数据、访问控制列表、时间戳等包含交换版本信息的数据结构。
然后zookpper中存在着临时节点,临时节点与session同时存在,当session的生命周期结束时,这些临时节点也会被删除。临时节点一般用于leader的选举以及锁服务等。
zookpper的角色
zookpper中有以下几种角色:
领导者leader:负责进行投票的发起和决议,更新系统状态
学习者Learner
包括了跟随者Follower,应用于接收客户请求并向客户端返回结果,正在选主过程中参与投票
包括了观察者Observer,Observer可以接收客户端请求,将写请求转发给leader节点,但是Observer不参与投票过程,只是同步leader的状态。Observer的目的是为了扩展系统,提高读取速度
客户端client:请求发起方。


zookpper的安装步骤(单机版、伪分布式、分布式)这里以分布式为例
1.首先将安装包进行解压操作(tar -zxvf ~~~~~~)
2.然后配置/bigdata/zookeeper-3.4.5/conf下的zoo.cfg文件
# The number of milliseconds of each tick
tickTime=2000
#zookpper服务器与客户端或服务器之间维持心跳的时间,即每tickTime时间就会发送一个心跳
# The number of ticks that the initial
# synchronization phase can take
initLimit=10
#配置zookpper接受客户端初始化连接时最长能忍受几个心跳长度。若超过表明客户端连接失败
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5
#表示leader与follower之间发消息,请求和应答时间长度
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes.
dataDir=/bigdata/zookeeper-3.4.5/mydata
# the port at which the clients will connect
clientPort=2181
#
# Be sure to read the maintenance section of the
# administrator guide before turning on autopurge.
#
# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# The number of snapshots to retain in dataDir
#autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to "0" to disable auto purge feature
#autopurge.purgeInterval=1
server.1=myhadoop:2888:3888
server.2=hadoop1:2888:3888
server.3=hadoop2:2888:3888
其中需要配置的地方有图中标红的两处。
dataDir表明了zookpper保存数据的目录,默认的情况下,zookpper会将写数据的日志文件也保存在该目录下。
server.id=host:port:port表示集群中的不同服务器,id以1,2,3,4。。。。为相应的值、对应的值在dataDir指定目录下的myid文件中配置。zookpper再启动的时候读取此文件,拿到里面的数据与zoo.cfg里面的配置信息比较从而判断到底是哪一个server
对应于两个端口号,分别是从机器follower连接到主机器leader的端口、以及用来进行leader选举的端口。
3.将zookpper文件复制到集群中其它节点,并配置myid的值对应为2,3,4,,,,,
到此zookpper集群就搭建完成!
最后使用该命令来启动zookpper服务。 ./zkServer.sh start
zookpper的使用与详解
简介
基于观察者模式
zookpper是一个开源的分布式的,为分布式应用提供协调服务的Apache项目!以便于为分布式应用可以在zookpper纸上构建更高层次的同步服务!为用户提供同步、配置管理、分组和命名等服务!它是使用java编写的!
zookpper的特点
简单性:不同于典型的文件系统,zookpper的数据是存放在内存当中的,这样zookpper就可以实现一个高的吞吐量以及低的延迟!
健壮性:只要大部分的服务器可用,那么zookpper服务就可用!
zookpper中的数据模型以及层次命名空间
zookpper提供的命名空间与标准的文件系统非常类似,它的系统是由通过斜线分割的路径序列所组成的。如 /为根目录,/zk_1为第一个zk,/zk_1_data_1又为/zk_1下的某一数据文件目录!这样 zookpper中的每一个节点都是通过路径来识别的!zookpper组成的层次命名空间为树形状。
zookpper中的节点与临时节点
首先zookpper中的节点被称为znode,所有的znode是通过橡树一样的数据结构进行维护,并且所有的节点都是通过路径来标识以及访问的、此外,znode还维护着数据、访问控制列表、时间戳等包含交换版本信息的数据结构。
然后zookpper中存在着临时节点,临时节点与session同时存在,当session的生命周期结束时,这些临时节点也会被删除。临时节点一般用于leader的选举以及锁服务等。
zookpper的角色
zookpper中有以下几种角色:
领导者leader:负责进行投票的发起和决议,更新系统状态
学习者Learner
包括了跟随者Follower,应用于接收客户请求并向客户端返回结果,正在选主过程中参与投票
包括了观察者Observer,Observer可以接收客户端请求,将写请求转发给leader节点,但是Observer不参与投票过程,只是同步leader的状态。Observer的目的是为了扩展系统,提高读取速度
客户端client:请求发起方。


zookpper的安装步骤(单机版、伪分布式、分布式)这里以分布式为例
1.首先将安装包进行解压操作(tar -zxvf ~~~~~~)
2.然后配置/bigdata/zookeeper-3.4.5/conf下的zoo.cfg文件
# The number of milliseconds of each tick
tickTime=2000
#zookpper服务器与客户端或服务器之间维持心跳的时间,即每tickTime时间就会发送一个心跳
# The number of ticks that the initial
# synchronization phase can take
initLimit=10
#配置zookpper接受客户端初始化连接时最长能忍受几个心跳长度。若超过表明客户端连接失败
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5
#表示leader与follower之间发消息,请求和应答时间长度
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes.
dataDir=/bigdata/zookeeper-3.4.5/mydata
# the port at which the clients will connect
clientPort=2181
#
# Be sure to read the maintenance section of the
# administrator guide before turning on autopurge.
#
# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# The number of snapshots to retain in dataDir
#autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to "0" to disable auto purge feature
#autopurge.purgeInterval=1
server.1=myhadoop:2888:3888
server.2=hadoop1:2888:3888
server.3=hadoop2:2888:3888
其中需要配置的地方有图中标红的两处。
dataDir表明了zookpper保存数据的目录,默认的情况下,zookpper会将写数据的日志文件也保存在该目录下。
server.id=host:port:port表示集群中的不同服务器,id以1,2,3,4。。。。为相应的值、对应的值在dataDir指定目录下的myid文件中配置。zookpper再启动的时候读取此文件,拿到里面的数据与zoo.cfg里面的配置信息比较从而判断到底是哪一个server
对应于两个端口号,分别是从机器follower连接到主机器leader的端口、以及用来进行leader选举的端口。
3.将zookpper文件复制到集群中其它节点,并配置myid的值对应为2,3,4,,,,,
到此zookpper集群就搭建完成!
最后使用该命令来启动zookpper服务。 ./zkServer.sh start
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
CMake是一个跨平台的自动化构建工具,可以用于生成各种不同类型的构建文件,包括Makefile、Visual Studio解决方案、Xcode项目等。下面是CMake的使用方法详解: 1. 安装CMake 首先需要在官网上下载并安装CMake软件。安装完成后,可以在命令行中输入cmake --version来确认是否安装成功。 2. 创建一个CMakeLists.txt文件 在项目根目录下创建一个名为CMakeLists.txt的文件,该文件是CMake的核心配置文件,定义了项目的构建规则。可以使用文本编辑器或者IDE来创建这个文件。 3. 设置项目信息 在CMakeLists.txt文件中,需要设置项目的基本信息,包括项目名称、版本号、语言等。这可以通过使用project命令来实现。例如: ``` project(MyProject VERSION 1.0 LANGUAGES CXX) ``` 这里设置了项目名称为MyProject,版本号为1.0,使用C++作为编程语言。 4. 定义源文件 在CMakeLists.txt文件中,需要定义项目的源文件。可以使用add_executable或add_library命令来添加源文件。例如: ``` add_executable(myapp main.cpp) ``` 这里添加了一个名为myapp的可执行文件,它的源文件是main.cpp。 5. 添加依赖库 如果项目依赖于其他库,需要使用find_package或者add_subdirectory命令来添加依赖库。例如: ``` find_package(Boost REQUIRED COMPONENTS filesystem system) include_directories(${Boost_INCLUDE_DIRS}) target_link_libraries(myapp ${Boost_LIBRARIES}) ``` 这里添加了一个名为Boost的库,它的组件是filesystem和system。 6. 设置编译选项 在CMakeLists.txt文件中还可以设置编译选项,例如编译标志、链接标志等。可以使用target_compile_options和target_link_libraries命令来设置编译选项。例如: ``` target_compile_options(myapp PRIVATE -Wall -Wextra) target_link_libraries(myapp pthread) ``` 这里设置了编译标记为-Wall和-Wextra,链接标记为pthread。 7. 构建项目 完成以上步骤后,就可以使用cmake命令来生成构建文件,例如: ``` mkdir build cd build cmake .. ``` 这里在项目根目录下创建了一个build目录,并在其中使用cmake命令生成Makefile文件。 最后,使用make命令来编译和构建项目。例如: ``` make ``` 这里编译和构建了项目,并生成myapp可执行文件。 以上就是CMake的使用方法详解。通过CMake,可以方便地管理项目的构建过程,实现跨平台的构建。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值