io.sort.mb*io.sort.record.percent

看视频讲解这部分的头文件没有听懂。
还有就是io.sort.mb 设定100的单位是mb吗

wangxiaolei

赞同来自:

是的

QR努力ing

赞同来自:

slot的概念是什么,跟tasktracker的关系是啥?能不能再讲一下tasktracker的功能以及jobtracker的功能

fish - Hadooper

赞同来自:

io.sort.mb,定义了一个数字,单位是mB。 在map做spill操作(或者reduce做shuffle操作)的时候,需要将要输出到文件中的数据进行全排序。生成排好序的文件。 生成的过程是,先将需要输出的内容,输出到一块内存当中,当内存达到阈值时,进行一次快速排序,然后将排好的结果输出到文件。 这个内存的阈值,有io.sort.mb进行定义。   io.sort.record.percent,定义了一个比例值。 这个比例值,是io.sort.mb所定义这个大小的那块内存中,数据index与实际数据内容的比例。上面所说的内存中的快速排序,必定要设置到大量的记录交换,在实现的时候,当需要交换两个记录的顺序时,不是直接交换这两个记录的内容,而是,交换指向它们的index。这样能大大提升排序的性能。    

fish - Hadooper

赞同来自:

关于slot,是hadoop1.x的任务调度、资源分配的基本单位,进入2.x之后不需要再过多关注。   在过去,hadoop对mapreduce的调度以一种粗矿的方式进行组织,一台任务机(tasktracker)上,声明自己能贡献多少资源的时候,不是声明自己有多少cpu和memory,以为当时hadoop不支持这么细粒度的调度。tasktracker声明一下自己能同时跑多少个map(map slot),多少reduce(reduce slot)。   jobtracker在接收到用户提交的任务之后,会计算出任务由多少个map跟多少个reduce组成,当tasktracker汇报心跳,告诉jobtracker自己有多少个slot的空闲之后,jobtracker就会将之前用户提交过且已经放到自己的待执行任务队列中的task,选取一些,分配给声称有空闲资源的tasktracker。

要回复问题请先登录注册