`
bit1129
  • 浏览: 1067697 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

[Zookeeper学习笔记之二]Zookeeper部署脚本

 
阅读更多

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可以由用户指定
0
1
分享到:
评论

相关推荐

    zookeeper学习笔记

    ### Zookeeper 学习笔记 #### 一、Zookeeper 简介与安装配置 **Zookeeper** 是一个分布式协调服务框架,它提供了一种高效可靠的机制来维护集群中的配置信息、命名服务以及提供分布式锁等功能,使得开发人员能够...

    Hbase与zookeeper笔记备份.rar

    本篇笔记主要围绕这两个技术进行深入探讨,结合尚硅谷的视频教程资源,旨在帮助读者全面理解并掌握这两者的核心知识。 一、Zookeeper:分布式协调服务 Zookeeper是由Apache开发的一款开源分布式协调服务,它提供了...

    Linux学习笔记资料

    这份"Linux学习笔记资料"涵盖了从基础到高级的全面内容,旨在帮助读者逐步成为Linux运维专家。 首先,Linux基础篇主要介绍了Linux的发展历史、系统安装,特别是CentOS的管理。通过这一部分的学习,你可以了解Linux...

    Zookeeper源码剖析:深入理解Leader选举机制

    在分布式协调服务Zookeeper中,Leader选举是其核心功能之一,确保了服务的高可用性和一致性。本文将深入Zookeeper的源码,探讨Leader选举的实现机制。 **为什么要阅读Zookeeper源码?** 1. **提升技术功底**:通过...

    [实战]Java分布式高级架构师课程学习笔记.docx

    【Java分布式高级架构师课程学习笔记】 在Java分布式高级架构师的学习过程中,涵盖了多个关键领域的技术,包括数据库的高可用方案、缓存系统、消息中间件以及分布式协调服务。以下是对这些主题的深入探讨: 1. **...

    Hadoop学习笔记.pdf

    Hadoop是一种开源的分布式存储和计算系统,它由Apache软件基金会开发。在初学者的角度,理解Hadoop的组成部分以及其架构...随着技术的深入学习,应逐步掌握其安装部署、性能调优、故障处理以及与其他工具的集成使用。

    java学习笔记.zip

    这些"java学习笔记.zip"包含的文件详细涵盖了Java的多个重要方面,包括基础、进阶以及与之相关的框架技术。以下是对每个文件内容的概览: 1. **10、JavaSE:IO流.pdf** Java标准版(JavaSE)中的输入/输出(IO)流...

    python+zk笔记,xmind

    通过以上的Python与Zookeeper的学习笔记,我们可以全面了解如何在Python中利用Zookeeper进行分布式系统的管理和协调,并利用Xmind进行有效的知识整理和学习。无论是初学者还是经验丰富的开发者,都能从中受益,加深...

    大数据学习笔记.pdf

    第二部分 ZOOKEEPER学习 .......................................................................................................... 24 第6章 zookeeper介绍 ..................................................

    spark学习笔记,完成于2022年04月13日

    - **解压Spark**:安装时通常需要解压Spark的二进制包,并根据系统环境配置相关目录。 - **配置文件**:主要涉及`spark-env.sh`,用于设定JDK路径、主节点等环境变量,`slaves`文件列出集群中的工作节点。 - **...

    《java学习》-SSM实战项目-Java高并发秒杀API,详细流程+学习笔记.zip

    本项目提供了详细的流程说明和学习笔记,帮助开发者更好地掌握相关知识。 首先,`pom.xml`文件是Maven项目的配置文件,它定义了项目依赖,包括SSM框架的各个版本和其他必要的库。通过管理依赖关系,Maven能够自动...

    PyPI 官网下载 | notebuild-1.1.21.tar.gz

    在IT行业中,Python是一种广泛应用的编程语言,尤其在数据处理、Web开发以及自动化脚本等领域。...对于学习和掌握Python库的使用,以及对Zookeeper、分布式系统和云原生技术的理解,都是提升IT专业技能的重要步骤。

    狂神说java系列笔记(java基础+javaweb+ssm+微服务).rar

    【狂神说java系列笔记】是一份全面涵盖Java学习路径的综合资料,从基础到进阶,再到现代企业级开发的必备技术。这份资源旨在帮助Java开发者深入理解语言特性和应用实践,提升技能水平。 首先,从【Java基础】部分...

    hadoop笔记

    这个“hadoop笔记”可能包含了关于Hadoop生态系统、Hadoop分布式文件系统(HDFS)、MapReduce编程模型、YARN资源管理器以及相关工具的详细学习记录。现在,让我们深入探讨一下这些关键知识点。 1. Hadoop生态系统:...

    大数据开发

    3. **hbase**:这个目录可能包含HBase的相关配置文件、示例或者脚本,帮助开发者理解和使用HBase。 4. **zk**:Zookeeper的缩写,这个目录可能包含Zookeeper的配置、日志或测试文件,用于理解Zookeeper的工作机制和...

    源码笔记资料(1).zip

    HBase是构建在Hadoop分布式文件系统(HDFS)之上的开源NoSQL数据库,它提供了高可靠性、高性能、实时的读写能力。HBase的设计灵感来源于Google的Bigtable,适用于大规模数据存储,尤其适合处理稀疏型数据。 二、...

    手把手教你搭建分布式Hadoop集群视频教程(视频+讲义+笔记+软件+配置)

    手把手教你搭建分布式Hadoop家族集群视频教程(视频+讲义+... 12_分布式集群搭建:安装配置部署Zookeeper 集群 13_分布式集群搭建:规划设计集群服务分布 14_分布式集群搭建:HADOOP分布式集群安装部署测试 ......

    分布式系统原理与范型 V2 (2008)

    - "脚本之家.url"可能是编程和脚本语言的学习资源,对理解分布式系统中的脚本编程有所帮助。 深入学习分布式系统原理与范型,不仅可以理解其背后的理论,还能掌握实际开发中应用这些原理的技能,对于提升在云计算...

    JAVA+spingcloud+linux教学笔记

    Linux是广泛使用的服务器操作系统,学习Linux命令行操作(如ls、cd、mkdir、cp、mv、rm等)、文件系统、用户与权限管理、进程管理、网络配置、服务管理(如Apache、Nginx、MySQL等)以及Shell脚本编写是运维和...

    PyPI 官网下载 | wikipedia2vecsm-0.2.1.tar.gz

    2. **文档**:可能包含库的使用指南、API参考、示例代码以及可能的开发者笔记,帮助用户快速理解和应用该库。 3. **测试文件**:用于验证代码功能的测试脚本,确保库的正确性和稳定性。 4. **README**:通常包含项目...

Global site tag (gtag.js) - Google Analytics