当前您所在的位置:北京无忧助孕中心 > 北京助孕网 >
谈谈大数据big data处理的本质是分治(Divide-and-Conquer)思想
最后更新:2024-04-17 作者:admin  浏览:507次

Divide-and-Conquer分治思想:

最早可以追随到归并排序(MergeSort)算法:

如要对几千亿规模的数据进行排序,如何实现?因为数据量太大,无法在一台计算机上完成。

通过分治思维,将数据一分为二,然后对每一半数据进行排序,然后再讲排序好的两个队列进行合并,从而得到原数组的排序结果。可以将计算复杂度由O(N*N)降到O(N*logN),如果N是100万,那计算时间可以缩短约1万倍。

google的MapReduce原理就是:

Map过程,将一个大任务拆分成小的子任务,并且完成子任务的计算。

Reduce过程,将中间结果合并成最终结果。

hadoop就是基于这个原理的具体实现,这个实现包括了如何将任务自动拆分,保证服务器集群的负载均衡等。

WhatisMapReduce?

MapReduce是一种编程范例,可以在Hadoop集群中的数百或数千台服务器上实现大规模可扩展性。作为处理组件,mapreduce是hadoop的核心。术语“MapReduce”是指Hadoop程序执行的两个独立且不同的任务。第一个是映射作业,它获取一组数据并将其转换为另一组数据,其中各个元素被分解为元组(键/值对)。

reduce作业将map的输出作为输入,并将这些数据元组组合成一组较小的元组。正如名称MapReduce的顺序所暗示的那样,化简作业始终在映射作业之后执行。

MapReduce编程提供了几个好处,可以帮助您从大数据中获得有价值的内容:

可扩展性。企业可以处理存储在Hadoop分布式文件系统(HDFS)中的PB级数据。

灵活性。Hadoop可以更轻松地访问多个数据源和多种类型的数据。

速度。通过并行处理和最少的数据移动,Hadoop可以快速处理大量数据。

简单。开发人员可以使用多种语言编写代码,包括Java、C++和Python。.

流式计算Storm、flink也是基于这个原理实现的。

storm的spout对应Map过程,

storm的bolt对应Reduce过程

storm的spout和bolt

flink的stremgroup过程对应map。

sink过程对应reduce


参考资料