大数据-五

横向扩展

将mapreduce和数据运行在分布式模式之上;

数据流

mapreduce作业(job)是客户端需要执行的一个工作单元,它包括输入数据,mapreduce程序,和配置信息;hadoop将作业分成若干个小任务(task)来执行;其中包括两类任务,map任务,reduce任务;

有两类节点控制着作业执行过程,:一个jobtracker及一系列tasktracker,jobtracker通过调度tasktracker上运行的任务来协调所有运行在系统上的作业,taskracker在运行任务的同时讲运行进度报告发送给jobtracker,jobtracker由此记录每项作业的整体进度情况,如果其中一个任务失败,jobtracker可以在另一个tasktracker调度重新运行该任务;

hadoop中将输入数据切成等长的小数据块(input split)(block)每一个块都分配一个所定义的map task;当然分块大小关系到负载均衡,还有切片时间,合并时间,处理时间等;

所以为此,一般每个block为64M;

当每一个节点的任务都运行的是本地的数据块时(数据本地化优化),是最优性能,但也不排除会有跨节点,跨机架,但主要是还是本地数据为主;

还有map结束后的输出数据存在本地节点的本地磁盘上,不在HDFS,因为map的输出数据是中间结果,不是最终结果,用完即删,没有必要HDFS备份;

每个map task结束之后,排序,合并所有输出数据到reduce输入端,是先合并,然后到reduce端;会占用网络带宽;

reduce的任务数量并不是只能是一个,但所有数据合并给一个reduce是绝对的,reduce task数量并非输入数据大小决定,而是单独自定义指定的;

shuffle(混洗)整理单项数据,是map到reduce之间的数据流,调整混洗参数对作业的总执行时间的影响非常大;当然也有不需要reduce的数据,可以直接输出的;

当有多个reduce task时,每个后面合并形成的数据将会形成不同的part;




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值