Zookeeper伪分布式安装脚本(此脚本在一台机器上创建Zookeeper三个进程,即创建具有三个节点的Zookeeper集群。这个脚本和zookeeper的tar包放在同一个目录下,脚本中指定的名字是zookeeper的3.4.6版本,需要根据实际情况修改):
#!/bin/bash #!!!Change the name!!! #The zookeeper file should be figured out in the same directory with this script ZOOKEEPER_FILE=zookeeper-3.4.6 tar -xzvf ${ZOOKEEPER_FILE}.tar.gz cd ${ZOOKEEPER_FILE} mkdir cluster cd cluster mkdir -p z1/data mkdir -p z2/data mkdir -p z3/data echo 1 > z1/data/myid echo 2 > z2/data/myid echo 3 > z3/data/myid echo "initLimit=10\nsyncLimit=5\ndataDir=../cluster/z1/data\nclientPort=2181\nserver.1=127.0.0.1:2222:2223\nserver.2=127.0.0.1:3333:3334\nserver.3=127.0.0.1:4444:4445" > z1/z1.cfg echo "initLimit=10\nsyncLimit=5\ndataDir=../cluster/z2/data\nclientPort=2182\nserver.1=127.0.0.1:2222:2223\nserver.2=127.0.0.1:3333:3334\nserver.3=127.0.0.1:4444:4445" > z2/z2.cfg echo "initLimit=10\nsyncLimit=5\ndataDir=../cluster/z3/data\nclientPort=2183\nserver.1=127.0.0.1:2222:2223\nserver.2=127.0.0.1:3333:3334\nserver.3=127.0.0.1:4444:4445" > z3/z3.cfg echo "The 3 nodes zookeeper has been configured successfully" cd ../bin echo "Start to start node1\n" ./zkServer.sh start ../cluster/z1/z1.cfg echo "!!!!!!!!!!!!!!!!!Node1 is started!!!!!!!" echo "Start to start node2\n" ./zkServer.sh start ../cluster/z2/z2.cfg echo "!!!!!!!!!!!!!!!!!Node2 is started!!!!!!!" echo "Start to start node3\n" ./zkServer.sh start ../cluster/z3/z3.cfg echo "!!!!!!!!!!!!!!!!!Node3 is started!!!!!!!"
执行完脚本后,三个node已经启动,停止三个node的命令:
bin/zkServer.sh stop ../cluster/z1/z1.cfg
bin/zkServer.sh stop ../cluster/z2/z2.cfg
bin/zkServer.sh stop ../cluster/z3/z3.cfg
客户端验证程序:
import org.apache.zookeeper.*; import java.io.IOException; import java.util.concurrent.CountDownLatch; import java.util.concurrent.ThreadLocalRandom; public class ZKApplication implements Watcher { private static final int SESSION_TIMEOUT = 3000; private volatile static boolean shutdown; private ZooKeeper zk; private CountDownLatch connectedSignal = new CountDownLatch(1); public void connect(String hosts) throws IOException, InterruptedException { zk = new ZooKeeper(hosts, SESSION_TIMEOUT, this); connectedSignal.await(); } @Override public void process(WatchedEvent event) { // Watcher interface if (event.getState() == Event.KeeperState.SyncConnected) { connectedSignal.countDown(); } } public void create(String groupName) throws KeeperException, InterruptedException { String path = "/" + groupName; String createdPath = zk.create(path, null/*data*/, ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.EPHEMERAL); //The znode will be deleted upon the session is closed. System.out.println("Created " + createdPath); } public void close() throws InterruptedException { zk.close(); } public static void main(String[] args) throws Exception { final ZKApplication createGroup = new ZKApplication(); String groupName = "zoo" + ThreadLocalRandom.current().nextInt(); createGroup.connect(Host.HOST); createGroup.create(groupName); createGroup.close(); } }
单机部署Zookeeper集群的脚本还有很大的改进空间,应该根据需要很方便的创建n个节点,其中n可以由用户指定
相关推荐
### Zookeeper 学习笔记 #### 一、Zookeeper 简介与安装配置 **Zookeeper** 是一个分布式协调服务框架,它提供了一种高效可靠的机制来维护集群中的配置信息、命名服务以及提供分布式锁等功能,使得开发人员能够...
本篇笔记主要围绕这两个技术进行深入探讨,结合尚硅谷的视频教程资源,旨在帮助读者全面理解并掌握这两者的核心知识。 一、Zookeeper:分布式协调服务 Zookeeper是由Apache开发的一款开源分布式协调服务,它提供了...
这份"Linux学习笔记资料"涵盖了从基础到高级的全面内容,旨在帮助读者逐步成为Linux运维专家。 首先,Linux基础篇主要介绍了Linux的发展历史、系统安装,特别是CentOS的管理。通过这一部分的学习,你可以了解Linux...
在分布式协调服务Zookeeper中,Leader选举是其核心功能之一,确保了服务的高可用性和一致性。本文将深入Zookeeper的源码,探讨Leader选举的实现机制。 **为什么要阅读Zookeeper源码?** 1. **提升技术功底**:通过...
【Java分布式高级架构师课程学习笔记】 在Java分布式高级架构师的学习过程中,涵盖了多个关键领域的技术,包括数据库的高可用方案、缓存系统、消息中间件以及分布式协调服务。以下是对这些主题的深入探讨: 1. **...
Hadoop是一种开源的分布式存储和计算系统,它由Apache软件基金会开发。在初学者的角度,理解Hadoop的组成部分以及其架构...随着技术的深入学习,应逐步掌握其安装部署、性能调优、故障处理以及与其他工具的集成使用。
这些"java学习笔记.zip"包含的文件详细涵盖了Java的多个重要方面,包括基础、进阶以及与之相关的框架技术。以下是对每个文件内容的概览: 1. **10、JavaSE:IO流.pdf** Java标准版(JavaSE)中的输入/输出(IO)流...
通过以上的Python与Zookeeper的学习笔记,我们可以全面了解如何在Python中利用Zookeeper进行分布式系统的管理和协调,并利用Xmind进行有效的知识整理和学习。无论是初学者还是经验丰富的开发者,都能从中受益,加深...
第二部分 ZOOKEEPER学习 .......................................................................................................... 24 第6章 zookeeper介绍 ..................................................
- **解压Spark**:安装时通常需要解压Spark的二进制包,并根据系统环境配置相关目录。 - **配置文件**:主要涉及`spark-env.sh`,用于设定JDK路径、主节点等环境变量,`slaves`文件列出集群中的工作节点。 - **...
本项目提供了详细的流程说明和学习笔记,帮助开发者更好地掌握相关知识。 首先,`pom.xml`文件是Maven项目的配置文件,它定义了项目依赖,包括SSM框架的各个版本和其他必要的库。通过管理依赖关系,Maven能够自动...
在IT行业中,Python是一种广泛应用的编程语言,尤其在数据处理、Web开发以及自动化脚本等领域。...对于学习和掌握Python库的使用,以及对Zookeeper、分布式系统和云原生技术的理解,都是提升IT专业技能的重要步骤。
【狂神说java系列笔记】是一份全面涵盖Java学习路径的综合资料,从基础到进阶,再到现代企业级开发的必备技术。这份资源旨在帮助Java开发者深入理解语言特性和应用实践,提升技能水平。 首先,从【Java基础】部分...
这个“hadoop笔记”可能包含了关于Hadoop生态系统、Hadoop分布式文件系统(HDFS)、MapReduce编程模型、YARN资源管理器以及相关工具的详细学习记录。现在,让我们深入探讨一下这些关键知识点。 1. Hadoop生态系统:...
3. **hbase**:这个目录可能包含HBase的相关配置文件、示例或者脚本,帮助开发者理解和使用HBase。 4. **zk**:Zookeeper的缩写,这个目录可能包含Zookeeper的配置、日志或测试文件,用于理解Zookeeper的工作机制和...
HBase是构建在Hadoop分布式文件系统(HDFS)之上的开源NoSQL数据库,它提供了高可靠性、高性能、实时的读写能力。HBase的设计灵感来源于Google的Bigtable,适用于大规模数据存储,尤其适合处理稀疏型数据。 二、...
手把手教你搭建分布式Hadoop家族集群视频教程(视频+讲义+... 12_分布式集群搭建:安装配置部署Zookeeper 集群 13_分布式集群搭建:规划设计集群服务分布 14_分布式集群搭建:HADOOP分布式集群安装部署测试 ......
- "脚本之家.url"可能是编程和脚本语言的学习资源,对理解分布式系统中的脚本编程有所帮助。 深入学习分布式系统原理与范型,不仅可以理解其背后的理论,还能掌握实际开发中应用这些原理的技能,对于提升在云计算...
Linux是广泛使用的服务器操作系统,学习Linux命令行操作(如ls、cd、mkdir、cp、mv、rm等)、文件系统、用户与权限管理、进程管理、网络配置、服务管理(如Apache、Nginx、MySQL等)以及Shell脚本编写是运维和...
2. **文档**:可能包含库的使用指南、API参考、示例代码以及可能的开发者笔记,帮助用户快速理解和应用该库。 3. **测试文件**:用于验证代码功能的测试脚本,确保库的正确性和稳定性。 4. **README**:通常包含项目...