Home > 小众热文 > 正文

hadoop是什么?平民大数据:Hadoop篇

更改字号: 小号 | 中号 | 大号
本篇跟大家聊一下大数据的核心技术之一,hadoop。主要会从hadoop的起源,hadoop的基础框架,hadoop为什么会流行以及hadoop生态系统几个方面阐述。整体原则还...

本篇跟大家聊一下大数据的核心技术之一,hadoop。主要会从hadoop的起源,hadoop的基础框架,hadoop为什么会流行以及hadoop生态系统几个方面阐述。整体原则还是尽量能让非计算机专业的筒子们能够看懂,如果有误欢迎各位大牛指正。

在介绍hadoop之前,我想先聊一下分布式系统。我们回顾一下上篇当中的内容,云里最核心的是数据和计算,那么当数据量和计算量都很庞大的时候怎么解决呢?有人可能想到超级计算机,每秒钟进行万亿次计算的那种。没错,超级计算机可以解决,但是超级计算机贵的令人发指,普通的公司根本用不起,可是我们就是想出白菜价来处理大数据,怎么办?

最直观的思路就是用成千上万台普通pc一起存储和处理数据,人多力量大,对吧?怎么做呢?首先把计算任务和所涉及的数据切分成若干份,然后把计算和数据分发到每台pc上分别处理,最后把计算结果汇总,搞定。听起来有没有很像怎么把大象放进冰箱里?思路很清晰,但实现起来会有很多的问题。比如怎么切分任务?数据切分后如何知道一个文件的不同部分分别放在哪台机器上?如何把任务发到每台机器上?计算完成的结果怎么汇总?如果其中一台机器运算过程中断电了或者网络突然断了怎么办?等等。听起来就很头大吧?OK,处理所有这些问题的系统,我们叫做分布式系统,分布式的意思,是所有的计算和数据都分布在很多台机器上,而这些机器整体组成了一个系统。

What

Hadoop就是可以构建一个分布式系统的技术或者说软件,其核心原理由Google早年发表的GFS(GoogleFileSystem)和MapReduce(Map:切分任务;Reduce:汇总结果)两篇论文提出,由Yahoo!实现并开源(这其实是互联网圈一个很有意思的现象:当老二干不过老大的时候,就把老大的核心技术开源,召集全世界的人一起对抗你。近期活生生的例子是安卓和iOS)。因此,Hadoop主要由两部分组成:HDFS(HadoopDistributedFileSystem)和MapReduce,前者是一个分布式文件系统,后者是一个计算和调度框架。HDFS解决了文件切分和存储的问题,MapReduce解决计算的切分、调度(分发)和失败处理问题。

说回分布式系统,其实再简单点儿就把它想成老大带着一帮小弟干活儿,老大要负责任务分配和协同,以及小弟挂了找另一个补上的问题,小弟就是干活儿的,专业术语这叫做Master-Slave模式。在Hadoop里,HDFS部分的老大叫NameNode,小弟叫DataNode,而(早期)MapReduce里的老大叫JobTracker,小弟叫TaskTracker。后来发现几个问题:如果只有一个老大,那老大如果挂了就没人指挥小弟干活儿了,这个问题叫SPOF(SinglePointOfFailure),解决的方案叫HA(HighAvailablility)。另外发现负责MapReduce的老大JobTracker既要管任务切分又要管任务调度太累了,就把计算和调度分成两部分,计算的老大叫ApplicationsManager,小弟叫ApplicationManager,调度的老大叫ResourceManager,小弟叫NodeManager,俩部门统称Yarn。

Why

前面介绍了Hadoop的起源,基本框架和组成部分,接下来说一下Hadoop为什么会流行。想当年Hadoop几乎一夜之间火的不行,互联网公司都开始使用,除了Google的号召力之外,主要在于Hadoop对前面提到的分布式系统实现的问题都做了封装,大大降低了人力成本。我记得读硕士的时候我们做药物网格的项目,就是给出一个病毒分子DNA,在药物分子DNA库里找到最克制它的那个,3个人做了一年,想想看如果是在公司3个员工一年得多少钱。但是有了Hadoop之后,1个人俩礼拜就能搞定,这钱公司基本都能接受。所以说Hadoop的流行,包括云计算的兴起,本质都还是因为技术的革新降低了成本。

接下来看看Hadoop生态。大数据系统最核心的就是计算、调度和存储3个部分,对应到Hadoop生态,对应计算的主要有Spark,Storm和新兴起的Flink;对应调度的有Tez,Oozie;对应存储的数据库有HBase和新兴起的Kudu,数据仓库有Hive。另外还有针对OLAP的Impala和新兴起的Kylin,针对数据收集的Flume,针对消息队列的Kafka,针对传统数据库和Hadoop数据库数据互导的Sqoop等等。之所以把这些统一归入Hadoop生态,是因为它们或多或少都依赖Hadoop的服务,比如数据存在HDFS里,计算任务由Yarn调度,等等,又或者它们和Hadoop结合的很紧密。

How

如果想要学习Hadoop相关的技术,建议首先看一下前面提到的GFS和MapReduce论文,虽然有点儿过时但非常有助于了解基本原理。其次,建议找一个真正在线上用Hadoop的公司,比如阿里百度小米美团等,或者至少自己做个能用到Hadoop的小项目,有实战才能深入理解源码。最后一定在apache社区注册一个JIRA账号,参与到社区的讨论和工作中。简单的说,就是先了解原理再实干,死读书是不行的。

最后说一下,Hadoop这个名字的来源是作者儿子玩的一个黄色毛绒玩具大象,这也是为什么🐘代表Hadoop的主要原因。外面说大象代表大数据体量大等等说法,个人认为是科技作者自己yy的,这算是个hadoop的小故事吧。

好了,Hadoop篇介绍到这,希望大家对Hadoop能有一个直观的概念和印象。

上一篇:手机app如何推广?怎么推广手机app?
下一篇:国内地域经济格局!!
37°Love店铺形象升级 开拓女性集合店 打造独特购物体验

37°Love店铺形象升级 开拓女性集合店 打造独特购物体验

伊顿集团线上线下、女装+内衣+童装多元化集合店打造女性时尚IP生态圈

伊顿集团线上线下、女装+内衣+童装多元化集合店打造女性时尚IP生态圈

防止童装骗局,不被骗子利用,伊顿风尚童装教你怎么做

防止童装骗局,不被骗子利用,伊顿风尚童装教你怎么做

骗子骗人手段多,伊顿风尚童装教你如何火眼金睛

骗子骗人手段多,伊顿风尚童装教你如何火眼金睛

骗子不为人知的故事多,伊顿风尚童装帮你一一破解

骗子不为人知的故事多,伊顿风尚童装帮你一一破解

广州骗子实在是太多了,伊顿风尚童装觉得很无语啊

广州骗子实在是太多了,伊顿风尚童装觉得很无语啊

已有2条评论,期待您的留言!

昵称 *
邮箱 *
网址

  1. Lamborghini
    ptpt9:

    行动是成功的阶梯,行动越多,登得越高。

    2016-01-07 上午12:41 回复 
  2. Bugatti
    tbgame1:

    激情,这是鼓满船帆的风。风有时会把船帆吹断;但没有风,帆船就不能航行。

    2016-01-09 下午7:03 回复 
×