数据处理能力提升的两种路线:
1.单核CPU从单核到双核到四核八核,
2分布式并行编程
随着 CPU制作工艺达到天花板,现在分布式并行编程有了发展,分布式并行编程就是借助一个集群通过多台机器同时处理大规模数据集。
谷歌提出了mapreduce,apache做了开源实现,一个HDFS和Mapreduce合称为MapReduce,谷歌提出之前实际也有分布式并行编程
MapReduce优点:
每个节点都拥有自己的内存,自己的储存空间,一个节点出现问题不会影响其他的,所以容错性方面提升很多
MapReduce新增节点硬件价格友好很多,不需要刀片服务器,PC机就行,扩展性好很多
MapReduce自动实现分布式部署,学习难度低很多
MapReduce适用于非实时的批处理以及数据密集型应用
MapReduce处理步骤:MapReduce被简单抽象成Map函数和Reduce函数(采用Divide and Conque),把大数据集切成非常多的独立的小分片,为每一个分片单独启动一个map任务,多个map任务同时并行处理
MapReduce理念:
计算向数据靠拢:先选一些节点作为Map机器,执行Map任务,reduce的时候,选一些机器作为reduce机器,它就找离自己最近的map节点去完成任务,理想情况是map,和reduce在一台机器上完成,这样做减少了网络传输开销,大大提升了分布式程序处理性能
(数据向计算靠拢:要完成一次数据分析时,选择一个计算节点,把运行数据分析的程序放到计算节点上运行,把需要的数据从不同节点