集群技术

Zookeeper-deploy

心已入冬 提交于 2020-04-08 03:21:35
一、概述 1.1、简介 Zookeeper是一个开源的,分布式的,为分布式应用提供协调服务的Apache项目 1.2、工作机制 Zookeeper从设计模式角度来理解:是一个基于观察者模式设计的分布式服务管理框架,它负责存储和管理大家都关心的数据,然后接受观察者的注册,一旦这些数据的状态发生变化Zookeeper就将负责通知已经在Zookeeper.上注册的那些观察者做出相应的反应。 1.3、特点 1) Zookeeper: 一个领导者(Leader) ,多个跟随者(Follower) 组成的集群。 2)集群中只要有半数以上节点存活,Zookeeper集群就能正常服务。 3)全局数据一致:每个Server保存一份相同的数据副本,Client无论 连接到哪个Server,数据都是一致的。 4)更新请求顺序进行,来自同一个Client的更新请求按其发送顺序依次执行。 5)数据更新原子性,一次数据更新要么成功,要么失败。 6)实时性,在一定时间范围内,Client能读到最新数据。 1.4、数据结构 ZooKeeper数据模型的结构与Unix文件系统很类似,整体上可以看作是一棵树,每个节点称做一个ZNode。每一个ZNode默认能够存储1MB的数据,每个ZNode都可以通过其路径唯一标识。 znode一共有4种类型:持久的(persistent)、临时的 (ephemeral)、持久有序的

vivo 大规模特征存储实践

扶醉桌前 提交于 2020-04-08 00:18:18
本文首发于 vivo互联网技术 微信公众号 链接: https://mp.weixin.qq.com/s/u1LrIBtY6wNVE9lzvKXWjA 作者:黄伟锋 本文旨在介绍 vivo 内部的特征存储实践、演进以及未来展望,抛砖引玉,吸引更多优秀的想法。 一、需求分析 AI 技术在 vivo 内部应用越来越广泛,其中特征数据扮演着至关重要的角色,用于离线训练、在线预估等场景,我们需要设计一个系统解决各种特征数据可靠高效存储的问题。 1. 特征数据特点 (1)Value 大 特征数据一般包含非常多的字段,导致最终存到 KV 上的 Value 特别大,哪怕是压缩过的。 (2)存储数据量大、并发高、吞吐大 特征场景要存的数据量很大,内存型的 KV(比如 Redis Cluster)是很难满足需求的,而且非常昂贵。不管离线场景还是在线场景,并发请求量大,Value 又不小,吞吐自然就大了。 (3)读写性能要求高,延时低 大部分特征场景要求读写延时非常低,而且持续平稳,少抖动。 (4)不需要范围查询 大部分场景都是单点随机读写。 (5)定时灌海量数据 很多特征数据刚被算出来的时候,是存在一些面向 OLAP 的存储产品上,而且定期算一次,希望有一个工具能把这些特征数据及时同步到在线 KV 上。 (6)易用 业务在接入这个存储系统时,最好没有太大的理解成本。 2. 潜在需求 扩展为通用磁盘

大型网站技术架构——网站架构的伸缩性设计

眉间皱痕 提交于 2020-04-06 22:45:28
首先,所谓网站的伸缩性,指 不需要改变网站的软硬件设计,仅仅通过改变部署的服务器数量就可以扩大或者缩小网站的服务处理能力 。在整个互联网行业的发展渐进演化中,最重要的技术就是 服务器集群 ,通过不断地向集群中添加服务器来增强整个集群的处理能力。 一、网站架构的伸缩性设计 1.1 不同功能进行物理分离实现伸缩   (1)纵向分离:将业务处理流程上得不同部分分离部署,实现系统的伸缩性;   (2)横向分离:将不同的业务模块分离部署,实现系统的伸缩性; 1.2 单一功通过集群规模实现伸缩   使用服务器集群,即将相同服务部署在多台服务器上构成一个集群整体对外提供服务。具体来说,集群伸缩性又分为应用服务器集群伸缩性和数据服务器集群伸缩性。这两种集群对于数据状态管理的不同,技术实现也有很大的区别。  It is said that 当一头牛拉不动车的时候,不要去寻找一头更强壮的牛,而是用两头牛来拉车 。 二、应用服务器集群的伸缩性设计 2.1 应用服务器那点必须知道的事儿   (1)应用服务器应该被设计成 无状态 的,即应用服务器不存储请求上下文信息;构建集群后,每次用户的请求都可以发到集群中任意一台服务器上处理,任何一台服务器的处理结果都是相同的;   (2)HTTP本身是一个无状态的连接协议,为了支持客户端与服务器之间的交互,我们就需要通过不同的技术为交互存储状态

亲历者说:Kubernetes API 与 Operator,不为人知的开发者战争

你离开我真会死。 提交于 2020-04-06 22:03:32
原创作者:张磊、邓洪超 如果我问你,如何把一个 etcd 集群部署在 Google Cloud 或者阿里云上,你一定会不假思索的给出答案:当然是用 etcd Operator! 实际上,几乎在一夜之间,Kubernetes Operator 这个新生事物,就成了开发和部署分布式应用的一项事实标准。时至今日,无论是 etcd、TiDB、Redis,还是 Kafka、RocketMQ、Spark、TensorFlow,几乎每一个你能叫上名字来的分布式项目,都由官方维护着各自的 Kubernetes Operator。而 Operator 官方库里,也一直维护着一个知名分布式项目的 Operator 汇总。 https://github.com/operator-framework/awesome-operators 短短一年多时间,这个列表的长度已经增长了几十倍。 而且更有意思的是,如果你仔细翻阅这个 Operator 列表,你就不难发现这样一个有趣的事实:现今 Kubernetes Operator 的意义,恐怕已经远远超过了“分布式应用部署”的这个原始的范畴,而已然成为了容器化时代应用开发与发布的一个全新途径。所以,你才会在这个列表里看到,Android SDK 的开发者们,正在使用 Operator “一键”生成和更新 Android 开发环境;而 Linux 系统工程师们

HBase中的备份和故障恢复方法

不打扰是莪最后的温柔 提交于 2020-04-06 12:43:19
本文将对Apache HBase可用的数据备份机制和大量数据的故障恢复/容灾机制做简要介绍。 随着HBase在重要的商业系统中应用的大量添加,很多企业须要通过对它们的HBase集群建立健壮的备份和故障恢复(backup and disaster recovery, BDR)机制来保证它们的企业(数据)资产。 HBase和Apache Hadoop系统提供了很多内置的机制,能够高速而轻松的完毕PB级数据的备份和恢复工作。 在这篇文章中,你将会对在HBase中可用的数据备份机制有一个高层次的简要了解,而且知道多种数据恢复/容灾机制。在阅读了这篇文章之后,你应该能对你的业务须要那种BDR策略有了自己的推断。 你也应该明确各种机制各自的优缺点(适用于CDH 4.3.0/HBase 0.94.6及更高版本号)。 备份 HBase是一个基于LSM树(log-structured merge-tree)的分布式数据存储系统,它使用复杂的内部机制确保数据准确性、一致性、多版本号等。因此。你怎样获取数十个region server在HDFS和内存中的存储的众多HFile文件、WALs(Write-Ahead-Logs)的一致的数据备份? 让我们从最小的破坏性,最小的数据占用空间,最小的性能要求机制和工作方式到最具破坏性的逐一讲述: Snapshots Replication Export

五分钟学后端技术:一篇文章教你读懂大数据技术栈!

青春壹個敷衍的年華 提交于 2020-04-06 08:22:52
作者:网易云 链接: https://www.zhihu.com/question/27696290/answer/381993207 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 什么是大数据 近几年,市场上出现了很多和大数据相关的岗位,不管是数据分析、数据挖掘,或者是数据研发,都是围绕着大数据来做事情,那么,到底什么是大数据,就是我们每一个要学习大数据技术的朋友要了解的事情了,根据百度百科的介绍 大数据(big data),IT行业术语,是指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。 在维克托·迈尔-舍恩伯格及肯尼斯·库克耶编写的《大数据时代》 [1] 中大数据指不用随机分析法(抽样调查)这样捷径,而采用所有数据进行分析处理。大数据的5V特点(IBM提出):Volume(大量)、Velocity(高速)、Variety(多样)、Value(低价值密度)、Veracity(真实性)。 [2] 思维导图 大数据方面核心技术有哪些? 大数据的概念比较抽象,而大数据技术栈的庞大程度将让你叹为观止。 大数据技术的体系庞大且复杂,基础的技术包含数据的采集、数据预处理、分布式存储、NoSQL数据库、数据仓库、机器学习、并行计算

五分钟学后端技术:如何学习分布式系统和相关技术

倾然丶 夕夏残阳落幕 提交于 2020-04-06 05:21:46
转载自 https://www.cnblogs.com/wetest/p/6806506.html 和 https://www.cnblogs.com/dudu0614/p/8821811.html 什么是分布式系统 分布式这一概念,一直都是后端工程师绕不过去的一个坎,今天,我们就一起来看看到底什么是分布式系统,又有哪些分布式技术世我们需要学习的。 根据百度百科的介绍,分布式系统(distributed system)是建立在网络之上的软件系统。正是因为软件的特性,所以分布式系统具有高度的内聚性和透明性。因此,网络和分布式系统之间的区别更多的在于高层软件(特别是操作系统),而不是硬件。 从分布式系统的诞生说起 我们常常会听说,某个互联网应用的服务器端系统多么牛逼,比如QQ、微信、淘宝。那么,一个互联网应用的服务器端系统,到底牛逼在什么地方?为什么海量的用户访问,会让一个服务器端系统变得更复杂?本文就是想从最基本的地方开始,探寻服务器端系统技术的基础概念。 承载量是分布式系统存在的原因 当一个互联网业务获得大众欢迎的时候,最显著碰到的技术问题,就是服务器非常繁忙。当每天有1000万个用户访问你的网站时,无论你使用什么样的服务器硬件,都不可能只用一台机器就承载的了。因此,在互联网程序员解决服务器端问题的时候,必须要考虑如何使用多台服务器,为同一种互联网应用提供服务,这就是所谓

Kubernetes从小白到CKA系列

大城市里の小女人 提交于 2020-04-05 23:01:49
本文大部分是原理,后期打算开个专栏,咱也玩玩知识付费~ 一、发展史 在云计算领域有几个很常见的词汇:IaaS、PaaS、SaaS。IaaS就是基础平台即服务,国内有阿里云等;PaaS是平台即服务,在早些时候新浪云SAE较为有名;SaaS就是软件即服务,最大的Office厂商MS的Office365就是一个很好的代表。在最开始的时候PaaS基本就是人肉运维,慢慢的又出现了一系列的自动化工具,再后来专门做PaaS的一家公司创造了Docker。Docker变成了PaaS的一个标准,但是随着容器化的发展也出现了一系列的问题。容器化后容器的映射关系变得异常艰难,而且这仅仅是容器化发展的一个小小的问题。那么随着容器化的步伐,衍生出了一些列的资源管理器,最开始是Apache Mesos,Mesos由加州的伯克利大学研发出来,随后被推特选中,大规模的在推特盛行。在2019年5月,特推在旧金山开展了技术发布会,在该会上产品负责人宣布推特以后全部使用Kubernetes。第二款资源管理软件是Docker自家推出的Docker Swarm平台。Docker Swarm是一个非常轻量的资源管理平台。但是Swarm功能较为简单,而且国内云厂商阿里云在2019年7月宣布在选择资源管理框架的时候不支持Swarm,默认Kubernetes

通过Portworx在AWS上运行高可用SQL Server容器

|▌冷眼眸甩不掉的悲伤 提交于 2020-04-05 15:45:01
通过Portworx云原生存储,在Amazon EKS里运行高可用SQL Server容器 在本文我们将分析,如何使用Amazon Elastic Container Service for Kubernetes (Amazon EKS, https://amazonaws-china.com/eks/),来在容器中部署Microsoft SQL Server。文中讨论的方式和与原理,也适用于其他需要高可用和持久性、并符合可复用的DevOps方式的有状态应用。例如运行MongoDB、Apache Cassandra、MySQL、或者大数据处理等。 首先能够被支持在容器中运行的是SQL Server 2017版本。我们可以在Linux容器中,使用Kubernetes (https://amazonaws-china.com/kubernetes/)来运行SQL Server生产负载。 Microsoft SQL Server是被广泛使用的数据库。SQL Server提供一系列很不错的功能,也有很不错的开发者社区。但是它需要比较多的运维,也比开源的或者云端的数据库成本要更高。很多为了降低成本的用户会转向开源方案来降低软件授权的成本。另一些用户会迁移工作负载到关系数据库管理系统(RDBMS)服务里,比如Amazon RDS for Microsoft SQL Server或者Amazon

ML平台_小米深度学习平台的架构与实践

让人想犯罪 __ 提交于 2020-04-03 22:12:18
( 转载: http://www.36dsj.com/archives/85383 )机器学习与人工智能,相信大家已经耳熟能详,随着 大规模标记数据的积累 、 神经网络算法的成熟 以及 高性能通用GPU的推广 ,深度学习逐渐成为计算机专家以及大数据科学家的研究重点。近年来,无论是 图像的分类 、 识别和检测 ,还是 语音生成、自然语言处理 ,甚至是AI下围棋或者打游戏都基于深度学习有了很大的突破。而随着 TensorFlow、Caffe 等开源框架的发展,深度学习的门槛变得越来越低,甚至初中生都可以轻易实现一个图像分类或者自动驾驶的神经网络模型,但目前最前沿的成果主要还是出自Google、微软等巨头企业。 Google不仅拥有优秀的人才储备和大数据资源,其得天独厚的基础架构也极大推动了AI业务的发展,得益于内部的 大规模集群调度系统Borg ,开发者可以快速申请大量GPU资源进行模型训练和上线模型服务,并且 通过资源共享和自动调度保证整体资源利用率也很高 。Google开源了TensorFlow深度学习框架,让开发者可以在本地轻易地组合MLP、CNN和RNN等模块实现复杂的神经网络模型, 但TensorFlow只是一个数值计算库,并不能解决资源隔离、任务调度等问题,将深度学习框架集成到基于云计算的基础架构上将是下一个关键任务 。 除了Google、微软,国内的百度也