linux-zookeeper-kafka入门
公告:版权所有,违者必究
###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入门的更多相关文章
- 转 Kafka入门经典教程
Kafka入门经典教程 http://www.aboutyun.com/thread-12882-1-1.html 问题导读 1.Kafka独特设计在什么地方?2.Kafka如何搭建及创建topic. ...
- _00017 Kafka的体系结构介绍以及Kafka入门案例(0基础案例+Java API的使用)
博文作者:妳那伊抹微笑 itdog8 地址链接 : http://www.itdog8.com(个人链接) 博客地址:http://blog.csdn.net/u012185296 博文标题:_000 ...
- Linux下Kafka单机安装配置方法(图文)
Kafka是一个分布式的.可分区的.可复制的消息系统.它提供了普通消息系统的功能,但具有自己独特的设计.这个独特的设计是什么样的呢 介绍 Kafka是一个分布式的.可分区的.可复制的消息系统.它提供了 ...
- 《OD大数据实战》Kafka入门实例
官网: 参考文档: Kafka入门经典教程 Kafka工作原理详解 一.安装zookeeper 1. 下载zookeeper-3.4.5-cdh5.3.6.tar.gz 下载地址为: http://a ...
- kafka 入门笔记 #1
kafka 入门笔记(#1) 单机测试 下载版本,解压 tar -xzf kafka_2.11-0.10.1.1.tgz cd kafka_2.11-0.10.1.1 启动服务 Kafka用到了Zoo ...
- Kafka入门 --安装和简单实用
一.安装Zookeeper 参考: Zookeeper的下载.安装和启动 Zookeeper 集群搭建--单机伪分布式集群 二.下载Kafka 进入http://kafka.apache.org/do ...
- Redis&MongoDB&Zookeeper&Kafka
目录 Redis MongoDB Zookeeper Kafka Redis 概念 Redis是NoSQL中比较常典型的一个非关系型数据库,在日常工作中也是最为常见的.Redis是一个由C语言编写的开 ...
- Linux下Kafka单机安装配置方法
Kafka是一个分布式的.可分区的.可复制的消息系统.它提供了普通消息系统的功能,但具有自己独特的设计.这个独特的设计是什么样的呢? 首先让我们看几个基本的消息系统术语: •Kafka将消息以topi ...
- Kafka入门之生产者消费者
一.Kafka安装与使用 ( kafka介绍 ) 1. 下载Kafka 官网 http://kafka.apache.org/ 以及各个版本的下载地址 http://archive.ap ...
- Kafka 入门和 Spring Boot 集成
目录 Kafka 入门和 Spring Boot 集成 标签:博客 概述 应用场景 基本概念 基本结构 和Spring Boot 集成 集成概述 集成环境 kafka 环境搭建 Spring Boot ...
随机推荐
- go语言设计模式之Concurrency barrier
barrier.go package barrier import ( "fmt" "io/ioutil" "net/http" " ...
- wbr 标签实现连续英文字符的精准换行你知道吗?
1.一般情况下的换行: word-break:break-all或者word-wrap:break-word <p>大家<wbr>想要<wbr>实现<wbr& ...
- 201871010126 王亚涛 《面向对象程序设计 (Java)》第十六周学习总结
内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.com/nwnu-daizh/p/12 ...
- 【西北师大-2108Java】第九次作业成绩汇总
[西北师大-2108Java]第九次作业成绩汇总 作业题目 面向对象程序设计(JAVA) 第11周学习指导及要求 实验目的与要求 (1)理解泛型概念: (2)掌握泛型类的定义与使用: (3)掌握泛型方 ...
- 阿里Nacos初体验
Nacos 从开源到现在已经18个releases了,更新很快,社区也很活跃,光钉钉群的人数那也是好多,每次点个查看全部成员的按钮,我的钉钉就要卡死,也有可能我没更新最新的版本. 前面写了一段时间的S ...
- Java语言入门-第一个HelloWorld程序
1.官网下载Jdk 这里给出官网下载网址:https://www.oracle.com/technetwork/java/javase/downloads . 1.1 打开之后出现如下界面: 1.2选 ...
- 【LOJ#2687】Vim(动态规划)
[LOJ#2687]Vim(动态规划) 题面 LOJ 题解 发现移动的路径一定是每次往后跳到下一个某个字符的位置,然后往回走若干步,删掉路径上的所有\(e\),然后继续执行这个操作. 这里稍微介绍一下 ...
- 使用zabbix监控linux的io
zabbix自带的监控linux的模板中并没有监控io这项,而实际生产中又需要监控io,如何监控呢. 错误的示例 这里我特意贴出错误的示例出来,是因为我在网上搜如何使用zabbix监控io的文章时,好 ...
- Apache ActiveMQ序列化漏洞(CVE-2015-5254)复现
Apache ActiveMQ序列化漏洞(CVE-2015-5254)复现 一.漏洞描述 该漏洞源于程序没有限制可在代理中序列化的类.远程攻击者可借助特制的序列化的java消息服务(JMS)Objec ...
- ES6语法:let和const
ES6新增加了两个重要的JavaScript关键字:let和const 一.let关键字 let声明的变量只在let命令所在的代码块内有效. 1.基本语法 let a='123' 2.let和var的 ...