一.要点
1.Hadoop目的是让多台计算机同时解决一个问题
2.HDFS(Hadoop Distributed File System 分布式存储系统)是一个分布式文件系统,有目录,目录下可以存储文件
3.HDFS不适合存储大量小文件,不适合低延迟数据访问,不支持多用户写入及任意修改文件
4.用户命令,参考http://hadoop.apache.org/docs/r1.0.4/cn/hdfs_shell.html
1 hadoop fs -ls 2 hadoop fs -mkdir /test/t1
5.hadoop资源调度器
(1)默认的调度器FIFO
Hadoop中默认的调度器,它先按照作业的优先级 高低,再按照到达时间的先后选择被执行的作业。
(2)计算能力调度器Capacity Scheduler
支持多个队列,每个队列可配置一定的资源量,每个队列采用FIFO调度策略,为了防止同一个用户的作业独占队列中的资源,该调度器会对同一用户提交的作业所占资源量进行限定。调度时,首先按以下策略选择一个合适队列:计算每个队列中正在运行的任务数与其应该分得的计算资源之间的比值,选择一个该比值最小的队列;然后按以下策略选择该队列中一个作业:按照作业优先级和提交时间顺序选择,同时考虑用户资源量限制和内存限制。
(3)公平调度器Fair Scheduler
按资源池(pool)来组织作业,并把资源公平的分到这些资源池里。默认情况下,每一个用户拥有一个独立的资源池,以使每个用户都能获得一份等同的集群资源而不管他们提交了多少作业。按用户的 Unix 群组或作业配置(jobconf)属性来设置作业的资源池也是可以的。在每一个资源池内,会使用公平共享(fair sharing)的方法在运行作业之间共享容量(capacity)。用户也可以给予资源池相应的权重,以不按比例的方式共享集群。
除了提供公平共享方法外,公平调度器允许赋给资源池保证(guaranteed)最小共享资源,这个用在确保特定用户、群组或生产应用程序总能获取到足够的资源时是很有用的。当一个资源池包含作业时,它至少能获取到它的最小共享资源,但是当资源池不完全需要它所拥有的保证共享资源时,额外的部分会在其它资源池间进行切分。
二.架构
资源管理器(Resource Manager,RM)每个集群中都有一个RM的守护进程,专门负责集群中可用资源的分配和管理
节点管理器(Node Manager,NM)每个节点都有一个NM的守护进程,负责节点的本地资源管理。在RM中,NM代表本地节点
Application Master(AM)每个应用都有一个AM的守护进程,它封装了应用程序所有的逻辑结构和依赖库信息。AM负责与RM进行资源协商,并协同NM工作以完成应用的功能
容器(Container)这是分配给具体应用的资源的抽象形式。AM是一个启动和管理应用整个生命周期的特殊容器。
客户端(Client)这是集群中能向RM提交应用的实例,并且执行了执行应用所需的AM类型