(1)Zookeeper在linux环境中搭建集群
1.简介
ZooKeeper是Apache软件基金会的一个软件项目,它为大型分布式计算提供开源的分布式配置服务、同步服务和命名注册。
ZooKeeper的架构通过冗余服务实现高可用性。
Zookeeper的设计目标是将那些复杂且容易出错的分布式一致性服务封装起来,构成一个高效可靠的原语集,并以一系列简单易用的接口提供给用户使用。
一个典型的分布式数据一致性的解决方案,分布式应用程序可以基于它实现诸如数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理、Master选举、分布式锁和分布式队列等功能。
2.zookeeper数据结构
zookkeeper提供的名称空间非常类似于标准文件系统,key-value的形式存储。名称key由斜线/分割的一系列路径元素,zookeeper名称空间中的每个节点都是由一个路径标识。
2. 部署ZooKeeper集群
上面简单介绍了ZooKeeper相关概念,下面我们来部署下ZooKeeper集群。
2.1三台linux虚拟机
IP |
master/slave |
192.168.142.129 |
slave |
192.168.142.130 |
master |
192.168.142.131 |
slave |
Java版本:java version "1.8.0_311"。
2.2下载源码包并解压
官网下载地址(这里有坑,官网给了两个安装包,其中“apache-zookeeper-3.7.0.tar.gz ”是源码,我们要下载“apache-zookeeper-3.7.0-bin.tar.gz”这个编译后安装包才对):
可以通过wget命令下载或者手动下载,安装包存储到linux服务器上/home/deng/packages目录,再通过以下命令解压安装包:
cd /home/deng/packages
mkdir /home/deng/zookeeper
tar zxvf apache-zookeeper-3.7.0.tar.gz -C /home/deng/zookeeper
2.3修改环境变量
vi /etc/profile文件,在文件末尾添加以下环境变量配置:
# ZooKeeper环境变量
export ZOOKEEPER_HOME=/home/deng/zookeeper/apache-zookeeper-3.7.0-bin/
export PATH=$PATH:$ZOOKEEPER_HOME/bin
再运行以下命令使环境变量生效:
source /etc/profile
2.4重命名配置文件
初次使用ZooKeeper时,需要将$ZOOKEEPER_HOME/conf目录下的zoo_sample.cfg重命名为zoo.cfg,zoo.cfg:
mv $ZOOKEEPER_HOME/conf/zoo_sample.cfg $ZOOKEEPER_HOME/conf/zoo.cfg
2.5修改配置文件(指定数据和日志存放目录)
先创建数据跟日志文件夹:
mkdir $ZOOKEEPER_HOME/data
mkdir $ZOOKEEPER_HOME/logs
编辑zoo.cfg配置文件:
vi $ZOOKEEPER_HOME/conf/zoo.cfg
修改如下:
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/home/deng/zookeeper/apache-zookeeper-3.7.0-bin/data
dataLogDir=/home/deng/zookeeper/apache-zookeeper-3.7.0-bin/logs
clientPort=2181
因为我们部署是集群,所以多节点需要在配置文件中尾部增加如下内容:
# 集群配置
server.1=192.168.142.129:2888:3888
server.2=192.168.142.130:2888:3888
server.3=192.168.142.131:2888:3888
如图所示:
2.6生成myid文件,用作标明当前机器
在zookeeper数据所在的目录下(/home/deng/zookeeper/apache-zookeeper-3.7.0-bin/data)生成一个文件叫myid,其中写上一个数字表明当前机器是哪一个编号的机器:
#192.168.142.129(slave)
vi $ZOOKEEPER_HOME/data/myid
1
#192.168.142.130(master)
vi $ZOOKEEPER_HOME/data/myid
2
#192.168.142.131(slave)
vi $ZOOKEEPER_HOME/data/myid
3
2.7开启防火墙端口访问
zookeeper服务默认的端口号为2888和3888,所以需要在防火墙开启允许访问:
firewall-cmd --permanent --zone=public --add-port=2888/tcp
firewall-cmd --permanent --zone=public --add-port=3888/tcp
firewall-cmd --reload
2.8启动Zookeeper
#切换目录
cd /home/deng/zookeeper/apache-zookeeper-3.7.0-bin
#启动ZK服务
bin/zkServer.sh start
#停止ZK服务
bin/zkServer.sh stop
#重启ZK服务
bin/zkServer.sh restart
#查看ZK服务状态
bin/zkServer.sh status
可以通过命令查看ZK服务状态:
参考文献:
Zookeeper-QuickStart
(1)Zookeeper在linux环境中搭建集群的更多相关文章
- (4)ElasticSearch在linux环境中搭建集群
1.概述 一个运行中的Elasticsearch实例称为一个节点(node),而集群是由一个或者多个拥有相同cluster.name配置的节点组成,它们共同承担数据和负载的压力.当有节点加入集群中或者 ...
- Linux环境下Hadoop集群搭建
Linux环境下Hadoop集群搭建 前言: 最近来到了武汉大学,在这里开始了我的研究生生涯.昨天通过学长们的耐心培训,了解了Hadoop,Hdfs,Hive,Hbase,MangoDB等等相关的知识 ...
- Linux环境下SolrCloud集群环境搭建关键步骤
Linux环境下SolrCloud集群环境搭建关键步骤. 前提条件:已经完成ZooKeeper集群环境搭建. 一.下载介质 官网下载地址:http://www.apache.org/dyn/close ...
- Linux环境下HDFS集群环境搭建关键步骤
Linux环境下HDFS集群环境搭建关键步骤记录. 介质版本:hadoop-2.7.3.tar.gz 节点数量:3节点. 一.下载安装介质 官网下载地址:http://hadoop.apache.or ...
- Linux+.NetCore+Nginx搭建集群
本篇和大家分享的是Linux+NetCore+Nginx搭建负载集群,对于netcore2.0发布后,我一直在看官网的文档并学习,关注有哪些新增的东西,我,一个从1.0到2.0的跟随者这里只总结一句话 ...
- Linux环境下Redis集群实践
环境:centos 7 一.编译及安装redis源码 源码地址:redis版本发布列表 cd redis-3.2.8 sudo make && make install 二.创建节点 ...
- Linux环境下nginx集群搭建
#确保安装nginx,stream模块默认不安装的,需要手动添加参数:–with-stream, nginx1.9或以上版本 #nginx.conf文件中,添加以下内容(只供参考),这个不能放在htt ...
- ZooKeeper学习第五期--ZooKeeper管理分布式环境中的数据
引言 本节本来是要介绍ZooKeeper的实现原理,但是ZooKeeper的原理比较复杂,它涉及到了paxos算法.Zab协议.通信协议等相关知识,理解起来比较抽象所以还需要借助一些应用场景,来帮我们 ...
- 【Zookeeper系列】ZooKeeper管理分布式环境中的数据(转)
原文地址:https://www.cnblogs.com/sunddenly/p/4092654.html 引言 本节本来是要介绍ZooKeeper的实现原理,但是ZooKeeper的原理比较复杂,它 ...
随机推荐
- 【redis前传】集思广益之quicklist,取其精华去其糟粕
前言 在之前我们已经学习了redis五大数据结构中的list结构.其内部是linkedList和zipList两种结构.这是我们已经学习的内容.之前我没有结合操作具体查看.事实上在两者中还存在一种结合 ...
- [手机编程]Aid Learning--换源+数据库安装
换源+MYSQL安装 Aid Learning下载安装 http://www.aidlearning.net/ 切换源 打开Terminal复制回车即可 cd /etc/apt/&& ...
- 【C++ Primer Plus】编程练习答案——第11章 (待更新)
最近开学,事情较多,过两天更新...
- 踩坑系列《九》 无法获取实体类xxx对应的表名
话不多说,直接说明原因 类似于 @MapperScan(basePackages = "com.hyxiao.user.mapper") 启动类的mapper扫描注解的导入包正确的 ...
- 数据结构与算法——弗洛伊德(Floyd)算法
介绍 和 Dijkstra 算法一样,弗洛伊德(Floyd)算法 也是一种用于寻找给定的加权图中顶点间最短路径的算法.该算法名称以创始人之一.1978 年图灵奖获得者.斯坦福大学计算机科学系教授罗伯特 ...
- Java中的引用类型和使用场景
作者:Grey 原文地址:Java中的引用类型和使用场景 Java中的引用类型有哪几种? Java中的引用类型分成强引用, 软引用, 弱引用, 虚引用. 强引用 没有引用指向这个对象,垃圾回收会回收 ...
- Python:安装opencv出现错误Could not find a version that satisfies the requirement numpy==1.13.3 (from versions: 1.14.5, 1.14.6, 1.15.0rc2, 1.15.0, 1.15.1, 1.15.2, 1.15.3, 1.15.4, 1.16.0rc1, 1.16.0rc2,
安装opencv的时候,出现numpy的版本不匹配,卸载了不匹配的版本,重新安装却是一点用都没有,后面尝试了一下这里的提示pip更新,居然安装成功了,看来pip的版本过低真是误事啊. 报错是: Cou ...
- java 从零开始手写 RPC (04) -序列化
序列化 java 从零开始手写 RPC (01) 基于 socket 实现 java 从零开始手写 RPC (02)-netty4 实现客户端和服务端 java 从零开始手写 RPC (03) 如何实 ...
- The Data Way Vol.5|这里有一场资本与开源的 battle
关于「The Data Way」 「The Data Way」是由 SphereEx 公司出品的一档播客节目.这里有开源.数据.技术的故事,同时我们关注开发者的工作日常,也讨论开发者的生活日常:我们聚 ...
- 步行(walk.cpp) noip模拟
步行(walk.cpp) [题目描述] 小C喜欢步行,只有缓慢的步行,小C才能沉浸于其中,享受旅途中那些美好的瞬间. 小C来到了一座新的城市生活,这座城市可以看成 \(n\) 个点, \(n−1\) ...