Hadoop1.0的局限和不足
Hadoop2.0的优化与发展
Hadoop1.0到Hadoop2.0对比

不断完善的Hadoop生态系统

整体结构

HDFS1.0中存在的问题
HDFS Federation架构
提供多个名称节点,由用户设置,名称节点之间彼此独立
Federation提供了向后的兼容性:单名称节点的应用程序可以无缝迁移到多名称节点
所有的名称节点共享底层的数据节点

通过用户挂载不同的命名空间,使用不同的名称节点,用户可以看到一个全局命名空间挂载表,用户可以看到每个子命名空间

HDFS Federation设计可解决单名称节点存在的问题
缺陷
存在单点故障:只有一个JobTracker负责整个作业的管理调度

JobTracker"大包大揽"导致任务过重:资源管理调度分析、任务管理分配、任务监控以及失败的恢复
容易出现内存溢出:只考虑MapReduce的任务数量,不考虑单个MapReduce任务消耗的资源,多个耗内存的任务一起执行,可能会导致内存溢出
资源划分不合理:将资源等分为slot,Map的slot和Reduce的slot隔离,Map在运行时,Reduce的slot资源浪费
将JobTracker三大功能拆分

MapReduce1.0和Hadoop2.0
Yarn体系结构

Yarn各个组成部分作用
ResourceManager作用、
ResourceManager包括了Scheduler(调度器)和Applications Manager(应用程序管理器)

将内存资源以容器的形式分配,而不是以slot的形式分配

ApplicationMaster

ApplicationMaster的主要功能
NodeManager:驻留在一个Yarn集群中的每一个节点的代理
NodeManager的主要说明

YARN和Hadoop平台其他组件的统一部署

Yarn提交作业之后的全流程执行过程
用户编写客户端应用程序,向Yarn提交应用程序,提交内容包括:Applications Master程序、启动Applications Master命令、以及用户程序

ResourceManager负责接受和处理来自客户端请求

ApplicationMaster被创建会首先向ResourceManager注册:为了ResourceManager能够实时监控ApplicationMaster

ApplicationMaster向ResourceManager申请资源

ResourceManager以“容器”的形式向ApplicaionMaster分配资源

资源二次分配,在容器中将资源分配给Map任务和Reduce任务

各个任务向ApplicationMaster汇报自己的状态和进度

应用承租运行完成,注销关闭ApplicationMaster

大部分API以及接口是兼容的

Yarn相对于MapReduce1.0的优势
目标:在一个Yarn上运行多个计算框架

为什么要实现“一个集群多个框架”?

为了避免不同类型的应用之间互相干扰,企业需要把内部的服务器拆分成多个集群,分别安装运行不同的计算框架,“即一个框架一个集群”
Yarn的实现优势

Yarn上部署各种计算框架

Pig简要介绍


Pig提供的相关操作
Pig的优势

Pig能做什么?
加载数据,表达转换数据,存储最终结果

企业将数据收集通过Pig进行数据加工:对收集过来的数据进行抽取、转换、加载,之后再放入数据仓库(Hive)

Pig Latin的应用程序实例

将执行代码转换为流程图,使用MapReduce解决

Pig的应用场景

Pig的主要用户

Tez框架简要介绍

Tez将Map和Reduce拆分成更细粒度的字任务

HiveQL在MapReduce和Tez中的执行情况对比

Tez可应用于多个框架

Tez在Hadoop生态系统中的作用

Tez+Hive与Impala、Dremel、Drill区别

Hadoop缺陷

Spark的优势

Kafka
Kafka作用

