大数据启蒙

172 阅读2分钟

大数据启蒙 启蒙很重要! 分治思想 单机处理大数据问题 集群分布式处理大数据的辩证

分治思想 需求: 我有一万个元素(比如数字或单词)需要存储? 如果查找某一个元素,最简单的遍历方式复杂的是多少? 如果我期望复杂度是O(4)呢? 准备2500个链 每个链只存在4个元素

分而治之的思想很重要,出现在很多地方 Redis集群 ElasticSearch Hbase HADOOP生态无处不在

单机处理大数据问题 需求: 有一个非常大的文本文件,里面有很多很多的行,只有两行一样,它们出现在未知的位置,需要查找到它们。 单机,而且可用的内存很少,也就几十兆。 小贴士:内存寻址比IO寻址快10万倍。 假设IO速度是500MB每秒 1T文件读取一遍需要约30分钟 循环遍历需要N次IO时间 1.先读取一行,然后每一行比较,没有重复的,读取下一行,每一行比较,最笨重的是最后两行相同,那就要读取N次 2.将每一行hashcode基于某个数值取模。 外部无序,内部有序,数据结构归并算法 分治思想可以使时间为2次IO

思考:如何让时间变成分钟、秒级别?

集群分布式处理大数据的辩证 2000台真的比一台速度快吗? 如果考虑分发上传文件的时间呢? 如果考虑每天都有1T数据的产生呢? 如果增量了一年,最后一天计算数据呢?

结论: 分而治之 并行计算 计算向数据移动 数据本地化读取 以上这些点是学习大数据技术时需要关心的重点

hadoop.apache.org/

www.cloudera.com/ docs.cloudera.com/