zookeeper集群

ZooKeeper 并不适合做注册中心

家住魔仙堡 提交于 2019-12-22 01:25:33
zookeeper 的 CP 模型不适合注册中心 zookeeper 是一个非常优秀的项目,非常成熟,被大量的团队使用,但对于服务发现来讲,zookeeper 真的是一个错误的方案。 在 CAP 模型中,zookeeper 是 CP,意味着面对网络分区时,为了保持一致性,他是不可用的。 因为 zookeeper 是一个分布式协调系统,如果使用最终一致性(AP)的话,将是一个糟糕的设计,他的核心算法是 Zab,所有设计都是为了一致性。 对于协调系统,这是非常正确的,但是对于服务发现,可用性是第一位的,例如发生了短暂的网络分区时,即使拿到的信息是有瑕疵的、旧的,也好过完全不可用。 zookeeper 为协调服务所做的一致性保障,用在服务发现场景是错误的。 注册中心本质上的功能就是一个查询函数: ServiceList = F(service-name) 以 service-name 为查询参数,得到对应的可用的服务端点列表 endpoints(ip:port) 。 我们假设不同的客户端得到的服务列表数据是 不一致的 ,看看有什么后果。 一个 serviceB 部署了 10 个实例,都注册到了注册中心。 现在有 2 个服务调用者 service1 和 service2,从注册中心获取 serviceB 的服务列表,但取得的数据不一致。 s1 = { ip1,ip2 ... ip9 }

Kafka安装教程(详细过程)

狂风中的少年 提交于 2019-12-21 22:17:07
安装前期准备: 1,准备三个节点(根据自己需求决定) 2,三个节点上安装好zookeeper(也可以使用kafka自带的zookeeper) 3,关闭防火墙 chkconfig iptables off 一、下载安装包 Kafka官网下载安装包 http://kafka.apache.org/downloads.html 我们下载第二种(已经被编译过的),将安装包存在在 /software/ 下 二、解压安装包 我选择将kafka安装在 /usr/local/ 这个目录下。 tar -zxvf /software/ kafka_2.11-0.9.0.1.tar.gz –C /usr/local/ 三、修改配置文件 备注:以下的配置文件是我自己的配置文件,你自己配置的时候根据自己的需求进行配置,并且以下只是部分配置项,可以根据自己的需求添加符合自己需求的配置项。官网有详细的配置解释,以下是官网部分配置项截图。 其实整个安装kafka的过程很简单,主要就是修改配置文件。配置文件在 /usr/local/kafka_2.11-0.9.0.1/config 这里 cd /usr/local/kafka_2.11-0.9.0.1/config 1, 修改server.properties #broker的全局唯一编号,不能重复 broker.id=0 #用来监听链接的端口

hadoop ha安装配置

余生长醉 提交于 2019-12-21 15:06:53
集群部署规划 hadoop11 hadoop12 hadoop13 hadoop14 NameNode ✓ ✓ DataNode ✓ ✓ ✓ ✓ ResourceManager ✓ ✓ NodeManager ✓ ✓ ✓ ✓ ZooKeeper ✓ ✓ ✓ journalnode ✓ ✓ ✓ zkfc ✓ ✓ ✓ Hmaster ✓ ✓ HRegionServer ✓ ✓ scala ✓ ✓ ✓ ✓ spark master ✓ ✓ spark slaver ✓ ✓ mysql master ✓ ✓ mysql slave ✓ ✓ hive ✓ flume ✓ kafka ✓ ✓ ✓ elasticsearch ✓ ✓ ✓ kibana ✓ logstash ✓ ✓ ✓ storm nimbus ✓ ✓ ✓ storm supervisor ✓ ✓ ✓ storm ui ✓ ✓ ✓ flink jobmanager ✓ ✓ flink taskmanager ✓ ✓ mongodb PRIMARY ✓ mongodb SECONDARY ✓ ✓ mongodb ARBITER ✓ hue ✓ livy ✓ impala master ✓ impala slave ✓ ✓ ✓ 防火墙 略 免密码登录 略 集群时间同步 略 JDK部署 略 zookeeper集群部署 略 解压缩 tar

Zookeeper集群快速搭建

99封情书 提交于 2019-12-21 06:47:12
Zookeeper集群快速搭建 1.cd /usr/local/zookeeper/conf(如在192.168.212.101服务器) mv zoo_sample.cfg zoo.cfg 修改conf: vi zoo.cfg 修改两处 (1) dataDir=/usr/local/zookeeper/data(注意同时在zookeeper创建data目录) (2)最后面添加(基数台服务器) server.0=192.168.212.101:2888:3888 server.1=192.168.212.102:2888:3888 server.2=192.168.212.103:2888:3888 Ip:心跳端口:通讯端口 2.创建服务器标识即myid 在dataDir 目录下创建myid文件,内容为0 ,对应server.0(如在192.168.212.101服务器) 3.复制zookeeper 将zookeeper复制到服务器192.168.212.102,192.168.212.103 并将myid修改对应的值 4.启动zookeeper 启动3台机器,命令:bash /usr/local/zookeeper/bin/zkServer.sh start 5.查看状态 bash /usr/local/zookeeper/bin/zkServer.sh status

zookeeper集群搭建

Deadly 提交于 2019-12-21 04:40:34
前提条件 Jdk环境,三个Zookeeper实例 Zookeeper的安装步骤 第一步:把zookeeper的安装包上传到服务器 第二步:解压缩。 [root@bogon ~]# tar -zxf zookeeper-3.4.6.tar.gz [root@bogon ~]# 第三步:在/usr/local/目录下创建一个solrcloud目录。把zookeeper解压后的文件夹复制到此目录下三份。分别命名为zookeeper1、2、3 [root@bogon ~]# mkdir /usr/local/solrcloud [root@bogon ~]# mv zookeeper-3.4.6 /usr/local/solrcloud/zookeeper1 [root@bogon ~]# cd /usr/local/solrcloud [root@bogon solrcloud]# ll total 4 drwxr-xr-x. 10 1000 1000 4096 Feb 20 2014 zookeeper1 [root@bogon solrcloud]# cp -r zookeeper1/ zookeeper2 [root@bogon solrcloud]# cp -r zookeeper1/ zookeeper3 [root@bogon solrcloud]# 第四步

初识Zookeeper

让人想犯罪 __ 提交于 2019-12-21 03:06:10
Zookeeper为分布式应用提供高效且可靠的分布式协调服务,提供统一命名服务、配置管理和分布式锁等分布式基础服务。它没有直接使用Paxos算法,而是采用ZAB (Zookeeper Atomic Broadcast)的一致性协议。 4.1 初识Zookeeper 4.1.1 Zookeeper介绍 是一个开放源码的分布式协调服务,分布式一致性的解决方案。是Google Chubby的开源实现。为了将复杂易错的分布式一致性服务封装起来,构成一个高效可靠的原语集,并以一系列简单易用的接口提供 给用户使用。 分布式应用可以使用它实现如数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理、Master选举、分布式锁和分布式队列等功能。 Zookeeper设计目标: 简单数据模型 可构建集群 顺序访问 高性能 数据存储在内存 4.1.2 Zookeeper从何而来 zoo keeper 动物园管理员,雅虎很多项目名称以动物命名,放在一起很像动物园。 Zookeeper用来分布式环境的协调工作。 4.1.3 Zookeeper的基本概念 集群角色 Leader 、Follower、Observer三种角色,Zookeeper集群中所有机器通过一个Leader选举过程来选定一台Leader,它为所有客户端提供读和写服务。Follower和Observer都能提供读服务

filebeat+kafka搭建

被刻印的时光 ゝ 提交于 2019-12-21 01:19:15
简单介绍: 因为Kafka集群是把状态信息保存在Zookeeper中的,并且Kafka的动态扩容是通过Zookeeper来实现的,所以需要优先搭建Zookeerper集群,建立分布式状态管理。开始准备环境,搭建集群: zookeeper是基于Java环境开发的所以需要先安装Java 然后这里使用的zookeeper安装包版本为zookeeper-3.4.14,Kafka的安装包版本为kafka_2.11-2.2.0。 AMQP协议:Advanced Message Queuing Protocol (高级消息队列协议)是一个标准开放的应用层的消息中间件协议。AMQP定义了通过网络发送的字节流的数据格式。因此兼容性非常好,任何实现AMQP协议的程序都可以和与AMQP协议兼容的其他程序交互,可以很容易做到跨语言,跨平台。 一、首先做好kafka 1、准备三台服务器,推荐每台2个G,记得关闭防火墙 server1:10.0.0.41 server2:10.0.0.42 server3:10.0.0.43 2、三台都得配置jdk环境,1.8以上,修改主机名并且配置主机名 10.0.0.41 hostname kafka01 10.0.0.42 hostname kafka02 10.0.0.43 hostname kafka03 cat /etc/hosts 10.0.0.41

Java基础知识——zookeeper,Kafka,设计模式

帅比萌擦擦* 提交于 2019-12-21 01:18:40
Zookeeper:投票机制 实现机制 Kafka:特点 存储机制 应用场景 设计模式:三大原则 工厂抽象工厂单例 Zookeeper 投票机制 1:持久节点(persistent)和临时节点(ephemeral) 持久节点只能通过delete删除。临时节点在创建该节点的客户端崩溃或关闭时,自动被删除。 而leader明显为临时节点 2:仲裁模式:法定人数必须大于一半,即满足多数原则,即可用服务器超过一半才代表系统可用 选取leader的两种情况: 1:开机 在集群正常工作之前,myid小的服务器给myid大的服务器投票 有 5 台服务器,编号分别是 1,2,3,4,5,按编号依次启动: 服务器 1 启动,给自己投票,然后发投票信息,由于其它机器还没有启动所以它收不到反馈信息,服务器 1 的状态一直属于 Looking。 服务器 2 启动,给自己投票,同时与之前启动的服务器 1 交换结果,由于服务器 2 的编号大所以服务器 2 胜出,但此时投票数 没有大于半数(3票) ,所以两个服务器的状态依然是 LOOKING。 服务器 3 启动,给自己投票,同时与之前启动的服务器 1,2 交换信息,由于服务器 3 的编号最大所以服务器 3 胜出,此时投票数正好大于半数,所以服务器 3 成为领导者,服务器 1,2 成为小弟。 服务器 4 启动,给自己投票,同时与之前启动的服务器 1,2,3

Kubernetes+docker-DIY-kafka+zookeeper+manager集群部署

穿精又带淫゛_ 提交于 2019-12-20 23:43:13
前言:最近在给公司搞kafka和zookeeper容器化结合rancher的项目,查阅了相关官网和书籍,发现如果和公司的标准化关联比较牵强,原因有很多,我简单谈一下我最后选择自定义的原因:(因是个人本地二进制部署k8s+kakfa测试的,因此生产需要自己配置所需要的内存和cpu,动态持久化存储等) 1、使用官网dockfile不能自定义jdk。 2、dockerfile和yaml关联比较牵强,每个人有每个人的思路。 3、不能和公司之前物理机部署标准化文档相结合。 ..... 下面,我将花了半个月研究的部署分享一,有兴趣者可加好友共同探讨: https://github.com/renzhiyuan6666666/kubernetes-docker 一、 zookeeper集群部署 1.1) zookeeper文件清单 2. 1.2) zookeeper文件清单详解 1.2.1)oracle jdk软件包  jdk-8u151-linux-x64.tar.gz 底层使用centos6.6镜像,部署目录到app目录下,在dockerfile里面配置环境变量。 1.2.2)zookeeper软件包  zookeeper-3.4.12.tar.gz 底层使用centos6.6镜像,部署目录到app目录下 1.2.3)zookeeper Dockerfile #设置继承镜像 FROM

亿级 ELK 日志平台构建实践

时光怂恿深爱的人放手 提交于 2019-12-20 20:33:00
本篇主要讲工作中的真实经历,我们怎么打造亿级日志平台,同时手把手教大家建立起这样一套亿级 ELK 系统。日志平台具体发展历程可以参考上篇 「从 ELK 到 EFK 演进」 废话不多说,老司机们座好了,我们准备发车了~~~ 整体架构 整体架构主要分为 4 个模块,分别提供不同的功能 Filebeat :轻量级数据收集引擎。基于原先 Logstash-fowarder 的源码改造出来。换句话说:Filebeat就是新版的 Logstash-fowarder,也会是 ELK Stack 在 Agent 的第一选择。 Kafka : 数据缓冲队列。作为消息队列解耦了处理过程,同时提高了可扩展性。具有峰值处理能力,使用消息队列能够使关键组件顶住突发的访问压力,而不会因为突发的超负荷的请求而完全崩溃。 Logstash :数据收集处理引擎。支持动态的从各种数据源搜集数据,并对数据进行过滤、分析、丰富、统一格式等操作,然后存储以供后续使用。 Elasticsearch :分布式搜索引擎。具有高可伸缩、高可靠、易管理等特点。可以用于全文检索、结构化检索和分析,并能将这三者结合起来。Elasticsearch 基于 Lucene 开发,现在使用最广的开源搜索引擎之一,Wikipedia 、StackOverflow、Github 等都基于它来构建自己的搜索引擎。 Kibana :可视化化平台