Hadoop大数据开发与性能调优实战培训课程Hadoop组件详解.ppt

Hadoop大数据开发与性能调优实战培训课程Hadoop组件详解.ppt

  1. 1、本文档共60页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Combiner InputSplits Mapper Partitioner Shuffle Sort InputFormat Reducer RecordReader MapReduce核心组件 第三十页,共六十页。 文件输入格式InputFormat 定义了数据文件如何分割和读取 InputFile提供了以下一些功能 选择文件或者其它对象,用来作为输入 定义InputSplits, 将一个文件分为不同任务 为RecordReader提供一个工厂,用来读取这个文件 有一个抽象的类,从这个目录中读取所有文件,然后将这些文件分割为多个InputSplits。 通过在JobConf对象上设置JobConf.setInputFormat设置文件输入的格式 第三十一页,共六十页。 输入数据分块InputSplits InputSplit定义了输入到单个Map 任务的输入数据 一个MapReduce程序被统称为 一个Job,可能有上百个任务构成 InputSplit将文件分为64MB的大 配置文件hadoop-site.xml中的mapred.min.split.size参数控制这个大小 mapred.tasktracker.map.taks.maximum用来控制某一个节点上所有map任务的最大数目 第三十二页,共六十页。 数据记录读入RecordReader InputSplit定义了一个数据分块,但是没有定义如何读取数据记录 RecordReader实际上定义了如何将数据记录转化为一个(key,value)对的详细方法,并将数据记录传给Mapper类 TextInputFormat提供了LineRecordReader, 读入一个文本行数据记录 第三十三页,共六十页。 Mapper 每一个Mapper类的实例生成了一个Java进程,负责处理某一个InputSplit上的数据 有两个额外的参数OutputCollector以及Reporter,前者用来收集中间结果,后者用来获得环境参数以及设置当前执行的状态。 现在的版本用Mapper.Context提供给每一个Mapper函数,用来提供上面两个对象的功能 第三十四页,共六十页。 Combiner 合并相同key的键值对,减少partitioner时候的数据通信开销 conf.setCombinerClass(Reduce.class); 是在本地执行的一个Reducer,满足一定的条件才能够执行。 第三十五页,共六十页。 Partitioner ShuffleSort Partitioner Shuffle 在Map工作完成之后,每一个 Map函数会将结果传到对应的Reducer所在的节点,此时,用户可以提供一个Partitioner类,用来决定一个给定的(key,value)对传给哪个节点 Sort 传输到每一个Reducer节点上的、将被所有的Reduce函数接收到的Key,value对会被Hadoop自动排序(即Map生成的结果传送到某一个节点的时候,会被自动排序) 第三十六页,共六十页。 Reducer 做用户定义的Reduce操作 接收到一个OutputCollector的类作为输出 新版本的编程接口是Reducer.Context 第三十七页,共六十页。 文件输出格式OutputFormat 写入到HDFS的所有OutputFormat都继承自 每一个Reducer都写一个文件到一个共同的输出目录,文件名是part-nnnnn,其中nnnnn是与每一个reducer相关的一个号(partition id) () JobConf.setOutputFormat() 第三十八页,共六十页。 MapReduce 第三十九页,共六十页。 MapReduce 第四十页,共六十页。 MapReduce JobTracker一直在等待JobClient提交作业 TaskTracker每隔3秒向 JobTracker发送心跳heartbeat询问有没有任务可做,如果有,让其派发任务给它执行 这是一道pull过程: slave主动向master拉生意 第四十一页,共六十页。 MapReduce 特点:Fault-tolerant 容错,很重要! M/R Failures Task fails Try again? Try again somewhere else? Report failure 只有当map处理全部结束后,reduce过程才能够开始 Map需要考虑数据局部性,Reduce无需考虑数据局部性 第四十二页,共六十页。 单一Reduce处理 第四十三页,共六十页。 多个Redu

文档评论(0)

虾虾教育 + 关注
官方认证
内容提供者

有问题请私信!谢谢啦 资料均为网络收集与整理,收费仅为整理费用,如有侵权,请私信,立马删除

版权声明书
用户编号:8012026075000021
认证主体重庆皮皮猪科技有限公司
IP属地重庆
统一社会信用代码/组织机构代码
91500113MA61PRPQ02

1亿VIP精品文档

相关文档