zookeeper集群

Zookeeper知识梳理

丶灬走出姿态 提交于 2020-02-27 13:23:31
转载自: https://hadyang.github.io/interview/docs/architecture/distributed/zk/ 分布式应用 分布式应用可以在给定时间(同时)在网络中的多个系统上运行,通过协调它们以快速有效的方式完成特定任务。通常来说, 对于复杂而耗时的任务,非分布式应用(运行在单个系统中)需要几个小时才能完成,而分布式应用通过使用所有系统涉及的计算能力可以在几分钟内完成 。 通过将分布式应用配置为在更多系统上运行,可以进一步减少完成任务的时间。分布式应用正在运行的一组系统称为 集群 ,而在集群中运行的每台机器被称为 节点 。 分布式应用的优点 可靠性:单个或几个系统的故障不会使整个系统出现故障。 可扩展性:可以在需要时增加性能,通过添加更多机器,在应用程序配置中进行微小的更改,而不会有停机时间。 透明性:隐藏系统的复杂性,并将其显示为单个实体/应用程序。 分布式应用的挑战 竞争条件:两个或多个机器尝试执行特定任务,实际上只需在任意给定时间由单个机器完成。例如,共享资源只能在任意给定时间由单个机器修改。 死锁:两个或多个操作等待彼此无限期完成。 不一致:数据的部分失败。 ZooKeeper基础 Apache ZooKeeper是由集群(节点组)使用的一种服务,用于在自身之间协调,并通过稳健的同步技术维护共享数据

Zookeeper

拜拜、爱过 提交于 2020-02-27 02:20:49
157.zookeeper 是什么? ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,它是集群的管理者,监视着集群中各个节点的状态根据节点提交的反馈进行下一步合理操作。最终,将简单易用的接口和性能高效、功能稳定的系统提供给用户 zookeeper=文件系统+监听通知机制 原理概述   Zookeeper的核心是原子广播机制,这个机制保证了各个server之间的同步。实现这个机制的协议叫做Zab协议。Zab协议有两种模式,它们分别是 恢复模式 和 广播模式 。 (1) 恢复模式   当服务启动或者在领导者崩溃后,Zab就进入了恢复模式,当领导者被选举出来,且大多数server完成了和leader的状态同步以后,恢复模式就结束了。状态同步保证了leader和server具有相同的系统状态。 (2) 广播模式   一旦Leader已经和多数的Follower进行了状态同步后,他就可以开始广播消息了,即进入广播状态。这时候当一个Server加入ZooKeeper服务中,它会在恢复模式下启动,发现Leader,并和Leader进行状态同步。待到同步结束,它也参与消息广播。ZooKeeper服务一直维持在Broadcast状态,直到Leader崩溃了或者Leader失去了大部分的Followers支持。   Broadcast模式

Hbase知识总结

主宰稳场 提交于 2020-02-27 00:58:50
HBASE的出现 在大数据环境下,mysql无法满足海量的数据的存储。所以HDFS,出现了,但是HDFS无法解决结构化的数据的处理方案,HDFS虽然能存,但是上述的结构,HDFS是处理不了的。所以: HBase出现了 另外,HBase的原型是Google的BigTable论文。HBase是一个 /*高可靠性、高性能、面向列、可伸缩的分布式存储系统*/ ,利用HBASE技术可在廉价PC Server上搭建起大规模结构化存储集群,基于Hadoop。 结构化数据 具有固定的结构,属性划分,以及类型等信息。我们通常所理解的关系型数据库中所存储的数据信息,大多是结构化数据, 如职工信息表,拥有ID、Name、Phone、Address等属性信息。 半结构化数据 具有一定的结构,但又有一定的灵活可变性。典型如XML、HTML等数据。其实也是非结构化数据的一种。 非结构化数据 无法用统一的结构来表示。如文本文件、图像、视频、声音、网页等信息。 HBASE表的特点 大:一个表中可以有数十亿行,上百万列 无模式:每行都有一个可排序的主键和任意多的列,列可以根据需要动态的增加,同一张表中不同的行可以有截然不同的列 面向列:面向列存储和权限控制 稀疏:空列并不占用存储空间,可以设计的非常稀疏 数据多版本:每个单元中的数据可以有多个版本,默认情况下版本号自动分配,是单元格插入的时间戳 数据类型单一

Kafka监控之KafkaOffsetMonitor和Kafka Manager

女生的网名这么多〃 提交于 2020-02-26 23:18:30
一. KafkaOffsetMonitor KafkaOffsetMonitor是Kafka的可视化管理与监控工具,可以为Kafka的稳定运维提供高效、可靠、稳定的保障。且程序以jar包的方式运行,部署较为方便。 官网下载jar包(https://github.com/quantifind/KafkaOffsetMonitor) 打开虚拟机并在/usr/local/cluster下创建kafka-offset-console文件夹 [root@cos100 cluster] # mkdir kafka-offset-console 进入kafka-offset-console目录,将下载的jar包上传到此目录下 创建启动脚本文件start.sh并授权,编辑文件添加以下内容 [root@cos100 kafka-offset-console] # touch start.sh [root@cos100 kafka-offset-console] # chmod +x start.sh #!/bin/bash java - cp KafkaOffsetMonitor - assembly - 0 . 4 . 6 - SNAPSHOT . jar \ com . quantifind . kafka . offsetapp . OffsetGetterWeb \ --

4,ZooKeeper原理

心已入冬 提交于 2020-02-26 23:16:04
1,ZooKeeper概述 ··· 作用: · ZooKeeper是为分布式应用程序提供的一个分布式开源协调框架,是Hadoop和Hbase的重要组件; · 主要用于解决分布式集群中应用系统的一致性问题; · 提供了类似于Unix的节点树方式来存储数据; · 可用于维护和监控存储数据的状态变化,从而达到基于数据的集群管理; · 提供了一组原语(机器指令),以及java和C语言的接口。 ··· 特点: · 也是一个分布式集群,一个领导者(leader),多个跟随者(follower)。 · 集群中只要有半数节点存活,ZooKeeper集群就可以正常服务。 · 全局数据一致性:每个server都会保存一份相同到的副本,无论client连接哪个server,数据都是一样的。 · 原子性:一次数据的更新,要么成功要么失败。 · 数据的实时性:在一定时间范围内,client能够读取到最新的数据。 ··· 数据模型: · ZooKeeper中的数据模型与Unix中的文件系统类似都是树形结构。在这个系统中没有文件和目录,而是采用节点 (node)的概念,在这里是 znode;znode既可以保存数据,类似于文件;也可以保存其他znode,类似于目录。 · 一个znode最多存储 1M的数据。 ··· 应用场景: · 同一配置管理 · 同一集群管理 · 节点动态上下线感知 · 软负载均衡 ·

zookeeper的可视化web界面

拟墨画扇 提交于 2020-02-26 23:09:53
转载一篇我心中大神有关zookeeper WEB的文章 以前写过一篇zookeeper集群搭建的文章《烂泥:zookeeper集群搭建》,最近在使用activemq集群过程中碰到了一些有关zookeeper的问题,想通过ui查看zookeeper集群的数据。 找来找去,发现zkui这个ui工具很不错,本篇文章就介绍有关zkui的搭建与配置。 PS:在此我们以Activemq集群的zookeeper集群数据为例。 一、初始化环境 zkui是基于java语言开发,首先就要我们安装jdk环境。 因为zkui需要我们手工进行编译、构建和打包,所以还需要安装maven环境。 有关maven的安装和配置,可以参考这篇文章《烂泥:依赖管理maven3.3安装与配置》。 安装jdk1.7,使用如下命令: wget http://mirrors.linuxeye.com/jdk/jdk-7u80-linux-x64.tar.gz && tar -xf jdk-7u80-linux-x64.tar.gz -C/usr/local/ && chown root:root -R /usr/local/jdk1.7.0_80/ 把jdk加入到环境变量,使用如下命令: cat >> /etc/profile << “EOF” export JAVA_HOME=/usr/local/jdk1.7.0_80

分布式流式处理平台Kafka-简介与体系结构(一)

丶灬走出姿态 提交于 2020-02-26 17:13:34
来源 在技术的发展过程中,与人类世界是一样的一样的。现在的人都非常看重出身,当然这里不是否定出身差的就不能成功,成材。只是概率相对低。这也是现在社会的基本情况,社会阶级的固化,对于一般人只能出现意外才可以打破阶级的壁垒,而且只能是一点一点的打破,一个暴发户短时间内,甚至一代人都不能成为上层阶级。 技术领域也是这种现象,Kafka 起初是LinkedIn公司采用Scala语言开发的一个多分区,多副本且基于Zookeeper协调的分布式消息系统,现已捐献给Apache基金会,成为顶级项目。目前的Kafka已经是一个分布式流式处理平台,因具备高吞吐,可以持久化,可水平扩展,支持流数据处理等多种特性而广泛使用。 从Kafka的背景可以看出,Kafka 出生名门,后又进入最顶级的研究所培育,最终成为当下最热门的分布式流式处理工具。 Kafka 能有当下的地位,出身是一部分,自身又具备那些特点呢? 消息系统 :Kafka 与传统的消息系统(ActiveMQ,RabbitMQ)都具备解耦功能,存储,扩展性,削峰,可恢复性,缓冲,异步通信。Kafka 还具备一些一般消息系统不具备的消息顺序性及快照回溯消费的功能。 存储系统 :Kafka把消息持久化到硬盘,相比于基于内存存储的系统更加可靠,降低数据丢失的风险。Kafka 的持久化和多副本机制,可以把Kafka当作长期存储系统使用。 流式处理平台

Kakfa集群(2.11-0.10.1.0)滚动升级方案

…衆ロ難τιáo~ 提交于 2020-02-26 11:34:47
Kafka集群升级(2.11-0.10.1.0)升级(2.11-0.10.2.2) 官网升级说明: 一、系统环境 Zookeeper集群: 172.16.2.10 172.16.2.11 172.16.2.12 Kafka集群: 172.16.2.10 172.16.2.11 172.16.2.12 现Kafka版本: 2.11-0.10.1.0,安装目录:/usr/local/kafka 计划升级至版本:2.11-0.10.2.2,安装目录:/usr/local/kafka_2.11-0.10.2.2 二、创建测试topic 1.创建测试topic /usr/local/kafka/bin/kafka-topics.sh --zookeeper 172.16.2.10:2181,172.16.2.11:2181,172.16.2.12:2181 --create --replication-factor 3 --partitions 2 --topic first /usr/local/kafka/bin/kafka-topics.sh --zookeeper 172.16.2.10:2181,172.16.2.11:2181,172.16.2.12:2181 --create --replication-factor 2 --partitions 1 --topic

ZooKeeper | 安装部署、应用场景、开发对接API

早过忘川 提交于 2020-02-26 08:19:36
当设计一个分布式系统或微服务架构系统时,一般需要设计和开发一些协调服务。Apache ZooKeeper是一个分布式、开源的分布式应用协调服务,也可理解成一个为分布式应用提供一致性服务的应用程序,主要作用可简化分布式系统搭建及缩短开发周期。ZooKeeper是目前常用的开源解决方案之一。 本文主要针对ZooKeeper的安装部署、应用场景、开发对接API等,作简单入门级整理介绍,方便开发人员后续深入研究。 ZooKeeper是什么? ZooKeeper 作为一个分布式的服务框架,主要用来解决分布式集群中应用系统的一致性问题。提供基于类似于文件系统的目录节点树方式的数据存储,ZooKeeper的作用主要是用来维护和监控存储的数据的状态变化。通过监控这些数据状态的变化,从而可以达到基于数据的集群管理。 ZooKeeper 虽然是一个针对分布式系统的协调服务,但它本身也是一个分布式应用程序。ZooKeeper 遵循一个简单的客户端-服务器模型。 ▲ ZooKeeper 的客户端-服务器架构 ZooKeeper 有一个类似于文件系统的数据模型,由 znodes 组成。 每个 ZooKeeper 服务器还在磁盘上维护了一个事务日志,记录所有的写入请求。 在启动 ZooKeeper 服务时,集合体中的某个节点被选举为领导者;节点数量应该是奇数。 Zookeeper 从设计模式角度来看

Apache kafka原理与特性(0.8V)

我与影子孤独终老i 提交于 2020-02-26 07:03:07
文章目录 一.入门 1.1 简介 Topics/logs Distribution Producers Consumers Guarantees 1.2 Use cases Messaging Websit activity tracking Log Aggregation 二. 设计原理 1.Persistence 2.Efficiency 3. Producer Load balancing Asynchronous send 4.Consumer 5.Message Delivery Semantics 6. Replication 7.Log 8.Distribution 总结: 三.主要配置 1.Broker主要配置 2.Consumer主要配置 3.Producer主要配置 前言: Kafka是一个轻量级的/分布式的/具备replication能力的日志采集组件,通常被集成到应用系统中,收集"用户行为日志"等,并可以使用各种消费终端(consumer)将消息转存到HDFS等其他结构化数据存储系统中.因为日志消息通常为文本数据,尺寸较小,且对实时性以及数据可靠性要求不严格,但是需要日志存储端具备较高的数据吞吐能力,这种"宽松"的设计要求,非常适合使用kafka。 一.入门 1.1 简介 Kafka是一个"分布式的"/“可分区的(partitioned)”/“基于备份的