mapreduce过程

mapreduce过程

程序会根据inputformat将文件分割成splits分片,每个分片会分配一个map task任务,每个map task任务会有一个内存缓冲区,任务处理后的结果会写入到内存缓冲区,并决定数据写入到哪个patitioner,当写入的数据达到内存缓冲区的阈值(默认80%)时,会启动一个线程将内存中的数据溢写到磁中,同时不影响前面的处理结果继续写入到内存缓冲区,.在接下来的溢写过程中,mapreduce框架会对key进行排序,如果map task处理的结果很大会形成多个溢写文件,最后缓冲区的内容会全部溢写到磁盘中,如果有多个文件则合并为一个文件.

当所有的map task任务完成后,每个map task任务会形成一个最终文件,并且该文件的按区划分.reduce任务启动之前,一个map task完成后,会启动线程来拉取map结果数据到相应的reduce task,不断的合并数据,为reduce的数据输入做准备,当所有的map task完成后,数据也就拉取合并完毕,reduce task启动 ,最终将输出结果存入到hdfs.

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/106367.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 设计模式–策略模式(Strategy)

    设计模式–策略模式(Strategy)

    2021年7月30日
    66
  • j2ee是什么,包括哪些技术_什么是J2EE

    j2ee是什么,包括哪些技术_什么是J2EEjava自学网www.java7.com从整体上讲,J2EE是使用Java技术开发企业级应用的工业标准,它是Java技术不断适应和促进企业级应用过程中的产物。适用于企业级应用的J2EE,提供一个平台独立的、可移植的、多用户的、安全的和基于标准的企业级平台,从而简化企业应用的开发、管理和部署。J2EE是一个标准,而不是一个现成的产品。  主要包括以下这些技术:  1)Servlet  Servlet是Java平台上的CGI技术。Servlet在服务器端运行,动态地生成Web页面。与传统的CGI和..

    2022年10月11日
    2
  • ThinkPHP5旅游管理系统

    ThinkPHP5旅游管理系统Q1115487855ThinkPHP5旅游管理系统一系统介绍本旅游管理系统基于ThinkPHP5开发,系统角色分为用户和管理员两种,系统分为前后台,用户可在前台注册登录、发布行程单和游记等,管理员登录后台进行管理。技术栈ThinkPHP5+mysql+bootstrap+jquery+vscode+phpstudy二系统功能用户1注册/登录/注销2个人中心

    2022年4月30日
    57
  • init是啥意思_init 0到6的意思

    init是啥意思_init 0到6的意思1.内核启动问题2.解决方案2.1ramdisk(比如initrd)2.2tmpfs(比如initramfs)2.3ramdiskvsramfs2.4临时文件系统2.4.1观察tmpfs2.4.2Initramfs2.4.3查看initramfs2.4.4创建initramfs2.5Linux系统中的initramfs2.6cpio归档文件3.高级用户3.1制…

    2022年8月11日
    6
  • 【软考】系统集成项目管理工程师(三)系统集成专业技术知识

    【软考】系统集成项目管理工程师(三)系统集成专业技术知识软考中级——系统集成项目管理工程师备考干货第三章:系统集成专业技术知识。

    2022年10月15日
    2
  • element ui select 踩坑

    element ui select 踩坑

    2021年6月9日
    172

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号