什么是大数据
大数据(Big Data
):指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。
大数据主要解决,海量数据的采集、存储和分析计算问题。
大数据4V特征:
- Volume(量大):存储量大,计算量大
- Variety(多样):来源多,格式多
- Velocity(快速):数据增长速度快,处理速度要求快
- Value(价值):价值密度低,和数据总量的大小成反比
Hadoop是什么
Hadoop
是一个由Apache
基金会所开发的分布式系统基础架构。- 主要解决,海量数据的存储和海量数据的分析计算问题。
- 广义上来说,
Hadoop
通常是指一个更广泛的概念——Hadoop生态圈
。
Hadoop发展历史
Hadoop
创始人Doug Cutting
,为了实现与Google
类似的全文搜索功能,他在Lucene
框架基础上进行优化升级,查询引擎和索引引擎。2001年年底
Lucene
成为Apache
基金会的一个子项目。对于海量数据的场景,
Lucene
框架面对与Google
同样的困难,存储海量数据困难,检索海量数据速度慢。学习和模仿
Google
解决这些问题的办法:微型版Nutch
。可以说
Google
是Hadoop
的思想之源。Google
在大数据方面的三篇论文:GFS -> HDFS
Map-Reduce -> MR
BigTable -> HBase
2003-2004年,
Google
公开了部分GFS
和MapReduce
思想的细节,以此为基础Doug Cutting
等人用了2年业余时间实现了DFS
和MapReduce
机制,使Nutch
性能飙升。2005年
Hadoop
作为Lucene
的子项目Nutch
的一部分正式引入Apache
基金会。2006年3月,
Map-Reduce
和Nutch Distributed File System(NDFS)
分别被纳入到Hadoop
项目中,Hadoop
就此正式诞生,标志着大数据时代来临。名字来源于
Doug Cutting
儿子的玩具大象。
大数据的优势
高可靠性:
Hadoop
底层维护多个数据副本,所以即使Hadoop
某个计算元素或存储出现故障,也不会导致数据的丢失。高扩展性:在集群间分配任务数据,可方便的扩展数以千计的节点。
例如:淘宝和京东,在双11、618等购物节,可以动态的增加服务器。
高效性:在
MapReduce
的思想下,Hadoop
是并行工作的,以加快任务处理速度。高容错性:能够自动将失败任务重新分配。
Hadoop组成(重点)
Hadoop3.x的细节优化
Java改为支持8及以上
HDFS支持纠删码
HDFS支持多NameNode
MR任务级本地优化
多重服务默认端口变更
HDFS架构概述
Hadoop Distributed File System
,简称HDFS
,是一个分布式文件系统。
节点类型分为三类:
NameNode(nn)
:存储文件的元数据,如文件名,文件目录结构,文件属性(生成时间、副本数、文件权限),以及每个文件的块列表和块所在的DataNode
等。DataNode(dn)
:在本地文件系统存储文件块数据,以及块数据的校验和。Secondary NameNode(2nn)
:每隔一段时间对NameNode
元数据备份。
YARN架构概述
Yet Another Resource Negotiator
简称YARN
,另一种资源协调者,是Hadoop
的资源管理器。
共有4个部分:
ResourceManager(RM)
:整个集群资源(内存、CPU等)的老大。NodeManager(NM)
:单个节点服务器资源老大。ApplicationMaster
:单个任务运行的老大。Container
容器,相当于一台独立的服务器,里面封装了任务运行所需要的资源,如内存、CPU、磁盘、网络等。
MapReduce架构概述
MapReduce
将计算过程分为两个阶段:Map
和Reduce
。
Map
阶段并行处理输入数据。Reduce
阶段对Map
结果进行汇总。