大数据日知录 - 算法与数据结构 - 1

Bloom Filter

BF高教的表征数据集合,时间和空间效率极高。使用长度为m的位数组A来存储集合信息,使用k个相互独立的哈希函数将数据映射到为数组空间。对于集合中的成员a,将其进行k次哈希,哈希结果为x,则将位数组的第x位设置为1,最多有w<=k位会被设置为1. 如果需要判断某个成员是否在S中出现,只需要看hash国有w位中有没有出现0即可。

BF会发生误判,不在集合中的数据被判定成了在集合中,因为a1和a2设置的位可能刚好覆盖了a3的所有哈希位。但不会发生错判。

最优的哈希函数个数为m/n * ln(2).

改进BF: 计数BF.

应用:如恶意url判断,爬虫对url时候爬过的判断,BigTable中用BF来查询key cache ,如果出现误判,在实际存储中查不到,顶多再实际访问一次硬盘,极大提高了访问效率。

Skip List

可替代平衡树的数据结构,依靠随机生成数以一定概率来保持数据的平痕分布。插入,删除,查找的福再度都是o(log(n)).

传统的有序链表查找需要遍历。对每个节点都增加一个指针,指向后续节点之后的节点,这样查询的时候就可以加快访问速度。

Search:
大专栏  大数据日知录 - 算法与数据结构 - 1131218151419953?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaWN0MjAxNA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="image"/>

Insert & Delete

当增加到3个或更多指针时,查询效率进一步提高。skiplist依赖随机数来保持平衡,插入即电视,随机决定该节点有多个指向后续节点的指针。

LSM树

Log-Structured Merge Tree,将大量随机写变成批量的顺序写,非常适合写操作要求高的场景。
BigTable中的单机数据引擎本质上就是LSM树。Cassandra也用了LSM树。

LSM树原理把一棵大树拆分成N棵小树,它首先写入内存中,随着小树越来越大,内存中的小树会flush到磁盘中,磁盘中的树定期可以做merge操作,合并成一棵大树,以优化读性能。写入内存是同时写入log到硬盘上,防止系统崩溃时数据丢失。内存表中通常使用SkipList,保持数据有序,当内存够大时,写入到磁盘。

Level DB, classic LSM

Reference: http://www.cnblogs.com/haippy/archive/2011/12/04/2276064.html

原文地址:https://www.cnblogs.com/wangziqiang123/p/11711066.html

时间: 2024-10-05 03:36:44

大数据日知录 - 算法与数据结构 - 1的相关文章

大数据日知录:架构与算法

大数据丛书 大数据日知录:架构与算法(大数据领域专家力作,专注大数据架构和算法,全面梳理大数据相关技术) 张俊林 著   ISBN 978-7-121-24153-6 2014年9月出版 定价:69.00元 404页 16开 编辑推荐 这是一本心血之作,历时3年,质量上乘. 从架构与算法的角度,比较全面地分门别类梳理了大数据相关技术. 本书内容紧跟技术前沿,讲解深入浅出,适合大数据领域所有技术人员. 书中还列有作者优选的高质量文献,能为读者节省选择的时间,绝对值得一读. 内容提要 大数据是当前最

大数据日知录:架构与算法 笔记

大数据日知录:架构与算法 跳转至: 导航. 搜索 目录 1 当谈论大数据时我们在谈论什么 2 数据分片与路由 3 数据复制与一致性 4 大数据常用算法与数据结构 5 集群资源管理与调度 6 分布式协调系统 7 分布式通信 8 数据通道 9 分布式文件系统 10 内存KV 11 列式数据库 12 大规模批处理 13 流式计算 14 交互式数据分析 15 图数据库 16 机器学习:范型与架构 17 机器学习:分布式算法* 18 增量计算 19 附录A 硬件体系结构及常用性能指标 20 附录B 大数据

读&lt;大数据日知录:架构与算法&gt;有感

前一段时间, 一个老师建议我可以学学 '大数据' 和 '机器学习', 他说这必然是今后的热点, 学会了, 你就是香饽饽.在此之前, 我对大数据, 机器学习并没有很深的认识, 总觉得它们是那么的缥缈, 高不可攀, 也没想着深入学习.之后, 一次偶然的机会, 在csdn官方博客上看到了这样的一个活动 [置顶] 话题讨论&征文--谈论大数据时我们在谈什么 于是, 从下载试读样章, 到正式读书, 开始了学习大数据的过程... 到今天, 差不多两周过去了, 马马虎虎过了一遍, 感触颇多. 下面简单评价下我

《大数据日知录:架构与算法》试读

时代背景 记得CSDN之前有篇文章描写叙述了大数据成功预測了美国大选,"大数据"并不真正关心谁来当选下一届美国总统.只是全部的数据都显示:政治科学家和其它人相关人士都觉得奥巴马获得连任可能性比較大.本次的成功预言,展示了大数据强大的能量. 众所周知.企业数据本身就蕴藏着价值.可是将实用的数据与没有价值的数据进行区分看起来可能是一个棘手的问题. 显然,您所掌握的人员情况.工资表和客户记录对于企业的运转至关重要.可是其它数据也拥有转化为价值的力量.一段记录人们怎样在您的商店浏览购物的视频.

《大数据日知录:架构与算法》前言

   <大数据日知录:架构与算法>前言 像移动互联网.O2O.可穿戴设备等概念一样,"大数据"从甫一提出到飓风般席卷并风靡全球,从最初的技术名词到形成渗透各行各业的社会现象,所耗时间仅几年而已,其兴也勃焉. 那么,大数据是否会像很多曾经火热现在已难觅踪迹的流行概念一样,将来某日,人们静心抬眼,发现风已去而水波不兴,徒留夕阳下波光粼粼的涟漪,让人不禁哀叹其亡也忽焉? 本书的背景 目前看仿佛有此迹象,当一个概念火爆到从街头随便抓一个路人,他都能跟你滔滔不绝地侃侃而谈:当一个新名

试读《大数据日知录:架构与算法》有感

其实"大数据"这个词在我的脑海中还没有一个比较确切的定义,几年前我接触了一个名词"海量数据",它主要是指在数据库中如何处理优化查询海量数据的SQL,或者使用NoSQL(Not only SQL)进行处理,进而进行数据分析.数据挖掘等,从大量无规律的数据中提取出有价值的信息,总之海量数据是与数据库紧密关联的.而这两年兴起了"大数据"浪潮,我认为"海量数据"强调的是数据量的大小,而大数据则不仅仅是数据量的大小,还指每条数据本身的大

《大数据日知录:架构与算法》读书笔记(多图)

第二次读这本书,这次是精读,画了思维导图.书很好,完整的知识结构和由浅入深的介绍,非常全面以至于知识点都梳理了三天. 作为导论式的总览,对大数据领域有了个总体的认识,接下来可以更针对性地加强和实践. 总体上比较侧重基础理论和分布式系统的介绍,数据清洗.实时与离线融合的实践.数据分析以及将各系统串联打通方面还需要另外补课.

大数据日知录【第二章:数据的复制与一致性】

基本原则: CAP (Consistency Available Partition Tolerance) 三个条件不可能同时满足(强一致性,可用性,网络分区总会存在,但存在网络分区的条件下让仍然可以用) 在目前的互联网中,P是客观的条件,为了好的用户体验往往A也必须达到,如此只能弱化C 也就是弱一致性模型. ACID(Atomicity, Consistency, Isolation, Duration) 在关系型数据库中常用 保证数据的强一致性和高可靠性 分布式系统下的幂等性:调用方反复执行

大数据日知录【第五章:分布式协调系统】笔记--如何当选老大?如何加入组织?如何将组织的意愿传递下去

Chubby: 保持高可用性和可靠性,不追求读写的高吞吐量,所有的读写请求都有主控服务器完成,其他的备份服务器在内存中维护和主控服务器完全一致的树形结构,此时从属服务器的作用在于系统的整体的可靠性. Zookeeper: 每一个节点都可以处理读请求,写请求只能由主控服务器处理,此时从属服务器的作用在于提高系统读的吞吐量(有可能会导致读取的数据是老数据). Zookeeper主要应用场景: 选举老大 配置管理:配置文件存储在某个节点上,其他节点都是观察者,启东市可以读取也可以订阅改配置消息. 组成