- 1、本文档共11页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
六招秒杀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
您可能关注的文档
- 2014年版中国汽车回油阀部件可行性研究报.PDF
- 2014年版中国玻璃生产设备可行性研究报告.PDF
- 2015-2016年度洛阳地矿学校9月月考卷.PDF
- 2015中考物理电磁作图试题.doc
- 2015年第一次大联考【浙江卷】理科综合·.PDF
- 2016浙江招警考试英语.ppt
- 2017-2022年宗教工艺品行业调研与投资策略研究报告.doc
- 2017北京一模二模试题分类--电学实验.PDF
- 26-天生桥一级水电站-中国水电顾问集团昆明勘测设计研究院.doc
- 555振荡电路低频段的研究及其应用.PDF
- 第18讲 第17课 西晋的短暂统一和北方各族的内迁.docx
- 第15讲 第14课 沟通中外文明的“丝绸之路”.docx
- 第13课时 中东 欧洲西部.doc
- 第17讲 第16 课三国鼎立.docx
- 第17讲 第16课 三国鼎立 带解析.docx
- 2024_2025年新教材高中历史课时检测9近代西方的法律与教化含解析新人教版选择性必修1.doc
- 2024_2025学年高二数学下学期期末备考试卷文含解析.docx
- 山西版2024高考政治一轮复习第二单元生产劳动与经营第5课时企业与劳动者教案.docx
- 第16讲 第15课 两汉的科技和文化 带解析.docx
- 第13课 宋元时期的科技与中外交通.docx
文档评论(0)