linux基础 为hadoop集群的搭建扫清了障碍,也为内存的管理,文件系统的管理扫清了障碍
接着到Hadoop的阶段,首先做集群的安装,深入到使用这两个核心的组件,分布式文件系统HDFS,解决大量数据怎么存储的问题,第二个就是分布式计算MapReduce。MapReduce的包含Yarn和MapReduce,随着集群规模的扩大,资源的管理必要用一个单独的组件Yarn来管理,程序员只要关注如何来写程序就好了。
然后讲了Zookeeper;
轻量级组件,往大数据集群里导数据的,比如Sqoop和Flume,分别代表了SQL和Log;如果是第三方的数据,可以用第三方的API来抽取数据。
Yarn作为资源管理器,Zookeeper作为资源协调器;
资源主要有disk/mem/cpu,G、G、core(PC、VC)(物理核,虚拟核)。Yarn管理内存和cpu;cloudera manager里cluster中有动态资源池和静态资源池。
configuration : 静态资源池 HDFS Yarn 占整个操作系统资源的百分比,按组件来划分。之所以能实现这样划分,因为在linux中有个资源隔离技术叫CGroup,大名顶顶的Docker(linux上的容器)就是基于CGroup。
动态资源池,不是基于组件之间的隔离,是基于yarn组件内部的资源管理。若果靠编程来写作业,yarn组件要分大一点。
一个客户端提交了一个作业,另一个也提交了作业,就会对资源竞争,当资源、服务不够用的时候就会发生资源管理。怎么协调几个作业之间的关系。Yarn根据不同的客户端过来的作业,按照一定的策略去分配集群的资源。由yarn组件的指挥部scheduler调度器来做,有公平fair、优先级、FIFO。默认是基于优先级capacity的。Cloudera在自己的公平调度器里实现了基于优先级的功能 DRF (在yarn选项里设置weight权重)整个资源池的比例,乘上权重。虚拟核的数量,内存的最大值最小值,同时最大的作业数(一般资源池都是跟客户绑定的)