一、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. window11连接局域网共享失败处理办法

    第一步1.按 Win + R 组合键,打开运行,并输入:gpedit.msc 命令,确定或回车,可以快速打开本地组策略编辑器2.本地组策略编辑器窗口中,依次展开到:计算机配置 - 管理模板 - 网络 ...

  2. struts2升级至2.3.24方法

    1.替换如下jar包 2.修改web.xml中的struts过滤器配置 将原来的过滤配置注释掉 替换为: 3.struts.xml配置 4. 发现程序中有类报错:缺少  import org.apac ...

  3. Nginx 常用配置清单

    侦听端口: server {# Standard HTTP Protocollisten 80;# Standard HTTPS Protocollisten 443 ssl;# For http2l ...

  4. 数据结构作业——P53算法设计题(6):设计一个算法,通过一趟遍历确定长度为n的单链表中值最大的结点

    思路: 设单链表首个元素为最大值max 通过遍历元素,与最大值max作比较,将较大值附给max 输出最大值max 算法: /* *title:P53页程序设计第6题 *writer:weiyuexin ...

  5. Causal Inference

    目录 Standardization 非参数情况 Censoring 参数模型 Time-varying 静态 IP weighting 无参数 Censoring 参数模型 censoring 条件 ...

  6. Adversarial Self-Supervised Contrastive Learning

    目录 概 主要内容 Linear Part 代码 Kim M., Tack J. & Hwang S. Adversarial Self-Supervised Contrastive Lear ...

  7. Spring Boot 2 中如何使用 Log4j2 记录日志

    上一篇我们介绍了Spring Boot 2.x中默认日志框架Logback的使用.今天继续说说日志,接下来我们要讲是前段时间爆出核弹漏洞的Log4j2.虽然出了漏洞,让很多小伙伴痛苦了1-2周(加班) ...

  8. 单芯片CS5265替代VL102+PS176|设计USB TYPEC转HDMI方案|替代VL102+PS176

    一.PS176概述PS176是一个显示端口 (DP)至HDMI 2.0视频接口转换器适用于需要视频协议转换的电缆适配器.电视接收器.监视器和其他应用.它将接受任何显示端口输入格式,包括DP 1.1a. ...

  9. 访问局域网内其他主机的VMware虚拟机上的mysql数据库和redis缓存

    上一篇写了访问局域网内其他主机的虚拟机上的项目 ,现在说说访问局域网内其他主机的虚拟机上的数据库和缓存 博主使用的linux是Ubuntu16.04: 一.安装数据库和缓存 这里连接的数据库和缓存以m ...

  10. Golang 简洁架构实战

    文中项目代码位置:https://github.com/devYun/go-clean-architecture 转载请声明出处哦~,本篇文章发布于luozhiyun的博客:https://www.l ...