Hadoop多用户作业调度器

  hadoop 最初是为批处理作业设计的,当时只采用了一个简单的FIFO调度机制分配任务,随着hadoop的普及以及应用的用户越来越多,基于FIFO的单用户调度机制不能很好的利用集群资源(比如机器学习和数据挖掘对处理耗时要求不高但I/O密集,生产性作业队实时要求高,如Hive查询统计CPU密集,即不同的作业类型对资源要求不一致),多用户调度器势在必行。多用户调度主要有两种思路,一种是在物理集群上虚拟出多个hadoop集群,优点是实现简单,缺点是集群管理麻烦、调度资源浪费,典型代表HOD(Hadoop on Demand);另一种是扩展Hadoop调度器,使之支持多队列多用户调度,典型代表是capacity scheduler 和fair scheduler。

  

hadoop 队列管理机制

  hadoop 以队列为单位管理资源,用户只能向一个或多个队列提交作业,队列管理分为两方便:用户权限管理和资源管理。管理员可以配置每个队列的用户和用户组,也可以配置每个队列的管理员,他可以kill队列,改变队列的优先级等;系统支援管理有调度器完成,管理员可以设置各个队列的资源容量参数。

capacity Scheduler

capacity scheduler 主要是由yahoo实现的,主要有以下几个特点:

  • 容量保证:管理员可以设置队列的资源使用上限
  • 灵活性:如果一个队列的资源有剩余,可以共享给其他需要资源的队列,当此队列需要资源时由其他队列归还资源。
  • 多重租赁:支持多用户共享集群和多作业同时运行。
  • 支持资源密集型作业
  • 支持作业优先级

hadoop 安全机制

  由于hadoop 一般部署在由防火墙隔离的局域网环境之中,hadoop安全机制基本不用与考虑地域外网攻击,更多的是保障多用户在集群环境下安全高效的使用集群资源。Hadoop RPC 采用了SASL(Sample Authentication and Security Layer) 进行安全认证。

Kerberos 认证

  kerberos 是一种网络安全认证协议,主要概念如下:

  • 客户端(client):请求服务的用户
  • 服务端(server):向用户提供服务的一方
  • 秘钥分发中心(kerberos key distribution center,KDC):中心化的存储了客户端密码和其他账户信息,他接收来自客户端的请求,验证合法性并授予会话凭证,分为认证服务和授权服务。
  • 认证服务(authentication server,AS):校验用户身份
  • 票据授权服务(Ticket-Granting Service,TGS):验证由AS颁发的票据,如果票据验证通过,则颁发服务许可票据
  • 票据(Ticket):用于服务器与用户之间安全的传输信息,同时也附加一些标识
  • 票据授权票据(Ticket-Granting Ticket,TGT):AS颁发的票据
  • 服务许可票据(Service-Granting Ticket,SGT):TGS颁发的票据

  kerberos 一般采用对称加密方式,认证流程如下图:

  

  kerberos相对于SSL的优点:

  • kerberos采用对称加密相比SSL非对称加密算法高效。
  • 用户管理简单,kerberos基于第三方KDC统一管理,撤销用户只需移出KDC记录,而SSL需要广播给各个服务器

  

  Kerberos协议本身并不能完全解决网络安全性问题,它是建立在一些假定之上的,只有在满足这些假定的环境中它才能正常运行:

  • 不能对拒绝服务(Denial of Service)攻击进行防护。Kerberos不能解决拒绝服务攻击,在该协议的很多环节中,攻击者都可以阻断正常的认证步骤。这类攻击只能由管理员和用户来检测和解决。
  • 主体必须保证他们的私钥的安全。如果一个入侵者通过某种方法窃取了主体的私钥,他就能冒充身份。
  • Kerberos无法应付口令猜测攻击。如果一个用户选择了弱口令,那么攻击者就有可能成功地用口令字典破解掉,继而获得那些由源自于用户口令加密的所有消息。
  • 网络上每个主机的时钟必须是松散同步的。这种同步可以减少应用服务器进行重放攻击检测时所记录的数据。松散程度可以以一个服务器为准进行配置。时钟同步协议必须保证自身的安全,才能保证时钟在网上同步。
  • 主体的标识不能频繁地循环使用。由于访问控制的典型模式是使用访问控制列表(ACLs)来对主体进行授权。如果一个旧的ACL还保存着已被删除主体的入口,那么攻击者可以重新使用这些被删除的用户标识,就会获得旧ACL中所说明的访问权限。

  

  

  

深入理解hadoop(三)的更多相关文章

  1. 深入理解Hadoop之HDFS架构

    Hadoop分布式文件系统(HDFS)是一种分布式文件系统.它与现有的分布式文件系统有许多相似之处.但是,与其他分布式文件系统的差异是值得我们注意的: HDFS具有高度容错能力,旨在部署在低成本硬件上 ...

  2. 深入理解hadoop之HDFS

    深入理解hadoop之HDFS 刚刚才写完关于mapreduce的一篇博文,趁热打铁接下来聊聊HDFS.本博文参考资料为HADOOP权威指南第3版完版,博文如有错漏之处,敬请指正. HDFS即Hado ...

  3. 深入理解hadoop之机架感知

    深入理解hadoop之机架感知 机架感知 hadoop的replication为3,机架感知的策略为: 第一个block副本放在和client所在的datanode里(如果client不在集群范围内, ...

  4. 深入理解OOP(三):多态和继承(动态绑定和运行时多态)

    在前面的文章中,我们介绍了编译期多态.params关键字.实例化.base关键字等.本节我们来关注另外一种多态:运行时多态, 运行时多态也叫迟绑定. 深入理解OOP(一):多态和继承(初期绑定和编译时 ...

  5. 理解RxJava:(三)RxJava的优点

    理解RxJava:(三)RxJava的优点 在第一部分,讲解了RxJava的基本结构.在第二部分,展示了operators的强大之处.但是你们可能仍然没有被说服,也没有足够的理由信服.下面是一些能让你 ...

  6. Hadoop三种安装模式:单机模式,伪分布式,真正分布式

    Hadoop三种安装模式:单机模式,伪分布式,真正分布式 一 单机模式standalone单 机模式是Hadoop的默认模式.当首次解压Hadoop的源码包时,Hadoop无法了解硬件安装环境,便保守 ...

  7. (转)hadoop三个配置文件的参数含义说明

     hadoop三个配置文件的参数含义说明     1       获取默认配置 配置hadoop,主要是配置core-site.xml,hdfs-site.xml,mapred-site.xml三个配 ...

  8. hadoop(三)

    hadoop(三) 1.对MapReduce的认识   MapReduce是运行在yarn上面的一个分布式运算框架,它是用来解决海量的分布式运算的.对于MapReduce来说,我们可以把它分成两部分来 ...

  9. Java 反射理解(三)-- Java获取方法信息

    Java 反射理解(三)-- Java获取方法信息 基本的数据类型.void关键字,都存在类类型. 举例如下: public class ClassDemo2 { public static void ...

  10. 深入理解hadoop数据倾斜

    深入理解hadoop之数据倾斜 1.什么是数据倾斜 我们在用map /reduce程序执行时,有时候会发现reduce节点大部分执行完毕,但是有一个或者几个reduce节点运行很慢,导致整个程序的处理 ...

随机推荐

  1. 帮助新手理解equals和hashCode

    入行快要两年,偶尔想起来equals和hash还是会有些晕,索性今天就更深入的弄明白一些,不足之处也请各位大神指出批评,共同进步. 刚开始学java的时候只是记忆性的来背,如果一个类在程序中可能进行比 ...

  2. UnixTime的时间戳的转换

    public static string XConvertDateTime(double unixTime) { System.DateTime time = System.DateTime.MinV ...

  3. 坑爹的鲁大师,VMware Workstation 报错(AsyncSocket error)一例解决

    今天准备把电脑上安装的VMware Play换成VMware Workstation,毕竟 Workstation 的快照功能还是很有必要的. 结果,VMware Workstation 安装成功后, ...

  4. java.lang.String 字符串操作

    1.获取文件名 //获取文件名,即就是去掉文件的后缀 /** * mypic.jpg * 获取文件名 * 1. 先找到"."的位置 * 2. 从第一个字符开始截取到".& ...

  5. vue2.0版本指令v-if与v-show的区别

    v-if: 判断是否加载,可以减轻服务器的压力,在需要时加载. v-show:调整css dispaly属性,可以使客户端操作更加流畅. v-if示例: <!DOCTYPE html> & ...

  6. Spring Boot(15)——自动配置Validation

    自动配置Validation当应用中的Classpath下存在javax.validation的实现时,Spring Boot的org.springframework.boot.autoconfigu ...

  7. node.js编译less文件

    大多数文章对于到底怎样编译less文件并没有一个详细的说明,清一色的grunt命令,看得也是晕晕的,所以也就有了这篇手记的存在. 步入正题 1.安装配置好sublime text3(包括各种实用插件) ...

  8. chomp成功的返回值是1,chomp对参数去回车符后会改变参数的值,是传入又是传出参数。$arrow_notation = ( chomp( $unpackeing = <STDIN>) );

    44 my $unpackeing;     45 my $arrow_notation = '';     46 print "Enter  name to query, enter ex ...

  9. DHCP和PXE

    继续学习,Let's go!DHCP和PXE都是什么呢?如果非科班出身,可能一脸懵逼,好多东西需要去学习了,真的,继续学吧,付出不一定会有回报,不付出肯定就是等死了,呵呵! 一.DHCP 真正需要手动 ...

  10. React开发实时聊天招聘工具 -第四章 Redux

    复杂以后 setState 就不太方便了 所以使用Redux来管理 React只负责View. Store.State.Dispatch.Reducer reducer(state,action) { ...