HDFS架构:是一个分布式文件系统,解决海量数据(很多个文件)存储问题
? ? ???1、NameNode(nn):存储文件的元数据(描述真实数据的数据),一条元数据中可能包含文件名、目录结构、文件属性(生成时间、副本数、权限),以及每个文件的块数据的分布列表(所在的nd机器上),相当于数据的目录。
? ? ? ? 2:DataNode(dn):在HDFS系统上管理着真实的数据,为了数据的安全,将数据切成块的形式,分别存储的不同的节点上(服务器上),块数据的校验。
? ? ? ? 3:SecondaryNameNode:每隔一段时间帮助NameNode元数据进行备份也可以在NameNode死掉并数据丢失的情况下紧急恢复NameNode中的数据,但是注意可能会造成数据的丢失以后开发中会使用高可用集群,在此时是没有SecondaryNameNode节点。
程序(作业、任务、进程)进行资源调配? ?
Client(用户)提交作业(一个MapReduce分布式程序)? Client向yarn提交任务作业,yarn进行资源的调度
1、ResourceManager :整个集群资源的老大
? ? ? ? ? ? ? ? ①处理客户端的请求
? ? ? ? ? ? ? ? ②监控NodeManager状态
? ? ? ? ? ? ? ? ④启动或监控ApplicationMaster(一个作业就有一个ApplicationMaster)
? ? ? ? ? ? ? ? ⑥资源的分配与调度
2、NodeManager? ?也就是单台服务器的资源老大
? ? ? ? ? ? ? ? ③?管理单个节点上的资源
? ? ? ? ? ? ? ? ⑦?处理来自ResourceManager的命令
? ? ? ? ? ? ? ? 11:处理来自ApplicationMaster的命令
3、ApplicationMaster(位于Container内部)
? ? ? ? ? ? ? ? ⑤是一个作业的管理者
? ? ? ? ? ? ? ? ⑨负责数据的切分,切成几份数据就会对应启动几个MapTask程序(需要container封装资源)
? ? ? ? ? ? ? ? ⑩为应用程序(MapTask)申请资源(ApplicationMaster向ResourceManager 申请多少个数量的资源,然后ResourceManager 会监控找到可以调度相应资源的NodeManager,让对应的NodeManager创建Container,如何让mapTask运行起来,就需要ApplicationMaster,ApplicationMaster会给NodeManager下指令,需要在当前NodeManager创建Container)并分配给内部任务(一个程序作业会分成多个mapTask和多个reduceTask进行处理)
? ? ? ? ? ? ? ? 12:任务的监控与容错
4、Container
? ? ? ? ? ? ? ? ⑧容器,是yarn中资源的抽象,它封装某个节点上的资源(内存、CPU、磁盘、网络)
????????????????
5、MapTask
6、ReduceTask