本篇内容介绍了“hadoop调度器及压缩是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
作业的调度
调度器:
FIFO(first in first out)(早期版本使用)
按照作业提交的顺序,使用FIFO(先进先出)调度算法来运算作业.
典型情况下,每个作业都会使用整个集群,因此作业必须等待,知道轮到自己运行.
随后,假如设置作业优先级的功能,可以通过设置mapred.job.priority属性或者
JobClient的setJobPriority()方法来设置优先级.(very_high,high,normal,low,very_low)
然而,在FIFO算法中,优先级并不支持抢占,所以高优先级的作业仍然会被那些低优先级的作业所阻塞.
在hadoopk中,MapReduce的调度器可以选择,默认的调度器是原始的基于队列的FIFO调度器,
还得有两个多用户调度器(Fair[公平] Scheduler和Capacity[能力,地位资格] Scheduler)
Fair Scheduler
公平调度器的目标是让每个用户公平的共享集群能力.这种方式根据作业的大小,在合理的时间内完成.
作业都被放在作业池中,默认情况,每个用户都有自己的作业池.可以用map和reduce的任务槽来制定
作业池的最小容量,也可以设置每个池的权重. fair支持抢占,所以,如果一个池在特定的一段时间内
未得到公平的资源共享,它会终止运行池中得到过多资源的任务,以便把任务槽让给运行资源不足的池.
公平调度器:
公平调度是一种赋予作业(job)资源的方法,它的目的是让所有的作业随着时间的推移,
都能平均的获取等同的共享资源.
1.公平调度器按资源池 (pool) 来组织作业, 并把资源公平的分到这些资源池里。
2.公平调度器允许赋给资源池保证 (guaranteed) 最小共享资源.
3.公平调度器还可以限制每用户和每资源池的并发运行作业数量。
安装:
fair Scheduler是一个后续模块,要使用它,需要将其jar文件放在hadoop的类路径.
方法一:把fairscheduler.jar拷贝到hadoop_home/lib中
方法二:修改hadoop-env.sh中的hadoop-classpath,加入公平调度器的jar包
最后需要在mapred-site.xml设置下列属性,让hadoop使用公平调度器.
<property>
<name>mapred.jobtracker.taskScheduler</name>
<value>org.apache.hadoop.mapred.FairScheduler</value>
</property>
验证:重启集群后,可以通过JobTracker的web用户界面中的 http://<jobtrackerURL>/scheduler
检查公平调度器是否正在运行, 可以看到一个"job scheduler administration"页面.就OK了.
Capacity Scheduler(容量调度器)
集群由很多队列组成,每个队列有一个分配的能力.在每个队列内部,作业根据FIFO方式(优先级)进行调度.
本质上,Capacity Scheduler允许用户或组织为每个用户或者组织模拟一个独立的使用FIFO的集群.
压缩
文件压缩的好处:
1.可以减少存储文件所需要的磁盘空间.
2.可以加速数据在网络和磁盘上的传输.
压缩格式 工具 算法 文件扩展名 是否包含多文件 是否可切分 java实现 原生实现
DEFLATE N/A DEFLATE .deflate 否 否 是 是
Gzip gzip DEFLATE .gz 否 否 是 是
bzip2 bzip2 bzip2 .bz2 否 是 是 否
LZO Lzop LZO .lzo 否 否 否 是
“hadoop调度器及压缩是什么”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!
原创文章,作者:3628473679,如若转载,请注明出处:https://blog.ytso.com/230298.html