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

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

  1. 1、本文档共59页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
文件输入格式InputFormat 定义了数据文件如何分割和读取 InputFile提供了以下一些功能 选择文件或者其它对象,用来作为输入 定义InputSplits, 将一个文件分为不同任务 为RecordReader提供一个工厂,用来读取这个文件 有一个抽象的类FileInputFormat,FileInputFormat从这个目录中读取所有文件,然后FileInputFormat将这些文件分割为多个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都继承自FileOutputFormat 每一个Reducer都写一个文件到一个共同的输出目录,文件名是part-nnnnn,其中nnnnn是与每一个reducer相关的一个号(partition id) FileOutputFormat.setOutputPath() 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处理 多个Reduce处理 无Reduce处理 Hadoop平台应用特点 多种应用共用一个Hadoop平台 生产性应用:数据加载,统计值计算,垃圾数据分析等 批作业:机器学习等 交互式作业:SQL查询、样本采集等 不同应用对硬件资源要求不同 I/O密集型作业,如:机器学习算法 CPU密集型作业:如:过滤,统计值计算,正则匹配等 作业之间存在依赖关系 如何提高Hadoop平台资源

文档评论(0)

a13355589 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档