centos6.5环境下Zookeeper-3.4.6集群环境部署

【系统】Centos 6.5

集群部署

【软件】准备好jdk环境,此次我们的环境是open_jdk1.8.0_101
    zookeeper-3.4.6.tar.gz
【步骤】
1. 准备条件
如果有内部dns或者外网有域名,则直接使用域名
如果没有需要修改/etc/hosts文件,或者直接使用IP

集群规划

主机类型IP地址
域名
zookeeper1192.168.1.1zookeeper1.chinasoft.com
zookeeper2192.168.1.2zookeeper2.chinasoft.com
zookeeper3192.168.1.3zookeeper3.chinasoft.com

注意:zookeeper因为有主节点和从节点的关系,所以部署的集群台数最好为奇数个,否则可能出现脑裂导致服务异常

2. 安装
下载地址:http://archive.apache.org/dist/zookeeper/zookeeper-3.4.6/
解压

tar -zxf zookeeper-3.4.6.tar.gz 
cd zookeeper-3.4.6

拷贝配置文件,修改完成后分发给其他节点
cd /data/zookeeper-3.4.6/
cp zoo_sample.cfg zoo.cfg

cat zoo.cfg

tickTime=2000
initLimit=10
syncLimit=5
dataDir=/data/zookeeper-3.4.6/data
dataLogDir=/data/zookeeper-3.4.6/logs
clientPort=2181
server.1=u04rtv01.yaya.corp:2888:3888
server.2=u04rtv02.yaya.corp:2888:3888
server.3=u04rtv03.yaya.corp:2888:3888

3.创建data和Log文件夹
mkdir /data/zookeeper-3.4.6/data
mkdir /data/zookeeper-3.4.6/logs

       
4、在zoo.cfg中的dataDir指定的目录下,新建myid文件。 
例如:$ZK_INSTALL/data下,新建myid。在myid文件中输入1。表示为server.1。 
如果为snapshot/d_2,则myid文件中的内容为 2,依此类推。

启动:在集群中的每台主机上执行如下命令
bin/zkServer.sh start

查看状态,可以看到其中一台为主节点,其他两台为从节点:
bin/zkServer.sh status

主节点:
./zkServer.sh status
JMX enabled by default
Using config: /data/yunva/zookeeper-3.4.6/bin/../conf/zoo.cfg
Mode: leader
从属节点:
./zkServer.sh status
JMX enabled by default
Using config: /data/yunva/zookeeper-3.4.6/bin/../conf/zoo.cfg
Mode: follower

停止:
bin/zkServer.sh stop

连接:
bin/zkCli.sh -server zookeeper1:2181 
bin/zkCli.sh -server zookeeper2:2181 
bin/zkCli.sh -server zookeeper3:2181

报错:
原因就是没有在dataDir目录下创建myid文件并且赋值(如1、2、3分别代表集群中的server1,server2,server3)

2016-08-22 17:55:16,145 [myid:] - INFO  [main:QuorumPeerConfig@103] - Reading configuration from: /data/yunva/zookeeper-3.4.6/bin/../conf/zoo.cfg
2016-08-22 17:55:16,150 [myid:] - INFO  [main:QuorumPeerConfig@340] - Defaulting to majority quorums
2016-08-22 17:55:16,150 [myid:] - ERROR [main:QuorumPeerMain@85] - Invalid config, exiting abnormally
org.apache.zookeeper.server.quorum.QuorumPeerConfig$ConfigException: Error processing /data/yunva/zookeeper-3.4.6/bin/../conf/zoo.cfg
        at org.apache.zookeeper.server.quorum.QuorumPeerConfig.parse(QuorumPeerConfig.java:123)
        at org.apache.zookeeper.server.quorum.QuorumPeerMain.initializeAndRun(QuorumPeerMain.java:101)
        at org.apache.zookeeper.server.quorum.QuorumPeerMain.main(QuorumPeerMain.java:78)
Caused by: java.lang.IllegalArgumentException: /data/yunva/zookeeper-3.4.6/data/myid file is missing
        at org.apache.zookeeper.server.quorum.QuorumPeerConfig.parseProperties(QuorumPeerConfig.java:350)
        at org.apache.zookeeper.server.quorum.QuorumPeerConfig.parse(QuorumPeerConfig.java:119)
        ... 2 more

Invalid config, exiting abnormally

单机部署——适用于开发测试

tar -zxvf zookeeper-3.4.6.tar.gz 
cd zookeeper-3.4.6/conf
cp zoo_sample.cfg zoo.cfg
创建日志目录
mkdir /data/yunva/zookeeper-3.4.6/data
mkdir /data/yunva/zookeeper-3.4.6/logs

配置:conf/zoo.cfg

tickTime=2000 
initLimit=10 
syncLimit=5 
dataDir=/data/yunva/zookeeper-3.4.6/logs
dataLogDir=/data/yunva/zookeeper-3.4.6/logs
clientPort=2181
#自动清除日志文件
autopurge.snapRetainCount=20
autopurge.purgeInterval=48

启动:

bin/zkServer.sh start

连接到Zookeeper:

bin/zkCli.sh -server 127.0.0.1:2181  适用于Java开发

查看状态:
bin/zkServer.sh status
JMX enabled by default
Using config: /data/yunva/zookeeper-3.4.6/bin/../conf/zoo.cfg
Mode: standalone

zookeeper的内存配置

nohup "$JAVA" "-Dzookeeper.log.dir=${ZOO_LOG_DIR}" "-Dzookeeper.root.logger=${ZOO_LOG4J_PROP}" -cp "$CLASSPATH" -server -Xmx256M -Xms256M -Xss256K -XX:-UseGCOverheadLimit -XX:ReservedCodeCacheSize=64M -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled -XX:+CMSScavengeBeforeRemark -XX:+DisableExplicitGC -Djava.awt.headless=true $ZOOMAIN "$ZOOCFG" > "$_ZOO_DAEMON_OUT" >& < /dev/null &
#-cp "$CLASSPATH" $JVMFLAGS $ZOOMAIN "$ZOOCFG" > "$_ZOO_DAEMON_OUT" >& < /dev/null &

centos6.5环境下zookeeper-3.4.6集群环境部署及单机部署详解的更多相关文章

  1. 【Hadoop离线基础总结】zookeeper的介绍以及集群环境搭建、网络编程和RPC的简单了解

    ZooKeeper的介绍以及集群环境搭建.网络编程和RPC的简单了解 ZooKeeper介绍 概述 ZooKeeper是一个分布式协调服务的开源框架,主要用来解决分布式集群中应用系统的一致性问题.例如 ...

  2. ubuntu14.04环境下利用docker搭建solrCloud集群

    在Ubuntu14.04操作系统的宿主机中,安装docker17.06.3,将宿主机的操作系统制作成docker基础镜像,之后使用自制的基础镜像在docker中启动3个容器,分配固定IP,再在3个容器 ...

  3. Kubernetes环境下如何运行Coherence缓存集群

    Oracle官方出了一个如何在Docker环境下运行Coherence的技术文档,大家可以参考: https://github.com/oracle/docker-images/tree/master ...

  4. CentOS 6.5环境下heartbeat高可用集群的实现及工作原理详解

    Linux HA Cluster高可用服务器集群,所谓的高可用不是主机的高可用,而是服务的高可用. 什么叫高可用:一个服务器down掉的可能性多种多样,任何一个可能坏了都有可能带来风险,而服务器离线通 ...

  5. Dubbo+zookeeper构建高可用分布式集群(一)-单机部署

    不久前,我们讨论过Nginx+tomcat组成的集群,这已经是非常灵活的集群技术,但是当我们的系统遇到更大的瓶颈,全部应用的单点服务器已经不能满足我们的需求,这时,我们要考虑另外一种,我们熟悉的内容, ...

  6. redis内存分配管理与集群环境下Session管理

    ##################内存管理############### 1.Redis的内存管理 .与memcache不同,没有实现自己的内存池 .在2..4以前,默认使用标准的内存分配函数(li ...

  7. Hadoop伪分布式集群环境搭建

    本教程讲述在单机环境下搭建Hadoop伪分布式集群环境,帮助初学者方便学习Hadoop相关知识. 首先安装Hadoop之前需要准备安装环境. 安装Centos6.5(64位).(操作系统再次不做过多描 ...

  8. zookeeper集群环境安装配置

    众所周知,Zookeeper有三种不同的运行环境,包括:单机环境.集群环境和集群伪分布式环境 在此介绍的是集群环境的安装配置 一.下载: http://apache.fayea.com/zookeep ...

  9. 在Hadoop1.2.1分布式集群环境下安装hive0.12

    在Hadoop1.2.1分布式集群环境下安装hive0.12 ● 前言: 1. 大家最好通读一遍过后,在理解的基础上再按照步骤搭建. 2. 之前写过两篇<<在VMware下安装Ubuntu ...

  10. 集群环境下,你不得不注意的ASP.NET Core Data Protection 机制

    引言 最近线上环境遇到一个问题,就是ASP.NET Core Web应用在单个容器使用正常,扩展多个容器无法访问的问题.查看容器日志,发现以下异常: System.Security.Cryptogra ...

随机推荐

  1. C++ 中的导致编译错误汇总

    多少年来,各路英雄好汉,八方神犇大佬,在CE中饮恨退役. OI的CE,还是那样熟悉的味道. (博主只能想到这么多,欢迎大家来补充) 1.变量名和内置函数冲突?!?! C++内置函数很多很多,许多你不知 ...

  2. springboot 读取 resource文件

    文件位置信息如图: import java.io.IOException; import java.io.InputStream; import java.net.URLEncoder; import ...

  3. 多线程之间的通信(等待唤醒机制、Lock 及其它线程的方法)

    一.多线程之间的通信. 就是多个线程在操作同一份数据, 但是操作的方法不同. 如: 对于同一个存储块,其中有两个存储位:name   sex, 现有两个线程,一个向其中存放数据,一个打印其中的数据. ...

  4. 线程的状态有哪些,线程中的start与run方法的区别

    线程在一定条件下,状态会发生变化.线程一共有以下几种状态: 1.新建状态(New):新创建了一个线程对象. 2.就绪状态(Runnable):线程对象创建后,其他线程调用了该对象的start()方法. ...

  5. java和javaScript创建方式

    Java创建对象的几种方式:http://blog.csdn.net/u013230804/article/details/25828339 javascript三种创建对象的方式:https://w ...

  6. Java 搜索引擎

    1.Java 全文搜索引擎框架 Lucene 毫无疑问,Lucene是目前最受欢迎的Java全文搜索框架,准确地说,它是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎.Luc ...

  7. 函数和常用模块【day05】:生成器(四)

    本节内容 1.概述 2.列表生成式 3.生成器 4.函数实现生成器 5.生成器表达式 一.概述 我们在使用一组数据时,通常情况下会定义一个列表,然后循环里面的元素,但是你想过没有,如果你只需要使用列表 ...

  8. google Guava包的ListenableFuture解析

     一. ListenableFuture是用来增强Future的功能的. 我们知道Future表示一个异步计算任务,当任务完成时可以得到计算结果.如果我们希望一旦计算完成就拿到结果展示给用户或者做另外 ...

  9. numpy笔记—np.sum中keepdims作用

    A = np.random.randn(4,3) B = np.sum(A, axis = 1, keepdims = True) 我们使用(keepdims = True)来确保 A.shape 是 ...

  10. java类的回顾

    1.类是某一批对象的抽象,对象才是一个具体的存在的实体,你我他都是人的实例,而不是人的类.2.类可以包含三种最常见的成员:构造器,成员变量,方法3.4.java世界里,属性,如某个类具有age属性,通 ...