《hadoop实战2》读书笔记(1)

网友投稿 880 2022-10-18

《hadoop实战2》读书笔记(1)

《hadoop实战2》读书笔记(1)

1.Map与Reduce将输出转化为对的默认方法是:将每行的第一个tab符号(制表符)之前的内容作为key,

之后的内容作为value,如果没有tab符号,那么这一行的所有内容会作为key,而value值作为null,当然是可以更改的。

2.在编写MapReduce的输入输出路径时:作业提交之前,还需要在主函数中配置MapReduce作业在hadoop集群上的输入路径和输出路径(必须保证输出路径不存在,如果存在程序就报错)

3.根据JobConf中的mapred.reduce.tasks属性利用setNumReduceTasks()方法来设置reduce task的个数,然后利用类似

Map Task 的方式将Reduce Task放入nonRunningReduces中,以便向TaskTracker分配Reduce Task时使用

4.在机器故障时:比如一个TaskTracker已经完成被分配的三个Reduce任务中的两个,因为Reduce任务一旦完成就会将数据写到HDFS上,所以只有第三个未完成的Reduce需要重新执行,但是对于Map任务来说,即使TaskTracker完成了部分Map,Reduce仍可能无法获取此节点上所有Map的所有输出。所以无论Map任务完成与否,故障TaskTracker上的Map任务都必须重新执行。

5.公平调度器:公平调度是为作业分配资源的方法,其目的是随着时间的推移,让提交的作业获取等量的集群共享资源,让用户公平的共享集群。具体的做法是: 当集群上只有一个作业在运行时,它将使用整个集群;当有其他作业提交时,系统会将TaskTracker节点空闲时间片分配给这些新的作业,并保证每一个作业都得到大概等量的CPU时间。

公平调度器按作业池来组织作业,它会按照提交作业的用户数目将资源公平地分到这些作业池里。默认情况下,每一个用户拥有一个独立的作业池,以使每个用户都能获得一份等同的集群资源而不会管它们提交了多少作业。在每一个资源池内,会用公平共享的方法在运行作业之间共享容量。除了提供公平共享方法外,公平调度器还允许为作业池设置最小的共享资源,以确保特定用户、群组或生产应用程序总能获取到足够的资源。对于设置了最小共享资源的作业池来说,如果包含了作业,它至少能获取到最小的共享资源。但是如果最小共享资源超过作业所需要的资源时,额外的资源会在其他作业池间进行切分。 公平调度器还支持作业抢占资源,公平调度器会在所有运行任务中选择最近运行起来的任务,这样浪费的计算相对较少。由于hadoop作业能容忍丢失任务,抢占不会导致被抢占的作业失败,只是让被抢占作业的运行时间更长。

6.推测式执行:是指当作业的所有任务都开始运行时,JobTracker会统计所有任务的平均进度,如果某个任务所在的TaskTracker节点由于配置比较低或者CPU负载过高,导致任务执行速度比总体任务的平均速度要慢,此时jobtracker就会启动一个新的备份任务,原有任务和新任务哪个先执行完就吧另外一个KILL掉,这就是经常在jobtracker页面看到任务执行成功,但总是有些任务被kill的原因。

7.禁用校验和检验的最主要目的并不是节约时间,用于检验校验和的开销一般情况都是可以接受的,禁用校验和检验的主要原因是:如果不禁用校验和检验,就无法-那些已经破坏的文件来查看是否可以挽救,而有时候即使是只能挽救一小部分也是值得的

待续......

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:像素值的读写
下一篇:springboot中@component注解的使用实例
相关文章

 发表评论

暂时没有评论,来抢沙发吧~