Hadoop介绍
进入大数据时代后,我们的日常生活会产生大量的数据,如何对这些数据进行整理,发掘,分析,这中间面临一系列的问题,比如,海量的数据怎么存储,一台电脑存不下,我就用好多电脑存,存都没地方存,我怎么才能把这些数据加载到内存里计算分析,那我能不能内存里不加载数据,而是把程序发送到具体的主机分析数据,一台电脑分析数据慢,我能不能把任务拆分,多台电脑一起分析数据等等,多亏我们的卡大爷带领着团队开源了hadoop软件,解决了一些问题,接下来我们一起了解下这个软件。
- 狭义上Hadoop指的是Apache软件基金会的一款开源软件。
用java语言实现,开源
允许用户使用简单的编程模型实现跨机器集群对海量数据进行分布式计算处理
- Hadoop核心组件
Hadoop HDFS(分布式文件存储系统):解决海量数据存储
Hadoop YARN(集群资源管理和任务调度框架):解决资源任务调度
Hadoop MapReduce(分布式计算框架):解决海量数据计算
- 官网
http://hadoop.apache.org/
- 广义上Hadoop指的是围绕Hadoop打造的大数据生态圈。
Hadoop发展简史
Hadoop之父:Doug Cutting
上图就是我们的卡大爷
Hadoop起源于Apache Lucene子项目:Nutch
Nutch的设计目标是构建一个大型的全网搜索引擎。
遇到瓶颈:如何解决数十亿网页的存储和索引问题
一开始我们的卡大爷想做一个大型的全网搜索引擎,这就需要检索海量的数据,海量的数据怎么存,怎么加载程序运算,这是个很头疼的问题,一直没有头绪。
这个事情的推动,要感谢我们的google,作为全球最大的搜索引擎,他当然有遇到这个问题,但是谷歌内部的牛人,他顺利的解决了计算和存储的问题。
尴尬的就是,谷歌又不愿意把先进的技术分享给别人,但是他又憋的难受,生怕别人不知道他解决了这个问题,然后谷歌就干什么呢,就写论文,前后发表了3篇论文。
Google三篇论文
《The Google file system》:谷歌分布式文件系统GFS
《MapReduce: Simplified Data Processing on Large Clusters》:谷歌分布式计算框架MapReduce
《Bigtable: A Distributed Storage System for Structured Data》:谷歌结构化数据存储系统
这三篇论文,对整个业界是一个非常大的推动作用,也推动了hadoop的发展。
hadoop自08年开源以来,发展到现在怎么样了,可以说有些角色很厉害,有些角色很尴尬。我们一起来梳理下。
Hadoop现状
- HDFS作为分布式文件存储系统,处在生态圈的底层与核心地位;
- YARN作为分布式通用的集群资源管理系统和任务调度平台,支撑各种计算引擎运行,保证了Hadoop地位;
- MapReduce作为大数据生态圈第一代分布式计算引擎,由于自身设计的模型所产生的弊端,导致企业一线几乎不再直接使用MapReduce进行编程处理,但是很多软件的底层依然在使用MapReduce引擎来处理数据。
HDFS
HDFS就是分布式文件系统,不管大数据平台做什么,首先要解决的就是海量的数据存储问题,那么,HDFS将会处于我们生态圈的最底层,最核心的位置,那么到目前位置,很少有人能撼动他的位置,或者说没有必要去撼动它,因为他已经非常优秀了,能够实现海量数据完美的存储.
YARN
第二个组件就是YARN,他是一个资源管理和调度平台,YARN其实从侧面上,就保证了Hadoop江湖地位不倒,因为YARN虽然属于Hadoop,但是它做的比较通用,没说只能管理自家的资源,理论层面来说,任何种类的程序,都可以在YARN上运行,让YARN帮助我们去管理资源,就像Spark,Flink等等,都可以这样运行,这就意味着,YARN支持各种各样的运算,那么企业中就没有必要去搭建多套资源管理系统.
MapReduce
在hadoop中比较尴尬的就是我们的计算框架,他可以说是我们大数据当中的第一代分布式计算引擎,他的功能很强大,但是在生产之初就产生了很多弊端,把比如他的模型只有两个阶段,读写慢等问题,导致目前企业很少直接使用MR进行数据处理,MR已经间接的退居二线了,但是HDFS和YARN依然处于我们的核心地位.
Apache Hadoop
由于我们的卡大爷在2008年的时候把hadoop开源给了Apache,所以后面也叫Apache Hadoop。
Hadoop的特性
自从2008年开源之后,hadoop迅速形成了一个庞大的大数据生态圈,使得hadoop占到了整个生态圈的核心地位。甚至有人说,只要想进入大数据行业,你的先学会hadoop,不管你做啥。hadoop到底有哪些特点,优点,以及国内外各家公司的应用,我们一起来整理下。
按照官方的说法,他有四个优点:
scalability
第一个优点,就是hadoop的扩容能力很强,就是说,hadoop他不是一个单机软件,是一个由多台机器组成的分布式软件,这个多台有多少呢,根据官方的解释,少则几台,多则上千上万台都可以,并且这种调整非常的灵活,非常的动态,不需要停机,对于用户来说就非常方便了,我们业务量小的时候,就用小规模集群,业务量大的时候,我就把它变成大规模的集群,这样就实现了他的一个扩容。
Economical
第二个优点,叫做hadoop的成本地,这个成本低大家可能不太理解,我都买了几百台服务器,成本咋就低了呢?其实以前的人们是这样子认为的,当我要去玩大数据的时候呢,我就买个超级计算机,配置什么的都非常的高,但是我们这个hadoop设计的时候呢,他考虑的不是单机能力,而是集群的整体能力,甚至每台机器都是非常廉价的,可以是笔记本,可以是台式机,等等,只要你把他连成一个局域网就可以了,这就是一个低成本在经济方面的体现。
efficiency
第三个优点,叫做hadoop的效率高,效率高其实源于分布式设计的思想,我们的数据分布在不同的机器上,那这样子,我们就可以在不同的机器上同时进行运算,专业话术就叫做并行,咱们多台机器一起计算,效率相比较单机计算就高一些。
reliability
hadoop在设计之初,就非常重视可靠性,如果存储不安全,计算又不稳定的话,这个软件就没有人用它。hadoop在设计的时候,就设置了副本机制,推测执行机制等各种小功能,目标就在于尽量避免一些非人为因素导致的任务失败、数据丢失等问题。
Hadoop国内外应用
Hadoop国外应用
Yahoo
支持广告系统
用户行为分析
支持Web搜索
反垃圾邮件系统
存储处理数据挖掘和日志统计
构建基于Hadoop数据仓库平台(Apache Hive来自FB)
IBM
蓝云基础设施构建
商业化Hadoop发行、解决方案支持
Hadoop国内应用
百度
用户搜索表征的需求数据、阿拉丁爬虫数据存储
数据分析和挖掘竞价排名
阿里巴巴
为电子商务网络平台提供底层的基础计算和存储服务
交易数据、信用数据
腾讯
用户关系数据
基于Hadoop、Hive构建TDW(腾讯分布式数据仓库)
华为
对Hadoop的HA方案,以及HBase领域有深入研究
我们会发现,使用hadoop的公司大部分都是互联网公司,因为这些公司会首先遇到大量数据存储、计算的问题,其实不管什么行业,都可以使用hadoop这个软件,因为这个hadoop不和具体的业务挂钩,他只提供大量数据的存储功能,他没有说我只能存储医疗行业数据,也没有说我只能存储互联网行业数据,如果是这样子,那就不行,没有通用性。而hadoop只提供存储能力,要存什么数据那是你的事情,我也只提供了计算能力,计算什么,那是你的事情。
所以说hadoop能够成功的关键原因还有两个,一个是就是通用性,另一个就是简单。
传送门
(一) 初探Hadpoop
(二) hadoop发行版本及构架的变迁
(三) hadoop安装部署集群介绍
(四) hadoop安装部署-基础环境搭建
(五) hadoop安装部署-配置文件详解
(六) hadoop集群启停命令、Web UI
(七) hadoop-HDFS文件系统基础
(八) Hadoop-HDFS起源发展及设计目标
(九) Hadoop-HDFS重要特性、shell操作
(十) Hadoop-HDFS工作流程与机制
(十一) 如何理解Hadoop MapReduce思想
(十二) map阶段和Reduce阶段执行过程
待更新