一、什么是大数据,什么是Hadoop
大数据:指无法再一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多元化的信息资产。
数据存储单位:bit<Byte<KB<MB<GB<TB<PB<EB<ZB<YB<BB<NB<DB
大数据的特点:
- Volume(大量)
- Velocity(高速)
- variety(多样)
- Value(低价值密度)
Hadoop是一个由Apache基金会所开发的分布式系统基础框架,主要解决,海量数据的存储和海量数据的分析计算问题。
Hadoop的优势:
- 高可靠性:因为Hadoop假设计算元素和存储会垂涎故障,所以它维护多个工作数据副本,在出现故障时可以对失败的节点重新分布处理。
- 高扩展性:在集群间分配任务数据,可方便的扩展数以千计的节点
- 高效性:在MapReduce的思想下,Hadoop是并行工作的,以加快任务处理速度
- 高容错性:自动报错多副本数据,并且能够自动将失败的任务重新分配
二、Hadoop基本结构
Hadoop的组成:
- Hadoop HDFS:一个高可靠、高吞吐量的分布式文件系统
- Hadoop MapReduce:一个分布式的离线并行计算框架
- Hadoop YARN:作业调度与集群资源管理的框架
- Hadoop Common:支持其他模块的工具模块
HDFS架构概述:
- NameNode(nn):存储文件的元数据,如文件名,文件目录结构,文件属性(生成时间、副本数、文件权限),以及每个文件的块列表和块所在的DataNode等。
- DataNode(dn):在本地文件系统存储文件块数据,以及块数据的校验
- Secondary NameNode(2nn):用来监控HDFS状态的辅助后台程序,每隔一段时间获取HDFS元数据的快照
YARN架构概述:
- ResourceManager(rm):处理客户端请求、启动/监控ApplicationMaster、监控NodeManager、资源分配与调度
- NodeManager(nm):单个节点上的资源管理、处理来自ResourceManager的命令,处理来自ApplicationMaster的命令
- ApplicationMaster:数据切片、为应用程序申请资源、并分配给内部认为、任务监控和容错。
- Container:对任务运行环境的抽象,封装了CPU、内存等多维资源以及环境变量、启动命令等任务运行相关的信息。
MapReduce架构概述:
- MapReduce将计算过程分为两个阶段:Map和Reduce
- Map阶段并行处理输入数据
- Reduce阶段对Map结果进行汇总
三、大数据生态体系