六招秒杀99%海量数据处理面试题.PDFVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
六招秒杀99%海量数据处理面试题

六招秒杀99%海量数据处理面试题 前言 一般而言,标题含有“秒杀”,“99%”,“史上最全/最强”等词汇的往往都脱不了哗众取宠之嫌,但进一步来 讲,如果读者读罢此文,却无任何收获,那么,我也甘愿背负这样的罪名,:-),同时,此文可以看做是对 这篇文章:十道海量数据处理面试题与十个方法大总结的一般抽象性总结。 毕竟受文章和理论之限,本文将摒弃绝大部分的细节,只谈方法/模式论,且注重用最通俗最直白的语言阐 述相关问题。最后,有一点必须强调的是,全文行文是基于面试题的分析基础之上的,具体实践过程中, 还是得具体情况具体分析,且场景也远比本文所述的任何一种情况复杂得多。 OK,若有任何问题,欢迎随时不吝赐教。谢谢。 何谓海量数据处理? 所谓海量数据处理,无非就是基于海量数据上的存储、处理、操作。何谓海量,就是数据量太大,所以导 致要么是无法在较短时间内迅速解决,要么是数据太大,导致无法一次性装入内存。 那解决办法呢?针对时间,我们可以采用巧妙的算法搭配合适的数据结构,如Bloomfilter/Hash/bit-map/ 堆/数据库或倒排索引/trie树,针对空间,无非就一个办法:大而化小:分而治之/hash映射,你不是说 规模太大嘛,那简单啊,就把规模大化为规模小的,各个击破不就完了嘛。 至于所谓的单机及集群问题,通俗点来讲,单机就是处理装载数据的机器有限(只要考虑cpu,内存,硬盘 的数据交互),而集群,机器有多辆,适合分布式处理,并行计算(更多考虑节点和节点间的数据交互)。 再者,通过本blog 内的有关海量数据处理的文章:BigDataProcessing,我们已经大致知道,处理海量数 据问题,无非就是: /hash +hash + / /  分而治之 映射 统计 堆快速归并排序;  双层桶划分  Bloomfilter/Bitmap;  Trie树/数据库/倒排索引;  外排序;  分布式处理之Hadoop/Mapreduce。 下面,本文第一部分、从set/map谈到hashtable/hash_map/hash_set,简要介绍下 set/map/multiset/multimap,及hash_set/hash_map/hash_multiset/hash_multimap之区别(万丈高楼 ) 6 平地起,基础最重要 ,而本文第二部分,则针对上述那 种方法模式结合对应的海量数据处理面试题分别 具体阐述。 第一部分、从set/map谈到hashtable/hash_map/hash_set 稍后本文第二部分中将多次提到hash_map/hash_set,下面稍稍介绍下这些容器,以作为 基础准备。一般来说,STL容器分两种,  序列式容器(vector/list/deque/stack/queue/heap),  关联式容器。关联式容器又分为set(集合)和map(映射表)两大类,以及这两大类的衍生体multiset(多 键集合)和multimap(多键映射表),这些容器均以RB-tree完成。此外,还有第3类关联式容器, 如hashtable(散列表),以及以hashtable为底层机制完成的hash_set(散列集合)/hash_map(散列映射 表)/hash_multiset(散列多键集合)/hash_multimap(散列多键映射表)。也就是说, set/map/multiset/multimap都内含一个RB-tree,而 hash_set/hash_map/hash_multiset/hash_multimap都内含一个hashtable。 所谓关联式容器,类似关联式数据库,每笔数据或每个元素都有一个键值(key)和一个实值(value)。当元素 被插入到关联式容器中时,容器内部结构(RB-tree/hashtable)便依照其键值大小,以某种特定规则将这个元 素放置于适当位置。 set/map/multiset/multimap set,同map一样,所有元素都会根据元素的键值自动被排序,因为set/map两者的所有各种操作,都只是 转而调用RB-tree 的操作行为,不过,值得注意的是,两者都不允许两个元素有相同的键值。 set map

文档评论(0)

***** + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档