hadoop调度器及压缩

原创
2014/03/27 00:48
阅读数 240

作业的调度

     调度器:

         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           否                                          


展开阅读全文
打赏
0
1 收藏
分享
加载中
更多评论
打赏
0 评论
1 收藏
0
分享
返回顶部
顶部