公告:版权所有,违者必究

###1.zookeeper安装
**前提:**先安装jdk,zookeeper运行依赖于java环境。
(1.)下载安装包
```
http://mirror.bit.edu.cn/apache/zookeeper
https://zookeeper.aphache.org
```
(2.)解压文件
```
tar -zxvf zookeeper-3.4.13.tar.gz -C /usr/local/
mv /usr/local/zookeeper-3.4.13.tar.gz /usr/local/zookeeper //便于记忆,重命名
```
(3.)编辑配置文件
```
cd zookeeper-3.4.13/conf
cp zoo_sample.cfg zoo.cfg
vim zoo.cfg
dataDir=/tmp/zookeeper/data //修改为自己创建的目录,临时目录存放数据不安全
dataLogDir=/tmp/zookeeper/log
```
**集群场景配置**
>如果想配置集群的话,请zoo.cfg文件的clientPort下面添加服务器的ip。如
server.1=192.168.180.132:2888:3888 //这里是1,2,3 就是myid的对应的服务器编号,前面的2888端口用于和leader交换数据的,用于同步副本通信的端口
server.2=192.168.180.133:2888:3888 // 后面这个3888端口用于选举的,在选主的时候用这个端口进行通信
server.3=192.168.180.134:2888:3888
如果电脑内存比较小,zookeeper还可以设置成伪集群。也就是全部服务器采用同一个ip,但是使用不同的端口。

如果是配置集群,还需要在前面配置过的dataDir路径下新增myid文件,在data目录下创建文件,文件名为“myid”, 编辑该“myid”文件,并在对应的IP的机器上输入对应的编号。

如在192.168.180.132上,“myid”文件内容就是1。在192.168.180.133上,内容就是2。

cd /tmp/zookeeper/data

touch myid

vim myid

(4.)设置环境变量

vi /etc/profiel
ZOOKEEPER_HOME=/usr/local/zookeeper/
PATH=$PATH:$ZOOKEEPER_HOME/bin
source /etc/profile

(5.)zookeeper启动

zkServer.sh start  //单机模式
zkServer.sh start zoo1.cfg //伪集群分布式模式
zkServer.sh status //查看状态 【问题记录】:
集群场景下,有一个节点启动正常,但是查询状态有问题:
./zkServer.sh status
JMX enabled by default
Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
Error contacting service. It is probably not running. 【解决办法】:
(a.)关闭防火墙,centos7:
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动
(b.)查看zoo.cfg中这两个文件夹是否已经创建,目录是否正确
dataDir=/opt/zookeeper/zkdata
dataLogDir=/opt/zookeeper/zkdatalog
(c.)myid文件是否存在,是否在dataDir目录下,是否编号为1,2,3...内容是否有空格回车符,认真检查!!!
(d.) 用以下命令启动,查看启动日志:
zkServer.sh start-foreground //linux
./zkServer.sh print-cmd //windows

(6.)进程查看

jps

(7.)客户端的启动

zkcli.sh   //启动客户端
ls /path //查看当前节点中所包含的内容
ls2 / //查看详情 create /path "xxx" //创建普通节点
create -e /path1/path2/xxx "xxx" //创建临时节点
create -s /path1/path2 "xxx" //创建带序列号的节点,即自增节点
get /path //获取数据 set /path1/path2 "yyy" //修改数据
get /path1/path2 watch //节点值变化监听
ls /path1 watch //路径变化监听,注册时执行一次,即只执行一次 quit //退出

2. zookeeper的选举机制

(1.) 半数机制:半数以上工作正常,适合奇数安装。初始化时的选举,就采用该种方式。

(2.) 选举时先投自己,不能成为master后,再投给节点数比自己大的节点。

3.节点类型

(1.)持久型:client与server断开连接后,创建的节点不删除,序列号顺序编号,单调递增。

(2.)临时型:clent与Server断开连接后,创建的节点自己删除,节点顺序编号。

4.内容同步到其他节点

xsync zookeeper/xxx    //同步后,其他节点也有该文件夹

5.zookeeper应用场景

(1.)统一配置管理:

分布式环境下,配置文件同步:

a. 集群中所有节点的配置信息一致,如kafka集群

b. 对配置文件修改后,可以快速的同步到其他各个节点上。

配置管理可交给zookeeper实现:

c. 可将配置信息写入zookeeper的一个节点上。

d. 各个客户端监听这个节点,一旦节点中的数据被修改,zookeeper将通知各个客户端,同步数据

(2.) 统一命名服务:

域名 --> 多个IP

(3.)统一集群管理

a.分布式环境中,实现掌握各个节点的状态,可根据节点的实施状态,做出一些调整

b.zookeeper 可以实现实时监控节点状态变化,可将节点信息写入zookeeper的一个节点,监听这个节点可获取它的实时状态变化。

(4.)服务器动态上下线

客户端实时洞察服务器上下线变化,如果该节点挂掉则访问其他节点

(5.)软负载均衡

在zookeeper中记录每台服务器的访问数,让访问数最少的服务器去处理最新的客户端请求。

6.zookeeper数据结构

(1.)树状存储

(2.)默认每个节点只能存储1M数据

(3.)按路径访问

7.zookeeper特性

(1.)zookeeper = 文件系统 + 通知机制

(2.)zookeeper 一个leader,N个follower

(3.)集群中只要有半数 以上节点存活,则zookeeper集群可以正常服务

(4.)全局数据一致:每个server保存一份相同的数据的副本,客户端无论连到哪个服务端,数据都是一致的。

(5.)数据更新的原子性,一次数据更新要么成功,要么失败

(6.)实时性,在一定时间内可以获取最新的数据

(7.)zookeeper监听服务端下线原理:

服务端启动时,去注册信息到zookeeper,客户端获取在线服务列表,并注册监听。当服务器节点下线时,zookeeper推送服务端下线的事件给客户端,客户端接收到通知后,重新获取服务器列表,并注册监听。

———————————————————————————————————————————————————————————



———————————————————————————————————————————————————————————

kafka入门

1.下载安装包

http://kafka.apache.org/downloads.html

2.解压文件

tar -zxvf kafka_2.11-2.0.0.tgz -C /usr/local/

3.进入bin目录启动

./kafka-server-start.sh …/config/server.properties  //启动Kafka,需指定配置文件

----------------------------------【喜欢打赏】-------------------------------------------

小主,辛苦啦!文章棒棒哒,赏杯咖啡吧...

----------------------------------【喜欢打赏】-------------------------------------------

linux-zookeeper-kafka入门的更多相关文章

  1. 转 Kafka入门经典教程

    Kafka入门经典教程 http://www.aboutyun.com/thread-12882-1-1.html 问题导读 1.Kafka独特设计在什么地方?2.Kafka如何搭建及创建topic. ...

  2. _00017 Kafka的体系结构介绍以及Kafka入门案例(0基础案例+Java API的使用)

    博文作者:妳那伊抹微笑 itdog8 地址链接 : http://www.itdog8.com(个人链接) 博客地址:http://blog.csdn.net/u012185296 博文标题:_000 ...

  3. Linux下Kafka单机安装配置方法(图文)

    Kafka是一个分布式的.可分区的.可复制的消息系统.它提供了普通消息系统的功能,但具有自己独特的设计.这个独特的设计是什么样的呢 介绍 Kafka是一个分布式的.可分区的.可复制的消息系统.它提供了 ...

  4. 《OD大数据实战》Kafka入门实例

    官网: 参考文档: Kafka入门经典教程 Kafka工作原理详解 一.安装zookeeper 1. 下载zookeeper-3.4.5-cdh5.3.6.tar.gz 下载地址为: http://a ...

  5. kafka 入门笔记 #1

    kafka 入门笔记(#1) 单机测试 下载版本,解压 tar -xzf kafka_2.11-0.10.1.1.tgz cd kafka_2.11-0.10.1.1 启动服务 Kafka用到了Zoo ...

  6. Kafka入门 --安装和简单实用

    一.安装Zookeeper 参考: Zookeeper的下载.安装和启动 Zookeeper 集群搭建--单机伪分布式集群 二.下载Kafka 进入http://kafka.apache.org/do ...

  7. Redis&MongoDB&Zookeeper&Kafka

    目录 Redis MongoDB Zookeeper Kafka Redis 概念 Redis是NoSQL中比较常典型的一个非关系型数据库,在日常工作中也是最为常见的.Redis是一个由C语言编写的开 ...

  8. Linux下Kafka单机安装配置方法

    Kafka是一个分布式的.可分区的.可复制的消息系统.它提供了普通消息系统的功能,但具有自己独特的设计.这个独特的设计是什么样的呢? 首先让我们看几个基本的消息系统术语: •Kafka将消息以topi ...

  9. Kafka入门之生产者消费者

    一.Kafka安装与使用 ( kafka介绍     ) 1. 下载Kafka 官网 http://kafka.apache.org/    以及各个版本的下载地址 http://archive.ap ...

  10. Kafka 入门和 Spring Boot 集成

    目录 Kafka 入门和 Spring Boot 集成 标签:博客 概述 应用场景 基本概念 基本结构 和Spring Boot 集成 集成概述 集成环境 kafka 环境搭建 Spring Boot ...

随机推荐

  1. Young and Beautiful 新红楼剪辑(by up)

    up剪辑的新红楼视频,配上Young and Beautiful 这首英文歌,很优美^_^

  2. Golang 入门 : channel(通道)

    笔者在<Golang 入门 : 竞争条件>一文中介绍了 Golang 并发编程中需要面对的竞争条件.本文我们就介绍如何使用 Golang 提供的 channel(通道) 消除竞争条件. C ...

  3. 手动创建分区以及软硬raid的问题

    本文章旨在介绍安装centos7时手动分区问题,及其所对应的软硬raid问题.在新建centos7系统时,需要手动分区时,提供给我们三个选项: 在上图中,默认选项为“Standard Partitio ...

  4. 曾Python培训讲师-2年Python开发无包装简历-20191217-可公开

    目录 个人介绍 技能介绍 项目经历 自我评价 简历非完整版,需要完整版看下述信息,禁止任何一切私人用途.转发 我生日是27号,那就27元一份,有需求的来购买!只会涨价不会降价,大概卖10份涨1元:曾P ...

  5. 有了faker,再也不用为了构造测试数据而烦恼啦!

    在软件需求.开发.测试过程中,有时候需要使用一些测试数据,针对这种情况,我们一般要么使用已有的系统数据,要么需要手动制造一些数据.在手动制造数据的过程中,可能需要花费大量精力和工作量,此时可以借助Py ...

  6. 跟着高淇学Python——第一到第三章总结

    2019/10/26 第一章:Python介绍 Python是一种解释型,面向对象的语言.特点是: 可读性强 简洁,简洁 面向对象 免费开源 可移植性和跨平台性 丰富的库 可扩展性 应用范围:1.人工 ...

  7. 关于WIN7下IE8IE7浏览器无法安装微信支付商户证书的解决方案

    关于WIN7下IE8IE7浏览器无法安装微信支付商户证书的解决方案 解决方案就是使用 chrome浏览器 默认的chorme浏览器  打开微信商户平台 会提示让安装控件  然后反复安装 其实要解决这个 ...

  8. .net core使用NLog日志

    前言:NLog日志对.net core web项目最新的支持在官网上有最新的介绍: 官网介绍地址:https://github.com/NLog/NLog/wiki/Getting-started-w ...

  9. Web前端基础(7):JavaScript(一)

    1. JavaScript概述 1.1 JavaScript历史背景介绍 布兰登 • 艾奇(Brendan Eich,1961年-),1995年在网景公司,发明的JavaScript. 一开始Java ...

  10. python基础(33):线程(一)

    1. 线程概念的引入背景 1.1 进程 之前我们已经了解了操作系统中进程的概念,程序并不能单独运行,只有将程序装载到内存中,系统为它分配资源才能运行,而这种执行的程序就称之为进程.程序和进程的区别就在 ...