Hadoop 是什么
1)Hadoop 是一个由 Apache 开发的分布式系统基础架构;
2)主要解决:海量数据的存储和海量数据的分析计算问题;
3)广义上来说,HADOOP 通常是指——HADOOP 生态圈;
HADOOP生态圈
HADOOP生态圈主要包含下图中的
1)Hadoop HDFS:一个高可靠、高吞吐量的分布式存储文件系统;
2)Hadoop MapReduce:一个分布式的离线并行计算框架;
3)Hadoop YARN:作业调度与集群资源管理的框架;
4)Hadoop Common:支持其他模块的工具模块(Configuration、RPC、序列化机制、日志 操作)。
HDFS 架构概述
1)NameNode(nn):存储文件的元数据,如文件名,文件目录结构,文件属性(生成时间、副本数、 文件权限),以及每个文件的块列表和块所在的DataNode等。
2)DataNode(dn):在本地文件系统存储文件块数据,以及块数据的校验和。
3)Secondary NameNode(2nn):用来监控HDFS状态的辅助后台程序,每隔一段时间获取HDFS元数据的快照。
YARN 架构概述
1)ResourceManager(rm):处理客户端请求、启动/监控 ApplicationMaster、监控 NodeManager、 资源分配与调度;
2)NodeManager(nm):单个节点上的资源管理、处理来自 ResourceManager 的命令、处理来 自 ApplicationMaster 的命令;
3)ApplicationMaster:数据切分、为应用程序申请资源,并分配给内部任务、任务监控与容错。
4)Container:对任务运行环境的抽象,封装了 CPU、内存等多维资源以及环境变量、启动 命令等任务运行相关的信息。
MapReduce 架构概述
主要由四个部分组成,分别是:Client、JobTracker、TaskTracker以及Task。
1、Client:程序通过Client提交到JT端,可以通过Cilent提供的接口查看作业运行状态。
2、JobTracker: 监控资源、调度作业,监控所有的TT和Job的健康,一旦发现失败,就会将任务转移到其他节点。
3、TaskTracker: 想JT汇报资源使用情况和作业运行情况,接受JT的命令并执行。
4、Task: Task 分为Map Task 和Reduce Task 两种,均由TaskTracker 启动。