前言
在介绍Hadoop之前,我们先了解大数据的相关概念;
大数据是指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。
那么总结出来有五个特点:
(1)大量-volume
在数据采集、存储和计算的过程中,数据量非常大。
通过计算机存储单位来举例
1GB = 1024 MB
1TB = 1024 GB
1PB = 1024 TB
1EB = 1024 PB
1ZB = 1024 EB
1YB = 1024 ZB
1BB = 1024 YB
1NB = 1024 BB
1DB = 1024 NB
基于IDC的报告预测,从2013年到2020年,全球数据量会从4.4ZB猛增到44ZB!而到了2025年,全球会有163ZB的数据量;所以传统的关系型数据库处理处理不了海量数据!
(2)高速-velocity
数据的创建、存储、分析要求被高速处理,举例电商网站的个性化推荐实时完成。
(3)多样-variety
数据形式和来源多样化。
(4)真实-veracity
确保数据的真实性,才能保证数据分析的正确性。
(5)低价值-value
数据价值密度相对较低,如何结合业务逻辑并通过强大的机器算法来挖掘数据价值,是大数据时代最需要解决的问题。
大数据在生活中一般运用在仓储物流,例如全国仓库之间实现智能分仓、就近备货和预测式调拨,实现”客户需要的商品就在离客户最近的配送中心;电商零售领域的话,像双十一的实时销售大屏;汽车领域,现在利用大数据和物联网技术的无人驾驶汽车,在不远将来会走入我们的日常生活;生物医学领域,可以帮助我们实现流行病预测、智慧医疗、健康管理,同时还可以帮助我们解读DNA;还有常见的人工智能、智慧城市等等。
简介
定义
Hadoop 是一个适合大数据的分布式存储和计算平台;
如前所述,狭义上说Hadoop就是一个框架平台,广义上讲Hadoop代表大数据的一个技术生态圈,包括很多其他软件框架;
Hadoop生态圈技术栈有hadoop(HDFS+MapReduce+Yarn)、Hive数据仓库工具等等。
起源
Hadoop最早起源于Nutch,Nutch 的创始人是Doug Cutting;
Nutch 是一个开源 Java 实现的搜索引擎。它提供了我们运行自己的搜索引擎所需的全部工具。包
括全文搜索和Web爬虫,但随着抓取网页数量的增加,遇到了严重的可扩展性问题——如何解决
数十亿网页的存储和索引问题;
2003年、2004年谷歌发表的两篇论文为该问题提供了可行的解决方案。GFS,可用于处理海量网页的存储;MapReduce,可用于处理海量网页的索引计算问题;
Google的三篇论文(三驾马车)
GFS:Google的分布式文件系统(Google File System)
MapReduce:Google的分布式计算框架
BigTable:大型分布式数据库
发展演变关系
GFS —> HDFS
Google MapReduce —> Hadoop MapReduce
BigTable —> HBase
随后,Google公布了部分GFS和MapReduce思想的节,DougCutting等人用2年的业余时间实现了DFS和MapReduce机制,使Nutch性能飙升;
2005年,Hadoop 作为Lucene的子项目Nutch的一部分引入Apach;
2006年,Hadoop从Nutch剥离出来独立;
2008年,Hadoop成为Apache的顶级项目;
Hadoop这个名字来源于Hadoop之父Doug Cutting儿子的毛绒玩具象;
特点
扩容能力(scalable)
hadoop是在**计算机集群**内分配数据并完成计算任务,集群可以方便的扩展到数以千计个节点
低成本(economical)
Hadoop通过**普通廉价**的机器组成服务集群来分发以及处理数据,以至于成本很低
高效率(efficient)
hadoop可以在节点之间**动态并行**地移动数据,使速度非常快
可靠性(rellable)
能自动维护数据地多份复制,并且在任务失败后能自动重新部署rodoply计算任务——副本
优缺点
优点
具有存储和处理数据能力的**高可靠性**
通过可用的计算机集群分配数据,完成存储和计算任务,这些集群可以方便地扩展到数以千计的节点中,具有**高扩展性**
能够在节点之间进行动态地移动数据,并保证各个节点的动态平衡,处理速度非常快,具有**高效性**
能够自动保存数据的多个副本,并且能够自动将失败的任务重新分配,具有**高容错性**
缺点
不适用于低延迟数据访问
不能高效存储大量小文件
不支持多用户写入并任意修改文件