大家好,我是方圆。最近在读《数据密集型应用系统设计》,其中谈到了zookeeper对容错共识算法的应用。这让我想到之前参考的zookeeper学习资料中,误将容错共识算法写成了2PC(两阶段提交协议),所以准备以此文对共识算法和2PC做梳理和区分,也希望它能帮助像我一样对这两者有误解的同学。1.2PC(两阶段提交协议)两阶段提交(two-phasecommit)协议是一种用于实现跨多个节点的原子事务(分布式事务)提交的算法。它能确保所有节点提交或所有节点中止,并在某些数据库内部使用,也以XA事务的形式在分布式服务中使用。在JavaEE中,XA事务使用JTA(JavaTransactionAPI
在同一台服务器上,部署一个3个ZooKeeper节点组成的集群,这样的集群叫伪分布式集群,而如果集群中的3个节点分别部署在3个服务器上,那么这种集群就叫真正的分布式集群。这里,记录一下搭建一个3节点的伪分布式集群的过程,真正的分布式集群的搭建过程和伪分布式的过程类似,稍有不同,我会在下面指出来的。首先,建立一个集群安装的目录,就叫zookeeper。其次,在这个目录的下面解压三份ZooKeeper,形成3个节点,每一个目录中的ZooKeeper就代表一个节点。这样就形成了如下的安装目录结构:/root/zookeeper|----zookeeper1/|----zookeeper2/|----
一、首先创建三台空的虚拟机,在此基础上搭建分布式集群IPhostname192.168.23.130hadoop01192.168.23.131hadoop02192.168.23.132hadoop03二、准备安装包版本jdk-1.8zookeeper-3.8.1hadoop-3.2.4hbase-2.4.15phoenix-2.4.0-5.1.3三、服务器环境准备(三个节点都要进行)1、关闭防火墙#临时关闭防火墙systemctlstopfirewalld#永久关闭防火墙systemctldisablefirewalld2、设置主机名#三个节点名称分别是hadoop01、hadoop02、
一、Java环境的安装1.下载jdkJavaDownloads|Oracle 2.解压并配置环境变量#上传到/usr/local目录下tar-zxvfjdk-8u341-linux-x64.tar.gz#配置Java环境变量vi/etc/profileexportJAVA_HOME=/usr/local/jdk1.8.0_341exportPATH=$PATH:$JAVA_HOME/bin#验证是否配置成功java-version二、Zookeeper的安装1.下载ApacheDownloads2.解压#将zookeeper上传到/opt/apps目录下tar-zxvfapache-zooke
一、Java环境的安装1.下载jdkJavaDownloads|Oracle 2.解压并配置环境变量#上传到/usr/local目录下tar-zxvfjdk-8u341-linux-x64.tar.gz#配置Java环境变量vi/etc/profileexportJAVA_HOME=/usr/local/jdk1.8.0_341exportPATH=$PATH:$JAVA_HOME/bin#验证是否配置成功java-version二、Zookeeper的安装1.下载ApacheDownloads2.解压#将zookeeper上传到/opt/apps目录下tar-zxvfapache-zooke
1.zookeeper下载zookeeper下载地址:http://archive.apache.org/dist/zookeeper/下载后解压到自己想要的位置,zookeeper是免安装的。这时我们安装好了进行下面配置在zookeeper目录下创建data、log两个文件夹,可以先备份一份zoo_sample.cfg,再把conf目录下的zoo_sample.cfg改名成zoo.cfg,并修改zoo.cfg的dataDir目录zoo.cfg文件修改内容#ThenumberofmillisecondsofeachticktickTime=2000#Thenumberofticksthatth
一、默认docker环境已经OK拉镜像dockerpullwurstmeister/zookeeperdockerpullwurstmeister/kafkadockerpullsheepkiller/kafka-manager删镜像dockerrmi+镜像id查看镜像[root@build-science-system-services-03~]#dockerimages二、运行相关容器启动zookeeper:dockerrun-d--namezookeeper-p2191:2181--restart=alwayswurstmeister/zookeeper 启动kafka:dockerru
目录ZooKeeper安装和使用使用Docker安装zookeeper连接ZooKeeper服务常用增删改查命令演示查看常用命令(help命令)创建节点(create命令)更新节点数据内容(set命令)获取节点的数据(get命令)查看某个目录下的子节点(ls命令)查看节点状态(stat命令)查看节点信息和状态(ls2命令)删除节点(delete命令)Zookeeper四字命令stat命令ruok命令dump命令conf命令cons命令envi命令ACL命令world实例auth实例digest实例IP实例ZooKeeperJava客户端Curator简单使用连接ZooKeeper客户端数据节点
在我的zookeeper/conf/log4j.properties文件中,我将zookeeper.log.dir设置为$HOME/zklogs当我使用zkServer.sh时,它不使用该目录。相反,它使用${ZOO_LOG_DIR},当我回应它时,它会变成“。”我不明白如何解决这个问题,我在任何地方都没有看到${ZOO_LOG_DIR}设置。我不确定它是如何设置为“.”的。一点也不。我也不知道如何在没有zkServer.sh的情况下启动zookeeper。我对linux也很陌生,在这个问题上有点迷茫......有人知道我该如何解决这个问题,以便它使用conf目录中我的log4j.pr
在我的zookeeper/conf/log4j.properties文件中,我将zookeeper.log.dir设置为$HOME/zklogs当我使用zkServer.sh时,它不使用该目录。相反,它使用${ZOO_LOG_DIR},当我回应它时,它会变成“。”我不明白如何解决这个问题,我在任何地方都没有看到${ZOO_LOG_DIR}设置。我不确定它是如何设置为“.”的。一点也不。我也不知道如何在没有zkServer.sh的情况下启动zookeeper。我对linux也很陌生,在这个问题上有点迷茫......有人知道我该如何解决这个问题,以便它使用conf目录中我的log4j.pr