深入理解hadoop(三)
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(三)的更多相关文章
- 深入理解Hadoop之HDFS架构
Hadoop分布式文件系统(HDFS)是一种分布式文件系统.它与现有的分布式文件系统有许多相似之处.但是,与其他分布式文件系统的差异是值得我们注意的: HDFS具有高度容错能力,旨在部署在低成本硬件上 ...
- 深入理解hadoop之HDFS
深入理解hadoop之HDFS 刚刚才写完关于mapreduce的一篇博文,趁热打铁接下来聊聊HDFS.本博文参考资料为HADOOP权威指南第3版完版,博文如有错漏之处,敬请指正. HDFS即Hado ...
- 深入理解hadoop之机架感知
深入理解hadoop之机架感知 机架感知 hadoop的replication为3,机架感知的策略为: 第一个block副本放在和client所在的datanode里(如果client不在集群范围内, ...
- 深入理解OOP(三):多态和继承(动态绑定和运行时多态)
在前面的文章中,我们介绍了编译期多态.params关键字.实例化.base关键字等.本节我们来关注另外一种多态:运行时多态, 运行时多态也叫迟绑定. 深入理解OOP(一):多态和继承(初期绑定和编译时 ...
- 理解RxJava:(三)RxJava的优点
理解RxJava:(三)RxJava的优点 在第一部分,讲解了RxJava的基本结构.在第二部分,展示了operators的强大之处.但是你们可能仍然没有被说服,也没有足够的理由信服.下面是一些能让你 ...
- Hadoop三种安装模式:单机模式,伪分布式,真正分布式
Hadoop三种安装模式:单机模式,伪分布式,真正分布式 一 单机模式standalone单 机模式是Hadoop的默认模式.当首次解压Hadoop的源码包时,Hadoop无法了解硬件安装环境,便保守 ...
- (转)hadoop三个配置文件的参数含义说明
hadoop三个配置文件的参数含义说明 1 获取默认配置 配置hadoop,主要是配置core-site.xml,hdfs-site.xml,mapred-site.xml三个配 ...
- hadoop(三)
hadoop(三) 1.对MapReduce的认识 MapReduce是运行在yarn上面的一个分布式运算框架,它是用来解决海量的分布式运算的.对于MapReduce来说,我们可以把它分成两部分来 ...
- Java 反射理解(三)-- Java获取方法信息
Java 反射理解(三)-- Java获取方法信息 基本的数据类型.void关键字,都存在类类型. 举例如下: public class ClassDemo2 { public static void ...
- 深入理解hadoop数据倾斜
深入理解hadoop之数据倾斜 1.什么是数据倾斜 我们在用map /reduce程序执行时,有时候会发现reduce节点大部分执行完毕,但是有一个或者几个reduce节点运行很慢,导致整个程序的处理 ...
随机推荐
- java获取公网ip以及物理地址和代理商
package ipconfig; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStr ...
- sh/bash/csh/Tcsh/ksh/pdksh等shell本质区别
sh/bash/csh/Tcsh/ksh/pdksh等shell本质区别 1. Shell脚本的书写 在写Shell脚本时,往往第一行要注明用什么解释器来解释这个脚本. 如#!/bin/bash即用/ ...
- spring 中文乱码问题
spring 开发过程中的中文乱码问题主要分为以下几种: 1.前端传参数到后台前 就已经乱码. 这个很大原因就是前端的问题了! 2.传入后台后,乱码. 可能存在几个原因: 2.1 传入tomcat前 ...
- Objective-C 里面的类对象复用小结
OC 提供了单继承 (Inheritance), Category, Extension, Protocol 这几种基本的类与对象层面的复用机制,作一小结. 在这几个机制中,继承提供了纵向的复用,可以 ...
- struts2的action是线程安全的,struts1的action不是线程安全的真正原因
为什么struts2的action是线程安全的,struts1的action不是线程安全的? 先对struts1和struts2的原理做一个简单的讲解 对于struts1 ,当第一次**.do的请求过 ...
- 当前主要的常用的PHP环境部署套件比较
当前主要的常用的PHP环境部署套件比较 作为新手,需要学习PHP,或者需要搭建PHP+MySQL运行环境时,就需要去找各种搭建方法,一步一步按照操作流程操作,不仅繁琐,而且容易出错,还会带来安全隐患. ...
- MVC学习(一)
http://www.cnblogs.com/QLeelulu/archive/2008/09/30/1302462.html
- 合并百度影音的离线数据 with python 2.1 bdv格式的更新
最近百度影音的离线下载文件,格式有新变化. 经过分析,是bdv格式又有新格式,从最初的bdv0001,到bdv.config 的file....,这次更新的格式是直接包含一个片段,其中还有使用guid ...
- ZooKeeper系列(三)
前面虽然配置了集群模式的Zookeeper,但是为了方面学建议在伪分布式模式的Zookeeper学习Zookeeper的shell命令. 一.Zookeeper的四字命令 Zookeeper支持某些特 ...
- jquery中ajax使用error调试错误
error:function (XMLHttpRequest, textStatus, errorThrown) { } XMLHttpRequest.readyState状态码 0:未初始化还没有 ...