一、zookeeper介绍?

一、zookeeper 简单介绍?
1.什么是集群?
// 很多台服务器保持连接通讯状态,并且所有的服务器做同一件事就称之为集群 2.什么是zookeeper?
注册中心就是zookeeper(eureka,consul)的别名
zookeeper是apache开源基金会下的一个顶级项目
zookeeper是一个致力于开发和维护的开源服务器,作用于项目中的协调和控制功能 场景:
空调坏了,学生就去找班主任说空调坏了,班主任也不会修空调,班主任觉得孟老师会修空调,结果孟老师也不会,孟老师最终给售后打电话,售后假设把空调修好了,最终学生达到了预期效果
学生就是需求者,售后是服务者,孟老师和班主任就是协调者
zookeeper从logo来看是动物园管理员,这个动物园中所有的动物都由zookeeper进行管理,管理了动物的衣食住行,zookeeper在最早的时候只适用于Hadoop的生态圈,在Hadoop的生态圈中所有的框架都是动物,zookeeper对他们进行管理,管理框架的健康(心跳),服务器的调用方和服务器的生产方,也就是说最终服务的客户端不再直接向服务的服务器发送数据,首先客户端先找到zookeeper,根据zookeeper的反馈再找服务器端
hadoop是大象
hbase是鲸鱼
pig是猪
.... 在zookeeper中存放了大量的数据(非常有用),但是这些数据开发人员看不到,并且zookeeper会按照规定的时间对已经向自己注册服务索要心跳,
根据观察者模式,一旦检测到状态发生变化,最终向zookeeper注册过的观察者(服务器)要应对处理措施!
/*
被观察对象是------------->zookeeper
观察对象是---------------->服务器
*/
3.zookeeper的应用场景:
在之前只适用于大数据,但是随着web项目越来越大,发展越来越快,zookeeper已经完全适用于整个web项目,在web项目中仍然起着协调和控制的作用
zookeeper是以集群的形式存在,也就是说三台zookeeper做同一件事,
/*
在官方文档中说明,zookeeper以奇数台为稳定,并且以中间这一台为leader,也就是说zookeeper至少需要三台(不是一台,一台称之为单节点)
*/
为什么说以奇数台为稳定??
zookeeper是以一个leader带领很多个follower完成的集群,并且奇数和选举机制有关

二、Linux配置 zookeeper?

二、配置zookeeper?

        1. 新建三台虚拟机  五步走
vim /etc/sysconfig/network
vim /etc/hosts
service iptables stop
chkconfig iptables off
reboot 2.配置jdk
2.1导入jdkjar包。
2.2配置java环境变量。 3.配置免秘钥登录
生成自己的公钥 四次回车(都不能输入密码)
/*
ssh-keygen -t rsa
ssh-keygen -t rsa
ssh-keygen -t rsa
ssh-keygen -t rsa
ssh-keygen -t rsa */
把自己的公钥copy其他服务器上 另外两台都需要copy!!!
/*
ssh-copy-id ip地址/hostname
ssh-copy-id ip
ssh-copy-id 192.168.11.116
ssh-copy-id haha */
配置成功后,ssh 连接访问。
/**
ssh +另一条虚拟机的ip地址/名字
ssh haha
ssh zookeeper
ssh zookeeper */ 4解压zookeeper
tar -zxvf xxxxx 5.把conf目录下的
[zoo-sample.cfg文件改名为zoo.cfg] 修改文件的命令: mv +需要修改的文件名 空格 修改后的文件名。 /* mv zoo-sample.cfg zoo.cfg
mv zoo-sample.cfg zoo.cfg
mv zoo-sample.cfg zoo.cfg
mv zoo-sample.cfg zoo.cfg
mv zoo-sample.cfg zoo.cfg
mv zoo-sample.cfg zoo.cfg
*/ 6.修改dataDir参数(不是必须所要修改的,但是要求修改) 指向的文件就是zookeeper每一台节点的唯一标识(id),而且这个唯一标识不能重复!!!! 1.在zookeeper目录下中创建文件夹data 获取data的 pwd路径。(pwd )
/*
mkdir data
cd data
pwd 获取路径 */ 2.退出 ,在conf下修改 dataDir 修改为刚才所创建的data目录的绝对路径把dataDir修改为刚才所创建的data目录的绝对路径
/*
vim dataDir
把dataDir修改为刚才所创建的data目录的绝对路径 dataDir=/home/apps/zookeeper-3.4.6/data
*/ 7.在zoo.cfg文件的末尾添加
/**
server.1=zookeeper01:2888:3888
server.2=zookeeper02:2888:3888
server.3=zookeeper03:2888:3888 7.1 server.的数据就是每一台zookeeper的唯一标识 7.2 zookeeper01:HOSTNAME或者可以配置IP地址 7.3 2888:zookeeper集群之间通讯所用的端口号 7.4 3888:zookeeper集群的选举leader端口号
*/ 8.在之前创建data文件夹下创建myid文件
touch myid 9.写入myid文件
vim myid 另外两台分别写入 2 和 3 它们是zookeeper的标识。
1 10.通过scp发送到另外两台服务器上
语法 scp -r /home/apps/(需要发送的路径) 空格 zookeeper02(目标的ip/hostname):/home/ (需要发送到的目标位置)
把zookeeper01 虚拟机上的 /home/apps/ 发送到 zookeeper02 的 :home/ 目录下。 /*
scp -r /home/apps/ zookeeper02:/home/
scp -r /home/apps/ zookeeper03:/home/
scp -r /home/apps/ zookeeper02:/home/ */
将配java的配置环境也copy过去。 scp -r /etc/profile zookeeper01:/etc/
scp -r /etc/profile zookeeper01:/etc/ scp -r /etc/proflie 需要的虚拟机的ip:/etc/
(本机需要copy的地址) (需要copy到的虚拟机的地址)
/*
scp -r /etc/proflie zookeeper02:/etc/
scp -r /etc/proflie zookeeper03:/etc/
scp -r /etc/proflie haha:/etc/
*/ 立即生效命令
source /etc/profile
尝试了一下 不用也可以。不敢保证。。。 4.10.根据server.的数字分别修改myid文件
把zookeeper02修改为2
把zookeeper03修改为3 4.11.启动zookeeper
在bin目录中启动
/*
./zkServer.sh start
./zkServer.sh start
./zkServer.sh start
./zkServer.sh start
*/
看到以下信息说明启动成功:
JMX enabled by default
Using config: /home/apps/zookeeper-3.4.6/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED 4.12.分别检测三台zookeeper服务器的状态
在bin目录中
/*
./zkServer.sh status
./zkServer.sh status
*/ 关闭
/*
./zkServer.sh stop
./zkServer.sh stop
./zkServer.sh stop
*/ leader 和 follower
老大 小弟 5.zookeeper的选举机制
5.1 zookeeper采用的是Paxos算法实现的选举机制
换句话说半数选举机制 谁的server id大 谁就是大哥!!! 半数选举 leader产生 该节点高32位会发生改变。 5.2zid 事物的id一共有64位, 分别高32 位 和 低32 位。
当leader宕机。所有服务器的zid 会自增。
自增的低32位 根据某个规则进行增加 高32位不变。 zid 的低32为越小,被选举的可能性就越大,被操作的可能性就越大 /*
zxid (低32 +高32位 合并)
越大被操作的可能就越大。 */

Linux配置zookeeper 和zookeeper简单介绍的更多相关文章

  1. Linux配置 ftp 和 ftp简单介绍

    一.ftp概念? /* ftp是一个协议和http协议都是叫协议 tcp和udp也是协议 ftp是文件(以流的形式进行传输)传输协议(针对于文件进行上传和下载) */ 1.如果ftp服务器有多台,服务 ...

  2. 一个性能较好的jvm參数配置以及jvm的简单介绍

    一个性能较好的webserverjvm參数配置: -server //服务器模式 -Xmx2g //JVM最大同意分配的堆内存,按需分配 -Xms2g //JVM初始分配的堆内存.一般和Xmx配置成一 ...

  3. Linux内核剖析 之 进程简单介绍

    1.概念 1.1  什么是进程?     进程是程序运行的一个实例.能够看作充分描写叙述程序已经运行到何种程度的数据结构的汇集.     从内核观点看.进程的目的就是担当分配系统资源(CPU时间,内存 ...

  4. Linux GDB程序调试工具使用简单介绍

    GDB概述 GDB是GNU开源组织公布的一个强大的UNIX下的程序调试工具.也许,各位比較喜欢那种图形界面方式的,像VC.BCB等IDE的调试,但假设你是在UNIX平台下做软件,你会发现GDB这个调试 ...

  5. linux系统的 suid/guid简单介绍 linux suid guid

    我们在前面曾经提到过s u i d和g u i d.这种权限位近年来成为一个棘手的问题.很多系统供应商不允许实现这一位,或者即使它被置位,也完全忽略它的存在,因为它会带来安全性风险.那么人们为何如此大 ...

  6. 嵌入式 Linux下curl库API简单介绍

    1:CURLcode curl_global_init(long flags); 这个函数全局需要调用一次(多次调用也可以,不过没有必要), 所以这也是把Curlplus设计成单体类的原因,curl_ ...

  7. 第二十一篇 Linux中的环境变量简单介绍

        环境变量之   PATH 定义解释器搜索用户执行命令的路径 获取PATH变量的值: echo $PATH /usr/local/bin:/usr/local/sbin:/usr/bin:/us ...

  8. linux简单介绍,helloworld,vi使用,用户管理

    linux特点1.免费的.开源的2.支持多线程.多用户的3.安全性好4.对内存和文件管理优越 缺点:操作相对困难 linux最小只需要4m -> 嵌入式开发 我们使用 vm[虚拟机] 虚拟了一个 ...

  9. Linux 下UVC&V4L2技术简单介绍(二)

    通过前文Linux 下UVC&V4L2技术简单介绍(一)我们了解了UVC和V4L2的简单知识. 这里是USB设备的文档描写叙述:http://www.usb.org/developers/do ...

  10. 【Hadoop离线基础总结】impala简单介绍及安装部署

    目录 impala的简单介绍 概述 优点 缺点 impala和Hive的关系 impala如何和CDH一起工作 impala的架构及查询计划 impala/hive/spark 对比 impala的安 ...

随机推荐

  1. 【LeetCode】712. Minimum ASCII Delete Sum for Two Strings 解题报告(Python & C++)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 日期 题目地址:https://leetcode.c ...

  2. element ui el-tree回显问题及提交问题(当后台返回的el-tree相关数组的时候,子菜单未全部选中,但是只要父级菜单的id在数组中,那么他的子菜单为全部选中状态)

    1:问题原因:我们可能使用 this.$refs.tree.setCheckedKeys(this.defalutArr);或者使用:default-expanded-keys="treeD ...

  3. 编写Java程序,使用 Socket类模拟用户加入 QQ 群时,QQ 小冰发送欢迎消息的场景(用户充当客户端,QQ 小冰充当服务端)

    查看本章节 查看作业目录 需求说明: 小冰是微软公司研发的人工智能机器人,被腾讯公司加入 QQ 群后,立即受到千万网友的喜爱.现在使用 Socket类模拟用户加入 QQ 群时,QQ 小冰发送欢迎消息的 ...

  4. Java面向对象笔记 • 【第7章 集合】

    全部章节   >>>> 本章目录 7.1 集合概述 7.1.1 Java集合体系概述 7.1.2 实践练习 7.2 List集合 7.2.1 ArrayList实现类 7.2. ...

  5. MongoDB常用命令(2)

    1.创建数据库 use testdb 2.创建集合 db.t_member.insert({name:"zhaomin",age:23}) 3.查询 db.t_member.fin ...

  6. 前端在线学习网站W3School

    W3School在线学习网站 http://www.w3school.com.cn/ W3School是因特网上最大的WEB开发者资源,是完全免费的,是非营利性的, 一直在升级和更新,是W3C中国社区 ...

  7. HDU ACM 8.13 T2 的 O(m)做法

    前言 由于本人比较拉所以看起来很啰嗦,将就看就好. 题目大意 \(n\)种包,每个包里面有一大一小两个球,选小球的代价是\(1\),大球的代价是\(2\),可以都不选,若一次性买两个包,则可以优惠\( ...

  8. oracle 之 for循环表

    代码 create table tm_lzh as SELECT 'a1' c1,'b1' c2 FROM dual union all SELECT 'a2' c1,'b2' c2 FROM dua ...

  9. PowerShell 教程

    随笔分类 - 教程 转载自:https://www.cnblogs.com/XiaoCY/category/1065141.html PowerShell 管道符之Where-Object的使用方法 ...

  10. CentOS6.5安装CM5.13

    注:图片如果损坏,点击文章链接:https://www.toutiao.com/i6610650059971232269/ 安装好虚拟机(2个节点) YUM源已安装好.系统版本CentOS6.5.ja ...