CAP碎碎念
整个2017年都在搞大数据平台,完全远离了机器学习,甚至都不记得写过类似ETL的job。
从数据到平台,从业务处理到基础服务。
Metrics的收集,报警,生成报表。Data pipeline的准确性,性能。Job的提交,资源分配。分布式组件的部署,运维。
同时也参与了一个portal的开发,管理分布在全球各地的clusters。
大数据的服务:存储,计算,传输,search等等基本都是分布式的,每种服务的组件都有很多,不管是商业的还是开源的,都是围绕着C(Consistency)A(Availability)P(Partition-Tolerance)理论,CP,AP各有所长。
具体的实现上,可以说是五花八门,不过本质思想也基本类似,比如为了实现C(Consistency), 争取保证每个node上每步的操作都一致:要么都做,要么都不做。为了达到这个目的以及conver各种极端情况(比如,接收方在接收之后commit之前down了)有2阶段提交,3阶段提交,Paxos等算法的实现。
虽然各种服务的各种组件处理的业务和实现的方法不同,但大都包括分partition,选master, 副本备份,服务发现,请求响应等几个功能。
Partition是分布式系统的最主要特征,即是承载数据大体量的保证,又而实现分而治之。hdfs的block, hbase的region,elasticsearch的shard,kafka干脆就叫partition,清晰明了。有个Partition必然会出现有的partition会挂掉的情况,即绕不过P(Partition-Tolerance)。
分了partition就要加强管理,所以基本上分布式系统中都有master role,存储meta data, 处理一些环境相关的问题。有了master role,那就得投票选出来谁是master。从而引出了选master的问题,比如脑裂。毕竟选master的过程也是会有极端情况的。为了防治选master的过程,又引出了定义什么时候可选,谁有资格投选票,有资格的选的太多,选举过程可能就会冗长,会影响到系统的A(Availability),即AP的问题。当然也有不选master的所谓的去中心化的组件,比如cassandra, 不过没有中心之后,每个node都可以做同样的事情,是不是也可以称为个个都是中心?毕竟gossip协议让每个node都拿到同样的配置信息。
因为是分布式的,所以在多台node上备多份。有了多个备份之后,所以又会分leader partition(prime shard)与replic partition,从而引出主被之间的数据同步问题,就会涉及到CP的问题。比如kafka的Highwatermark, 必须保证所有ISR节点都复制了的备份文件,才能被consumer消费到。ES的doc在没有被复制到replic shard的时候,却依旧可以被search到。不同的设计其实就是在根据service的特性权衡AP。
CAP碎碎念的更多相关文章
- Linux碎碎念
在学习Linux过程中,有许多有用的小技巧.如果放在纸质的笔记本上,平时查阅会相当不方便.现在以一种“碎碎念”的方式,汇集整理在此,目前还不是很多,但随着学习.工作的深入,后续会陆陆续续添加更多的小技 ...
- 一些关于Linux入侵应急响应的碎碎念
近半年做了很多应急响应项目,针对黑客入侵.但疲于没有时间来总结一些常用的东西,寄希望用这篇博文分享一些安全工程师在处理应急响应时常见的套路,因为方面众多可能有些杂碎. 个人认为入侵响应的核心无外乎四个 ...
- 一个谷粉和3年的Google Reader重度使用者的碎碎念
2013-03-14 上午看到Andy Rubin辞去Android业务主管职务.由Chrome及应用高级副总裁继任的新闻,还在想这会给Android带来什么,中午刷微博的时候就挨了当头一棒:Goog ...
- Jerry的碎碎念:SAPUI5, Angular, React和Vue
去年我去一个国内客户现场时,曾经和他们IT部门的一位架构师聊到关于在SAP平台上进行UI应用的二次开发时,UI框架是选用UI5还是Vue这个话题. 我们代表SAP, 向客户推荐使用UI5是基于以下六点 ...
- 结对编程ending-我和洧洧的碎碎念
应该是第一次和队友分工合作去完成一个项目,其中也经历了跳进不少坑又被拉回来的过程,总体来说这对于我俩也的确是值得纪念的一次经历. 我的碎碎念时间…… 对比个人项目和结对编程项目二者需求,前者重在面对不 ...
- C语言 · 分分钟的碎碎念
算法提高 分分钟的碎碎念 时间限制:1.0s 内存限制:256.0MB 问题描述 以前有个孩子,他分分钟都在碎碎念.不过,他的念头之间是有因果关系的.他会在本子里记录每一个念头,并用 ...
- 最近关于Qt学习的一点碎碎念
最近关于Qt学习的一点碎碎念 一直在使用Qt,但是最近对Qt的认识更加多了一些.所以想把自己的一些想法记录下来. Qt最好的学习资料应该是官方的参考文档了.对Qt的每一个类都有非常详细的介绍.我做了一 ...
- Java实现 蓝桥杯VIP 算法提高 分分钟的碎碎念
算法提高 分分钟的碎碎念 时间限制:1.0s 内存限制:256.0MB 问题描述 以前有个孩子,他分分钟都在碎碎念.不过,他的念头之间是有因果关系的.他会在本子里记录每一个念头,并用箭头画出这个念头的 ...
- MySQL碎碎念
1. 如何修改Mysql的用户密码 mysql> update mysql.user set password=password('hello') where user='root'; mysq ...
随机推荐
- SharePoint 2010/2013 隐藏的速度下拉菜单列表项
SharePoint 2010/2013 隐藏的速度下拉菜单列表项 有时为了防止一些用户编辑列表项.需要隐藏下拉菜单列表项.,仅仅须要添加一个内容编辑器控件,将css代码写入其HTML ...
- java获取本机IP地址,非127.0.0.1
综合了网上找的代码,整理的,Windows和Linux都可以用. private static String getHostIp(){ try{ Enumeration<NetworkInter ...
- Session Redis Nginx
Session + Redis + Nginx 一.Session 1.Session 介绍 我相信,搞Web开发的对Session一定再熟悉不过了,所以我就简单的介绍一下. Session:在计算机 ...
- ik_max_word ik_smart
打开 ~/es_root/config/elasticsearch.yml 文件,加入以下配置: index: analysis: analyzer: ik_syno: type: custom to ...
- 数学概念 —— 奇异性(Singularity,Vertical tangent)
0. 基本定义 Singularity (mathematics) 数学上的奇异性一般是指,函数在该点未定义(not defined,比如取值为无穷),或者不可微(fails to be well-b ...
- Spring boot参考指南
介绍 转载自:https://www.gitbook.com/book/qbgbook/spring-boot-reference-guide-zh/details 带目录浏览地址:http://ww ...
- winform - FixedDialog
可以设置form的属性: 窗口样式: MaximizeBox : false 去掉 方法 按钮 MinimizeBox : false 去掉 缩小到任务栏 的按钮 禁止 ...
- QT之二级菜单(二级菜单的箭头可以使用QSS设置图片)
QT之二级菜单 QT之二级菜单 开场白 效果图 上代码 可参考文章 下代码 结尾 开场白 今天我们一起来了解下,在我们QT中,二级菜单是如何实现的,在上篇我们学习了QT之系统托盘,QT之自定义菜单, ...
- 联合概率(joint probability)、分布函数(distribution function)
0. PMF 与 PDF 的记号 PMF:PX(x) PDF:fX(x) 1. 联合概率 联合概率:是指两个事件同时发生的概率. P(A,B)=P(B|A)⋅P(A)⇒P(B|A)=P(A,B)P(A ...
- Plugin execution not covered by lifecycle configuration
Eclipse 环境 在工作空间 \.metadata\.plugins\org.eclipse.m2e.core\ 目录下 增加 lifecycle-mapping-metadata.xml 文件 ...