`
这些年
  • 浏览: 390703 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

hadoop权威指南 读书笔记

 
阅读更多

第二章:关于mapReduce

          mapreduce是一种可用于数据处理的编程模型,它是并行运行的,可以处理大规模数据分析。

处理少量大文件比大量小文件更容易

           mapreduce两个处理阶段:

                 map阶段和reduce阶段,每个阶段都以key/value做为输入和输出,类型由程序员选择

map中的key是文件中的行偏移量,map函数并不需要这些信息,所以将其忽略
reduce的输入类型必须与map的输出类型相匹配

                 reduce函数输出文件的目录在运行任务前应该不存在

    数据流:

          节点角色:

                 tasktracker:用来执行map和reduce任务

                 jobtracker:用来调度任务在哪个tasktracker上执行

执行任务期,tasktracker会将运行进度报告给jobtracker,job由此记录作业的整体进度,如果其中一个任务失败,它可以调度别一个tasktracker来重新执行

           分片:hadoop将mapreduce输入数据划分成等长的小数据块称为分片,hadoop为每个分片建立一个map任务,并由map函数来处理分片中的每行数据(分片切分更细,负载均衡就越好,当然太小map数就越多,所须要执行时间就越长)

一个合理的分片应该与hdfs块大小相同,默认64M
map函数的输出会写到磁盘上,非hdfs;reduce的输出存在hdfs上实现可靠存储

    单个reduce的输入通常来自所有map的输出      

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics