wordpress 不能换主题,青岛网站建设和优化,网站上传根目录,河南工程建设 协会网站mapreduce介绍MapReduce是Google流行的一种并行编程技术。 它用于处理大量数据。 仅通过将工作并行分配给多台机器#xff0c;就可以在合理的时间内完成这种处理。 每台机器都处理一小部分数据。 MapReduce是一种编程模型#xff0c;使开发人员可以专注于编写处理数据的代码就可以在合理的时间内完成这种处理。 每台机器都处理一小部分数据。 MapReduce是一种编程模型使开发人员可以专注于编写处理数据的代码而不必担心并行执行的细节。 MapReduce需要将要处理的数据建模为键值对。 开发人员编写了map函数和reduce函数的代码。 MapReduce运行时为每个键值对调用map函数。 映射函数将键值对作为输入并产生另一个键值对的输出。 MapReduce运行时按键对映射函数的输出进行排序和分组。 然后它将调用reduce函数并为其传递键和与该键关联的值的列表。 为每个键调用reduce函数。 reduce函数的输出是键值对。 该值通常是一个集合或通过处理为输入键传入的值列表而计算出的值。 对于由map函数产生的每个中间键调用reduce函数。 reduce函数的输出是必需的结果。 例如假设您有大量的日志文件其中包含某些事件例如访问帐户的审核日志。 您需要找出过去10年中每个帐户被访问了多少次。 假设日志文件中的每一行都是审核记录。 我们正在逐行处理日志文件map和reduce函数如下所示 map(key , value) {// key byte offset in log file // value a line in the log fileif ( value is an account access audit log) {account number parse account from valueoutput key account number, value 1}
}reduce(key, list of values) {// key account number// list of values {1,1,1,1.....}for each valuecount count valueoutput key , count
} 每个日志文件中的每一行都会调用map函数。 不相关的行将被忽略。 从相关行中解析出帐号并输出一个值1。MapReduce运行时按帐号对输出进行排序和分组。 为每个帐户调用reduce函数。 reduce函数汇总每个帐户的值这是必需的结果。 MapReduce作业通常在计算机集群上执行。 每台机器执行一个任务该任务可以是映射任务也可以是归约任务。 每个任务都在处理数据的子集。 在上面的示例中假设我们从一组大型输入文件开始。 MapReduce运行时将输入数据分为称为分割或碎片的分区。 每个拆分或碎片均由计算机上的映射任务处理。 每个映射任务的输出均按键排序和分区。 来自所有映射的输出被合并以创建输入到reduce任务的分区。 可以有多台计算机每台计算机都运行简化任务。 每个reduce任务都有一个要处理的分区。 该分区可以具有多个键。 但是每个键的所有数据都在1个分区中。 换句话说每个键只能处理1个缩减任务。 机器的数量映射任务的数量reduce任务的数量以及其他几项都是可配置的。 对于需要对大数据集进行某些处理的问题MapReduce非常有用。 该算法可以分解为map和reduce函数。 MapReduce运行时负责将处理分配到多台计算机并汇总结果。 Apache Hadoop是mapreduce的开源Java实现。 请继续关注有关使用hadoop的有关mapreduce的未来博客/教程。 参考 什么是MapReduce 来自我们的JCG合作伙伴在“ Khangaonkar报告”中的报道 。 相关文章 Cajo用Java完成分布式计算的最简单方法 Hibernate映射集合性能问题 Java Code Geeks Andygene Web原型 Servlet 3.0异步处理可将服务器吞吐量提高十倍 翻译自: https://www.javacodegeeks.com/2011/05/mapreduce-soft-introduction.htmlmapreduce介绍