一、大数据概念
1.大数据概念
大数据主要解决的是,海量数据的采集、存储、分析、计算等问题
大数据有以下特点,简称4V:
- Volume(大量):现如今,数据量相当庞大,达到了EB的级别,我们知道一般我们接触到的数据是KB,MB,GB,TB,EB等,可见EB量级的数据有多么庞大
- Velocity(高速):现在,是个信息爆炸的时代,可能一天就能产生相当庞大的数据,也就是信息高速产生
- Variety(多样):以前我们学习过MySQL,它是处理关系型数据库的,但是现实生活中可能有多种多样类型的数据需要存储、处理
- Value(价值):数据很多,提取有价值的信息也就很难,这也是大数据的一大特点
二、Hadoop概述
1.什么是Hadoop
Hadoop是一个分布式系统基础架构,用于解决海量存储和海量数据的分析计算
Hadoop生态系统最基础的三个组件:
- HDFS:Hadoop Distributed File System,主要用于分布式存储,提供可扩展、高容错的数据存储
- MapReduce:主要用于数据处理,可以处理分布式系统中大量的结构化和非结构化的数据,具有简单、可扩展、高容错、高速等优点
- Yarn:Yet Another Resource Negotiator,主要用于资源管理,Yarn被称作Hadoop的操作系统,负责管理和监控工作的负载
2.各个组件的架构
(1)HDFS(NameNode,DataNode,Secondary NameNode)
主要就是关注以下几个点:
- NameNode:也叫做nn,相当于老板,存储文件的元数据,比如文件名、文件目录结构、文件属性(生成时间、副本数、文件权限等),还有每个文件的块列表和块所在的DataNode等
- DataNode:也叫做dn,在本地文件系统存储文件块数据,以及块数据校验和
- Secondary NameNode:也叫做2nn,每隔一段时间对NameNode元数据进行备份
(2)Yarn(ResourceManager,NodeManager,ApplicationMaster,Container)
以下几个点:
- ResourceManager:也叫作rm,是整个集群资源(内存、CPU等)的老大
- NodeManager:也叫nm,是单个服务器资源的老大
- ApplicationMaster:叫am,单个运行任务的老大
- Container:容器,相当于一台独立的服务器,里面封装了任务运行时所需要的资源
可以理解为:
- 客户端有多个
- 集群上可以运行多个ApplicationMaster
- 每个NodeManager上可以有多个Container
(4)MapReduce
计算过程分为map和reduce两个阶段:
- Map阶段并行处理输入数据
- Reduce阶段对Map的结果进行汇总
3.三个组件的关系
关系如下图:
Client发送请求会到ResourceManager中,然后会分配各种资源去DataNode中去查询