教你如何迅速秒杀掉:99%的海量数据处理面试题:
https://blog.csdn.net/v_july_v/article/details/7382693
July:海量数据处理:
https://blog.csdn.net/u013074465/article/details/40504281
1、布隆过滤器
2、Hash散列
3、BitMap: 降低内存的使用量。 操作复杂度有所上升的。
位图
找出100G的数据中,出现次数为2次的元素 并且给定的内存有限
要求出出现次数为3次的 怎么做?
简化:
有一批数据,是从1-10000, 请给我找出不存在的元素 并且给定的内存有限
排序: 计数排序
存在不存在用1位
0
1
1次 2次用2位
00
01
10
11
3次 4次 5次 6次 用3位
000
001
010
011
100
101
110
111
4、堆
HDFS
hbase 布隆过滤器
es
kafka
mysql 的索引: B+树
5、双层桶划分
桶
hive的分区:手动建立, 数据不一定是完美的分区的
hive的分桶:经过算法严格校验
6、数据库索引
索引:提高查询效率的
B+树 二分查找
7、倒排索引
根据ID 找文档 很容易
根据身份证编号找人 容易
根据姓名找人 身份证里面
现在有10本书
请找出编号为3的书
1 hadoop权威指南
2 算法导论
3 编程珠玑
.....
请找出书中有讨论hadoop的书
实现的复杂度很高
hadoop权威指南 hadoop(233) spark(44) flink(5)
算法导论 HDFS mapreduce hadoop(66)
编程珠玑 java hdfs
html1 key1 key2 key3 ...
html2 key2 key4 kye7
......
key1 html1
key2 html1 html2
HDFS 编程珠玑 算法导论
hadoop hadoop权威指南(233) 算法导论(66) abc(20)
spark hadoop权威指南
flink hadoop权威指南
mapreduce 算法导论
java 编程珠玑
PageRank算法
大数据
从谷歌来的
hadoop 从三篇论文
nutch
lucene
es
hbase
hdfs
mapreduce
提高计算和存储效率
storm
mahout
ambari
sqoop
....
8、外排序
归并排序
两个效果:
1、合并
2、排序
本质原理:
把两个有序数组 合并一个
把两个有序文件合并成一个文件
9、Trie树
字典树
10、分布式解决方案:MapReduce或者Spark
通用解决方案
求TopN
求交集
判断元素存在不存在
求元素出现不出现
求元素出现几次
.....
程序:
数据结构 + 算法
分布式场景中,最复杂的就是优化