Hadoop是什么:
– Hadoop是一种分析和处理海量数据的软件平台;
– Hadoop是一款开源软件,使用JAVA开发;
– Hadoop可以提供一个分布式基础架构;
Hadoop特点:
– 高可靠性、高扩展性、高效性、高容错性、低成本
Hadoop常用组件:(下面三个组件是针对于运维,其他的不在此论述)
• HDFS: Hadoop分布式文件系统(核心组件)
• MapReduce: 分布式计算框架(核心组件)
• Yarn: 集群资源管理系统(核心组件)
HDFS结构:
图像 小部件
HDFS角色及概念:(负责存储)
• 是Hadoop体系中数据存储管理的基础,是一个高度容错的系统,用于在低成本的通用硬件上运行
Client :
– 切分文件,将文件切分成块,每块大小128MB,不够的也划分128MB空间.且每块都可以有多个副本;
– 访问HDFS;
– 与NameNode交互,获取文件位置信息;
– 与DataNode交互,读取和写入数据.
NameNode:
– Master节点,管理HDFS的名称空间和数据块映射信息,配置副本策略,处理所有客户端请求.
Secondary NameNode:
– 定期合并fsimage 和fsedits,推送给NameNode;
– 紧急情况下,可辅助恢复NameNode;
但Secondary NameNode并非NameNode的热备.
DataNode:
– 数据存储节点,存储实际的数据;
– 汇报存储信息给NameNode.
原理整合:
切分数据,并不能直接存储数据,需要访问,由来指定数据存储的位置,然后将数据存储在相应的中,同时会将数据于位置的映射信息存储在中; HDFS修改数据是采用一种类似于打补丁的方式,将修改信息存放在中,会定时的将和进行合并,达到更新数据的目的.
MapReduce角色及概念(负责分布式计算):
JobTracker:
– Master节点只有一个;
– 管理所有作业/任务的监控、错误处理等;
– 将任务分解成一系列任务,并分派给TaskTracker;
TaskTracker:
– Slave节点,一般是多台;
– 运行Map Task和Reduce Task;
– 并与JobTracker交互,汇报任务状态.
Map Task:
– 解析每条数据记录,传递给用户编写的map()并执行,将输出结果写入本地磁盘;
– 如果为map-only作业,直接写入HDFS.
Reducer Task:
– 从Map Task的执行结果中,远程读取输入数据,对数据进行排序,将数据按照分组传递给用户编写的reduce函数执行.
简单来讲就是负责分派任务,负责完成任务,并不会关心通过什么方式完成,整个hadoop都是通过这种类似一个领导,下面管理多个下属,领导负责分派任务,下属负责完成这种方式完成的.
Yarn角色及概念:(负责集群管理)
Container:
– 对任务运行行环境的抽象,封装了CPU 、内存等;
– 多维资源以及环境变量、启动命令等任务运行相关的信息资源分配与调度.
ApplicationMaster:
– 数据切分;
– 为应用程序申请资源,并分配给内部任务;
– 任务监控与容错.
Yarn的核心思想:
将JobTracker和TaskTacker进行分离,它由下面几大构成组件:
– ResourceManager一个全局的资源管理器;
– NodeManager每个节点(RM)代理;
– ApplicationMaster表示每个应用;
暂无评论内容