一、Hadoop的组件:
1、HDFS
一个高可靠、高吞吐量的分布式文件系统
存储海量数据
分布式
安全性
副本数据
数据是以block的方式进行存储的,128M
比如:200M—128M 72M
2、MapReduce
一个分布式的离线并行计算框架
对海量数据的处理
分布式
思想:
分而治之
大数据集分为小的数据集
每个数据集进行逻辑业务处理(map)
合并统计数据结果(reduce)
3、Yarn
分布式资源管理框架
管理整个集群的资源(内存、CPU核数)
分配调度集群的资源
4、Common
工具,基础,为基他Hadoop模块提供基础设施。
二、HDFS服务功能
NameNode是主节点,存储文件的元数据,如文件名、文件目录结构、文件属性(生成时间、副本数、文件权限),以及每个文件的块列表和块所在DataNode等。
DataNode在本地文件系统存储文件块数据,以及块数据的校验和。
SecondaryNameNode用来监控HDFS状态的辅助后台程序,每隔一段时间获取HDFS元数据的快照。
三、YARN服务功能
ResourceManager
处理客户端请求
启动/监控ApplicationMaster
监控NodeManager
资源分配与调度
NodeManager
单个节点上的资源管理
处理来自ResourceManager的命令
处理来自ApplicationMaster的命令
ApplicationMaster
数据切分
为应用程序申请资源,并分配给内部任务
任务监控与容错
Container
对任务运行环境的抽象,封装了CPU、内存等多维资源以及环境变量、启动命令等任务运行相关的信息
四、离线计算框架MapReduce
将计算过程分为两个阶段,Map和Reduce
Map阶段并行处理输入数据
Reduce阶段对Map结果进行汇总
Shuffle连接Map和Reduce两个阶段
Map Task将数据写到本地磁盘
Reduce Task从每个Map Task上读取一份数据
仅适合离线批处理
具有很好的容错性和扩展性
适合简单的批处理任务
缺点明显
启动开销大、过多使用磁盘导致效率低下等。