分布式处理

zookeeper基本知识入门(一)

≯℡__Kan透↙ 提交于 2019-12-27 10:45:55
之前我们在搭建hadoop分布式环境的时候用到过Zookeeper注册hadoop服务。那么到底Zookeeper在分布式环境中发挥了什么作用呢,这次我们就来讨论这个问题。 在分布式系统中通常都会有多台机器构成一个集群来对外提供服务,对外来说有几台机器在提供服务它并不关心,那么对内而言组成集群的机器如何互相协调保持一致这是个问题。Zookeeper将提供这样的一个功能–分布式协调技术。 1. Zookerrper概述 ZooKeeper是一种为分布式应用所设计的高可用、高性能且一致的开源协调服务,它提供了一项基本服务:分布式锁服务。由于ZooKeeper的开源特性,后来我们的开发者在分布式锁的基础上,摸索了出了其他的使用方法:配置维护、组服务、分布式消息队列、分布式通知/协调等。 ZooKeeper性能上的特点决定了它能够用在大型的、分布式的系统当中。从可靠性方面来说,它并不会因为一个节点的错误而崩溃。除此之外,它严格的序列访问控制意味着复杂的控制原语可以应用在客户端上。ZooKeeper在一致性、可用性、容错性的保证,也是ZooKeeper的成功之处,它获得的一切成功都与它采用的协议——Zab协议是密不可分的。 ZooKeeper在实现这些服务时,首先它设计一种新的数据结构——Znode,然后在该数据结构的基础上定义了一些原语,也就是一些关于该数据结构的一些操作

GFS分布式文件存储系统(理论)

自古美人都是妖i 提交于 2019-12-26 14:44:06
GlusterFS概述 GlusterFS简介 •开源的分布式文件系统 •由存储服务器,客户端以及NFS/Samba存储网关组成 •无元数据服务器 RDMA:负责数据传输 GlusterFS的特点 •扩展性和高性能 •高可用性 •全局统一的命名空间 •弹性卷管理 •基于标准协议 GlusterFS术语 •Brick : 存储节点 •Volume : 卷 •FUSE : 内核模块,用户端的交互模块 •VFS : 虚拟端口 •Glusterd : 服务 模块化堆栈架构 •模块化、堆栈式的架构 •通过对模块的组合,实现负责的功能 GlusterFS工作模式 •Application:客户端或应用程序通过GlusterFSync的挂载点访问数据 •VFS:linux系统内核通过VFS API收到请求并处理 •FUSE : VFS 将数据递交给FUSE内核文件系统,fuse文件系统则是将数据通过/dev/fuse设备文件递交给了GlusterFS client端 •GlusterFS Client ; 通过网络将数据传递至远端的GlusterFS Server,并且写入到服务器存储设备上 GlusterFS工作原理 GlusterFS工作流程 弹性HASH算法 •通过HASH算法得到一个32位的整数 •划分为N个连续的子空间,每个空间对应一个Brick •弹性HASH算法的优点 •

1. 初识ZooKeeper。

空扰寡人 提交于 2019-12-26 09:54:40
转自:https://blog.csdn.net/en_joker/article/details/78661466 Apache ZooKeeper是由 Apache Hadoop的子项目发展而来,于2010年11月正式成为了Apache的顶级项目。ZooKeeper为分布式应用提供了高效且可靠的分布式协调服务,提供了诸如统一命名服务、配置管理和分布式的基础服务。在解决分布式数据一致性方面,ZooKeeper并没有直接采用Paxos算法,而是采用了一种被称为ZAB(ZooKeeper Atomic Broadcast)的一致性协议。 ZooKeeper是一个开放源代码的分布式协调服务,由知名互联网公司雅虎创建,是Google Chubby的开源实现。ZooKeepter的设计目标是将那些复杂且容易出错的分布式一致性服务封装起来,构成一个高效可靠的原语集,并以一系列简单易用的接口提供给用户使用。 ZooKeeper是什么 ZooKeeper是一个典型的分布式数据一致性的解决方案,分布式应用程序可以基于它实现诸如数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理、Master选举、分布式锁和分布式队列等功能。ZooKeeper可以保证如下分布式一致性特性。 顺序一致性 原子性 单一视图(Single System Image) 可靠性 实时性 ZooKeeper的设计目标

GFS分布式文件系统集群(理论篇)

ぃ、小莉子 提交于 2019-12-26 01:01:35
GlusterFS概述 GlusterFS简介 开源的分布式文件系统 由存储服务器,客户端以及NFS/Samba存储网关组成 无元数据服务器 GlusterFS的特点 扩展性和高性能 高可用性 全局统一的命名空间 弹性卷管理 基于标准协议 GlusterFS术语 Brick : 存储节点 Volume : 卷 FUSE : 内核模块,用户端的交互模块 VFS : 虚拟端口 Glusterd : 服务 模块化堆栈架构 模块化、堆栈式的架构 通过对模块的组合,实现负责的功能 GlusterFS工作模式 GlusterFS工作流程 Application:客户端或应用程序通过GlusterFSync的挂载点访问数据 VFS:linux系统内核通过VFS API收到请求并处理 FUSE : VFS 将数据递交给FUSE内核文件系统,fuse文件系统则是将数据通过/dev/fuse设备文件递交给了GlusterFS client端 GlusterFS Client ; 通过网络将数据传递至远端的GlusterFS Server,并且写入到服务器存储设备上 弹性HASH算法 通过HASH算法得到一个32位的整数 划分为N个连续的子空间,每个空间对应一个Brick 弹性HASH算法的优点 保证数据平均分布在每一个Brink中 解决了对元数据服务器的依懒,进而解决了单点故障以及访问瓶颈

分布式缓存Redis使用心得

我的未来我决定 提交于 2019-12-25 13:32:51
一、缓存在系统中用来做什么 1. 少量数据存储,高速读写访问。通过数据全部in-momery 的方式来保证高速访问,同时提供数据落地的功能,实际这正是Redis最主要的适用场景。 2. 海量数据存储,分布式系统支持,数据一致性保证,方便的集群节点添加/删除。Redis3.0以后开始支持集群,实现了半自动化的数据分片,不过需要smart-client的支持。 二、从不同的角度来详细介绍redis 网络模型:Redis使用单线程的IO复用模型,自己封装了一个简单的AeEvent事件处理框架,主要实现了epoll、kqueue和select,对于单纯只有IO操作来说,单线程可以将速度优势发挥到最大,但是Redis也提供了一些简单的计算功能,比如排序、聚合等,对于这些操作,单线程模型实际会严重影响整体吞吐量,CPU计算过程中,整个IO调度都是被阻塞住的。 内存管理:Redis使用现场申请内存的方式来存储数据,并且很少使用free-list等方式来优化内存分配,会在一定程度上存在内存碎片,Redis跟据存储命令参数,会把带过期时间的数据单独存放在一起,并把它们称为临时数据,非临时数据是永远不会被剔除的,即便物理内存不够,导致swap也不会剔除任何非临时数据(但会尝试剔除部分临时数据),这点上Redis更适合作为存储而不是cache。 数据一致性问题:在一致性问题上

GlusterFS分布式文件系统概述

≯℡__Kan透↙ 提交于 2019-12-24 18:26:39
博文目录 一、GlusterFS概述 1、GlusterFS的特点 2、GlusterFS术语 3、模块化堆栈式架构 二、GlusterFS的工作原理 1、GlusterFS的工作流程 2、弹性HASH算法 三、GlusterFS的卷类型 1、分布式卷 2、条带卷 3、复制卷 4、分布式条带卷 5、分布式复制卷 一、GlusterFS概述 GlusterFS是一个开源的分布式文件系统,同时也是Scale-Out存储解决方案Gluster的核心,在存储数据方面有强大的横向扩展能力,通过扩展不同的节点可以支持PB级别的存储容量。GlusterFS借助TCP/IP或InfiniBand RDMA网络将分散的存储资源汇聚在一起,同一提供存储服务,并使用单一全局命令空间来管理数据。GlusterFS基于可堆叠的用户空间以及无元的设计,可为各种不同的数据负载提供优异的性能。 GlusterFS主要由存储服务器、客户端及NFS/Samba存储网关(可选,根据需要选择使用)组成。GlusterFS架构中最大的设计特点就是没有元数据服务器组件,这有助于提升整个系统的性能、可靠性和稳定性。传统的分布式文件系统大多通过元服务器来存储元数据,元数据包含存储节点上的目录信息、目录结构等,这样的设计在浏览目录时效率非常高,但是也存在一些缺陷,如单点故障,一旦元数据服务器出现故障,即使节点具备再高的冗余性

【架构】分布式追踪系统设计与实现

最后都变了- 提交于 2019-12-23 18:40:08
分布式追踪系统 使用 Zipkin 和 Brave 实现分布式系统追踪(基础篇) - 推酷 OpenZipkin · A distributed tracing system Twitter zipkin 分布式跟踪系统的设计与实现 - 马宏的世界 - 博客频道 - CSDN.NET openzipkin/brave: Java distributed tracing implementation compatible with Zipkin backend services. openzipkin/zipkin: Zipkin is a distributed tracing system zipkin - liaokailin的专栏 - 博客频道 - CSDN.NET #研发解决方案介绍#Tracing(鹰眼) - 旁观者 - 博客园 分布式系统为什么需要 Tracing? 先介绍一个概念: 分布式跟踪 ,或 分布式追踪 。 电商平台由数以百计的分布式服务构成,每一个请求路由过来后,会经过多个业务系统并留下足迹,并产生对各种Cache或DB的访问,但是这些分散的数据对于问题排查,或是流程优化都帮助有限。对于这么一个跨进程/跨线程的场景,汇总收集并分析海量日志就显得尤为重要。 要能做到追踪每个请求的完整调用链路,收集调用链路上每个服务的性能数据,计算性能数据和比对性能指标(SLA

Zookeeper详解-概述(一)

女生的网名这么多〃 提交于 2019-12-23 10:25:16
ZooKeeper是一种分布式协调服务,用于管理大型主机。在分布式环境中协调和管理服务是一个复杂的过程。ZooKeeper通过其简单的架构和API解决了这个问题。ZooKeeper允许开发人员专注于核心应用程序逻辑,而不必担心应用程序的分布式特性。 ZooKeeper框架最初是在“Yahoo!"上构建的,用于以简单而稳健的方式访问他们的应用程序。 后来,Apache ZooKeeper成为Hadoop,HBase和其他分布式框架使用的有组织服务的标准。 例如,Apache HBase使用ZooKeeper跟踪分布式数据的状态。 先来介绍一下分布式: 分布式应用 分布式应用可以在给定时间(同时)在网络中的多个系统上运行,通过协调它们以快速有效的方式完成特定任务。通常来说,对于复杂而耗时的任务,非分布式应用(运行在单个系统中)需要几个小时才能完成,而分布式应用通过使用所有系统涉及的计算能力可以在几分钟内完成。 通过将分布式应用配置为在更多系统上运行,可以进一步减少完成任务的时间。分布式应用正在运行的一组系统称为 集群 ,而在集群中运行的每台机器被称为 节点 。 分布式应用有两部分, Server(服务器) 和 Client(客户端) 应用程序。服务器应用程序实际上是分布式的,并具有通用接口,以便客户端可以连接到集群中的任何服务器并获得相同的结果。

GFS分布式文件系统集群(理论)

放肆的年华 提交于 2019-12-23 02:14:37
GlusterFS概述 1、GlusterFS简介 (1)开源的分布式文件系统 (2)由存储服务器、客户端以及NFS/Samba存储网关组成 (3)无元数据服务器(数据传输组件RDMA) (4)GlusterFS特点:扩展性、高性能、高可用性 (5)全局统一命名空间 (6)弹性卷 管理---->云的特性:水平(实例数)、垂直(硬件性能),包括ECS(虚拟)、OSS和RDS(裸金属) (7)基于标准协议 2、GlusterFS术语 (1)Brick(节点) (2)Volume(卷) (3)FUSE(用户端交互模块) (4)VFS(虚拟化文件系统) (5)Glusterd(服务) 3、模块化堆栈式架构 (1)模块化、堆栈式的架构 (2)通过对模块的组合,实现复杂的功能 GlusterFS工作原理 1、GlusterFS工作流程 2、弹性HASH算法 (1)通过HASH算法得到一个32位的整数 (2)划分为N个连续的子空间,每个空间对应一个Brick (3)弹性HASH算法的优点: ☀保证数据平均分布在每一个Brick中 ☀解决了对元数据服务器的依赖,进而解决了单点故障以及访问瓶颈 GlusterFS的卷类型 1、分布式卷 ●没有对文件进行分块处理 ●通过扩展文件属性保存HASH值 ●支持的底层文件系统有ext3、ext4、 ZFS、 XFS等 (1)分布式卷具有如下特点:

分布式系统学习总结

微笑、不失礼 提交于 2019-12-22 04:50:01
前言 随着大型网站的各种高斌发访问、海量数据处理等场景越来越多,如何实现网站的高可用、易伸缩、可扩展、安全等目标就显得越来越重要。为了解决这样一系列问题。大型网站的架构也在不断发展。提高大型网站的高可用架构,就不得不提 分布式系统(Distributed Systems) 。下面说一下分布式系统及其相关的概念 在学习分布式系统之前,先了解一下与之相对应的集中式系统是什么样的。 集中式系统 集中式系统,主要指IBM、HP一个主机带多个终端。终端没有数据处理能力,仅负责数据的录入和输出。而运算、存储等全部在主机上进行,也就是我们平常说的单机服务器。 集中式系统的最大特点就是不熟结构非常简单,底层一般采用IBM、HP等厂商购买的昂贵的大型主机。因此无需要考虑如何对服务进行多节点的部署,也就不用考虑各节点的分布式协作问题。但是,由于采用单机部署、和可能带来系统大而复杂、难于维护、发生单点故障(单个点发生故障的时候会波及到整个系统或者网络,从而导致整个系统或者网络的瘫痪)、扩展性差等问题。 说完集中式系统,再来说一个与分布式很相似的概念-集群 集群 集群是一组独立的计算机系统构成一个松耦合的多处理器系统,它们之间通过网络实现进程间的通信。用来提供比集中式系统更具扩展性与可用性的服务平台。集群有两个关键的特性: 可扩展性,集群的性能不限于单一的服务实体,新的服务实体可以动态地添加到集群