决战大数据之三-Apache ZooKeeper Standalone及复制模式安装及测试

目录

Apache ZooKeeper 单机模式安装

创建hadoop用户&赋予sudo权限,安全第一:)

默认情况行下 CentOS 的group wheel 用的用户拥有 sudo权限

  1. # useradd hadoop
  2. # passwd hadoop
  3. Changing password for user hadoop.
  4. New password: bigdata123
  5. Retype new password: bigdata123
  6. passwd: all authentication tokens updated successfully.
  7. usermod -aG wheel username
  8. su - hadoop
安装vim,方便后期更改配置
  1. sudo yum install vim

配置 JAVA_HOME vim ~/.bashrc添加如下代码,保存退出:wq,如何安装JDK?请参考CentOS 7 JDK 8安装

  1. JAVA_HOME=/opt/jdk1.8.0_101
  2. PATH=$PATH:$JAVA_HOME/bin

测试

  1. $ source ~/.bashrc
  2. # echo $JAVA_HOME
下载Apache ZooKeeper-3.4.9[1] 安装并测试
  1. $ cd /opt
  2. $ sudo wget http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.9/zookeeper-3.4.9.tar.gz
  3. $ sudo tar xzf zookeeper-3.4.9.tar.gz
下载Apache ZooKeeper 安装并测试

创建配置文件conf/zoo.cfg

  1. $ cd zookeeper-3.4.9/
  2. $ sudo mkdir data
  3. $ sudo vim conf/zoo.cfg
  4. #添加如下配置到zoo.cfg
  5. tickTime = 2000
  6. dataDir = /opt/zookeeper-3.4.9/data #数据文件路径
  7. clientPort = 2181 #端口
  8. initLimit = 5
  9. syncLimit = 2

保存退出,并回到Console,启动Zookeeper

  1. $ sudo bin/zkServer.sh start
  2. ZooKeeper JMX enabled by default
  3. Using config: /opt/zookeeper-3.4.9/bin/../conf/zoo.cfg
  4. Starting zookeeper ... STARTED
恭喜你,you make it,让我们在启动命令行测试下
  1. $ sudo bin/zkCli.sh
  2. Connecting to localhost:2181
  3. ...

就是这么简单我们连接成功

用zkCli创建一个znode simon,值为data 1
  1. [zk: localhost:2181(CONNECTED) 8] create /simon 'data 1'
用zkCli查看刚才创建的路径
  1. [zk: localhost:2181(CONNECTED) 9] ls /
  2. [simon, zookeeper]
用zkCli查看刚才创建的路径的值,请注意此时ctimemtime的值是一样的
  1. [zk: localhost:2181(CONNECTED) 10] get /simon
  2. data 1
  3. cZxid = 0x4
  4. ctime = Sat Sep 10 03:11:27 EDT 2016
  5. mZxid = 0x4
  6. mtime = Sat Sep 10 03:11:27 EDT 2016
  7. pZxid = 0x4
  8. cversion = 0
  9. dataVersion = 0
  10. aclVersion = 0
  11. ephemeralOwner = 0x0
  12. dataLength = 6
  13. numChildren = 0
修改 /simon的值,是不是和linux的文件系统很像:),此时ctime和mtime的值不一样的了
  1. set /simon 'data 2'
  2. cZxid = 0x4
  3. ctime = Sat Sep 10 03:11:27 EDT 2016
  4. mZxid = 0x5
  5. mtime = Sat Sep 10 03:16:22 EDT 2016
  6. pZxid = 0x4
  7. cversion = 0
  8. dataVersion = 1
  9. aclVersion = 0
  10. ephemeralOwner = 0x0
  11. dataLength = 6
  12. numChildren = 0
romove刚才创建的znode /simon
  1. [zk: localhost:2181(CONNECTED) 13] rmr /simon
  2. [zk: localhost:2181(CONNECTED) 14] ls /
  3. [zookeeper]

So eeeeeasy~right ,那我开始玩点高级的,搭建集群模式

首先停止单机服务

  1. [hadoop@note1 zookeeper-3.4.9]$ sudo bin/zkServer.sh stop
  2. [sudo] password for hadoop:
  3. ZooKeeper JMX enabled by default
  4. Using config: /opt/zookeeper-3.4.9/bin/../conf/zoo.cfg
  5. Stopping zookeeper ... STOPPED
ZooKeeper Cluster配置:

三台CentOS 7的虚拟机运行在VitualBox上面,规划如下

name ip myid
node1 192.168.3.11 0
node2 192.168.3.12 1
node3 192.168.3.13 2

修改note1的域名配置 sudo vim /etc/hosts

添加如下内容,并保存退出

node1 192.168.3.11

node2 192.168.3.12

node3 192.168.3.13

修改ZooKeeper的配置

备份之前的单机配置

cd /opt/zookeeper-3.4.9

cp conf/zoo.cfg conf/zoo_standalone.cfg

创建log目录

sudo mkdir /opt/zookeeper-3.4.9/log

创建myid sudo vim /opt/zookeeper-3.4.9/myid insert 1, :wq

添加集群配置配置 sudo vim conf/zoo.cfg,替换之前的配置为如下内容:

  1. tickTime=2000
  2. #Replace the value of dataDir with the directory where you would like ZooKeeper to save its data
  3. dataDir=/opt/zookeeper-3.4.9/data
  4. #Replace the value of dataLogDir with the directory where you would like ZooKeeper to log
  5. dataLogDir=/opt/zookeeper-3.4.9/log
  6. clientPort=2181
  7. initLimit=10
  8. syncLimit=5
  9. server.1=192.168.3.11:2888:3888
  10. server.2=192.168.3.12:2888:3888
  11. server.3=192.168.3.13:2888:3888

关机 sudo shutdown -h 0

快速搭建分布集群的另外的俩个节点

现在是见证奇迹的时刻,使用VitualBox复制功能clone另外俩台虚拟机node2, node3

复制node2

复制成功后启动node2

修改hostname:

hostnamectl set-hostname node2 --static

修改静态IP

vi /etc/sysconfig/network-scripts/ifcfg-enp0s3

修改内容如下,保存退出

  1. #指定的静态ip,node3 改为 IPADDR=192.168.3.13
  2. IPADDR=192.168.3.12
  3. #MAC地址 node3 改为 83179c2f-b512-4c1a-8358-2ff4e823d956
  4. UUID=83179c2f-b512-4c1a-8358-2ff4e823d955

重启机器 reboot now 现在可以使用新的IP登陆:192.168.3.12

创建note3,参考note2

启动分布式集群node1,node2,node3

修改 node2,和node3的zookeeper的myid

  1. #for node2 echo "3"
  2. echo "2" > /opt/zookeeper-3.4.9/data/myid

启动各个节点ZkSerer(root账号):

  1. # cd /opt/zookeeper-3.4.9/ &&bin/zkServer.sh start
  2. ZooKeeper JMX enabled by default
  3. Using config: /opt/zookeeper-3.4.9/bin/../conf/zoo.cfg
  4. Starting zookeeper ... STARTED

可以查看各个启动日志:

  1. # more zookeeper.out
  2. 2016-09-10 04:39:03,077 [myid:] - INFO [main:QuorumPeerConfig@124] - Reading configuration from: /opt/zookeeper-3.4.9/bin/../conf/zoo.cfg
  3. 2016-09-10 04:39:03,105 [myid:] - INFO [main:QuorumPeer$QuorumServer@149] - Resolved hostname: 192.168.3.13 to address: /192.168.3.13
  4. 2016-09-10 04:39:03,106 [myid:] - INFO [main:QuorumPeer$QuorumServer@149] - Resolved hostname: 192.168.3.12 to address: /192.168.3.12
  5. 2016-09-10 04:39:03,106 [myid:] - INFO [main:QuorumPeer$QuorumServer@149] - Resolved hostname: 192.168.3.11 to address: /192.168.3.11
  6. 2016-09-10 04:39:03,106 [myid:] - INFO [main:QuorumPeerConfig@352] - Defaulting to majority quorums
  7. 2016-09-10 04:39:03,108 [myid:3] - INFO [main:DatadirCleanupManager@78] - autopurge.snapRetainCount set to 3
  8. 2016-09-10 04:39:03,108 [myid:3] - INFO [main:DatadirCleanupManager@79] - autopurge.purgeInterval set to 0
  9. 2016-09-10 04:39:03,108 [myid:3] - INFO [main:DatadirCleanupManager@101] - Purge task is not scheduled.
  10. 2016-09-10 04:39:03,119 [myid:3] - INFO [main:QuorumPeerMain@127] - Starting quorum peer
  11. 2016-09-10 04:39:03,136 [myid:3] - INFO [main:NIOServerCnxnFactory@89] - binding to port 0.0.0.0/0.0.0.0:2181
  12. 2016-09-10 04:39:03,141 [myid:3] - INFO [main:QuorumPeer@1019] - tickTime set to 2000
  13. 2016-09-10 04:39:03,141 [myid:3] - INFO [main:QuorumPeer@1039] - minSessionTimeout set to -1
  14. 2016-09-10 04:39:03,141 [myid:3] - INFO [main:QuorumPeer@1050] - maxSessionTimeout set to -1
  15. 2016-09-10 04:39:03,141 [myid:3] - INFO [main:QuorumPeer@1065] - initLimit set to 10

查看各个节点的zk的状态,可以看到node2目前是leader节点

  1. [root@node2 zookeeper-3.4.9]# bin/zkServer.sh status
  2. ZooKeeper JMX enabled by default
  3. Using config: /opt/zookeeper-3.4.9/bin/../conf/zoo.cfg
  4. Mode: leader

自此我们已经完成Zookeeper 复制模式的搭建,To be contiue

Have a good weekend~

有任何问题可以联系我: email:huangbaixun(at)outlook.com


  1. 当前最新的稳定版

    参考:http://www.tutorialspoint.com/zookeeper/zookeeper_cli.htm

    参考:

    http://blog.csdn.net/lisonglisonglisong/article/details/46974723 ↩︎

决战大数据之三-Apache ZooKeeper Standalone及复制模式安装及测试的更多相关文章

  1. 【原创】大数据基础之Zookeeper(2)源代码解析

    核心枚举 public enum ServerState { LOOKING, FOLLOWING, LEADING, OBSERVING; } zookeeper服务器状态:刚启动LOOKING,f ...

  2. 大数据篇:Zookeeper

    Zookeeper 1 Zookeeper概念 Zookeeper是什么 是一个基于观察者设计模式的分布式服务管理框架,它负责和管理需要关心的数据,然后接受观察者的注册,一旦这些数据的状态发生变化,Z ...

  3. 决战大数据之二:CentOS 7 最新JDK 8安装

    决战大数据之二:CentOS 7 最新JDK 8安装 [TOC] 修改hostname # hostnamectl set-hostname node1 --static # reboot now 重 ...

  4. 《决战大数据:驾驭未来商业的利器》【PDF】下载

    内容简介 大数据时代的来临,给当今的商业带来了极大的冲击,多数电商人无不"谈大数据色变",并呈现出一种观望.迷茫.手足无措的状态.车品觉,作为一名经验丰富的电商人,在敬畏大数据的同 ...

  5. 大数据hadoop之zookeeper

    一.ZooKeeper 的实现 1.1 ZooKeeper处理单点故障 我们知道可以通过ZooKeeper对分布式系统进行Master选举,来解决分布式系统的单点故障,如图所示. 图 1.1 ZooK ...

  6. 【喜讯】新一代大数据任务调度 - Apache DolphinScheduler 社区荣获OSCHINA年度 “最佳技术团队”...

    新一代大数据任务调度 -  Apache DolphinScheduler 继 11 月 19 日由 InfoQ 举办.在 300+ 参评项目中脱颖而出获得 "2020 年度十大开源新锐项目 ...

  7. CentOS6安装各种大数据软件 第十章:Spark集群安装和部署

    相关文章链接 CentOS6安装各种大数据软件 第一章:各个软件版本介绍 CentOS6安装各种大数据软件 第二章:Linux各个软件启动命令 CentOS6安装各种大数据软件 第三章:Linux基础 ...

  8. CDH构建大数据平台-使用自建的镜像地址安装Cloudera Manager

    CDH构建大数据平台-使用自建的镜像地址安装Cloudera Manager 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.   一.搭建CM私有仓库 详情请参考我的笔记: http ...

  9. 大数据技术之Zookeeper

    第1章 Zookeeper入门 1.1 概述 Zookeeper是一个开源的分布式的,为分布式应用提供协调服务的Apache项目. 1.2 特点 1.3 数据结构 1.4 应用场景 提供的服务包括:统 ...

随机推荐

  1. Microsoft Visual Studio正忙解决办法

    问题描述 前段时间用vs2015进行开发.出现如下问题,关闭vs进程重启vs还是无法解决. 如何解决 进入本地项目.vs文件夹 这个文件夹下有个.suo文件,删除该文件,用任务管理器杀掉vs的进程,重 ...

  2. 最新hadoop+hbase+spark+zookeeper环境安装(vmmare下)

    说明:我这里安装的版本是hadoop2.7.3,hbase1.2.4,spark2.0.2,zookeeper3.4.9 (安装包:链接:http://pan.baidu.com/s/1c25hI4g ...

  3. 使用AssetsLibrary.Framework创建多图片选择控制器(翻译)

    系统的UIImagePickerController只能让用户选择单图片,而一般情况下,我们需要上传多张图片,这时应该可以同时选择多张图片,否则用户体验会很差.因此多图片选择器就诞生了. 在类库中,苹 ...

  4. 什么才是正确的javascript数组检测方式

    前面的话 对于确定某个对象是不是数组,一直是数组的一个经典问题.本文专门将该问题择出来,介绍什么才是正确的javascript数组检测方式 typeof 首先,使用最常用的类型检测工具——typeof ...

  5. ZOJ3805Machine(二叉树左右子树变换)

    /* 题意:建立一棵二叉树,左子树和父节点占一个宽度,右子树另外占一个宽度! 使任意左右子树交换顺序,使得整个树的宽度最小! 思路:递归交换左右子树 ! 开始写的代码复杂了,其实左右子树不用真的交换, ...

  6. poj 2528 Mayor's posters(线段树+离散化)

    /* poj 2528 Mayor's posters 线段树 + 离散化 离散化的理解: 给你一系列的正整数, 例如 1, 4 , 100, 1000000000, 如果利用线段树求解的话,很明显 ...

  7. java.lang.Long cannot be cast to java.lang.Integer解决办法

    情景: mybatis连接oracle 报错: 测试增的时候,报错 Java.lang.Long cannot be cast to  java.lang.Integer:删改没有报错. 排查过程: ...

  8. Web 前端开发精华文章推荐(HTML5、CSS3、jQuery)【系列二十三】

    <Web 前端开发精华文章推荐>2014年第2期(总第23期)和大家见面了.梦想天空博客关注 前端开发 技术,分享各类能够提升网站用户体验的优秀 jQuery 插件,展示前沿的 HTML5 ...

  9. Java 类库和常用类库

    Java 类库概念: Java 的应用程序接口 (API) 以包的形式来组织,每个包提供了大量的相关类.接口和异常处理类,这些包的集合就是 Java 的类库 包名以 Java 开始的包是 Java 核 ...

  10. 浅析SqlServer简单参数化模式下对sql语句自动参数化处理以及执行计划重用

    我们知道,SqlServer执行sql语句的时候,有一步是对sql进行编译以生成执行计划, 在生成执行计划之前会去缓存中查找执行计划 如果执行计划缓存中有对应的执行计划缓存,那么SqlServer就会 ...