Hadoop:浅谈Hadoop

写在前面

接触Hadoop差很少有一年多的时间了,一年前正是研一下学期,本身尚未从电子信息专业的思惟以及基础过分到计算机领域,整我的懵懵懂懂,无所特长。对于Linux、Java、数据结构和网络这些乱七八糟的东西仅仅只能说是了解,期间又承受着信息检索、模式识别、机器学习和数据挖掘这类高端名词的冲刷,整我的过的比较茫然和无奈。html

起初,我对于Hadoop是没什么热爱情绪的,首先不知道这是什么东西,其次Hadoop所需的专业知识实际上是很是多的。最后一直接触Hadoop比较多的缘由主要有三个:1、Hadoop的动手操做比较多,特别是在安装的过程当中,须要各类Linux的操做,整个初期的学习基本都是在动手中度过的,因为Linux和Java基础薄弱,顺利完成Hadoop集群的搭建,基本上是靠各类通宵熬夜;2、研一下学期在上课的过程当中到了高能所计算中心实习(多谢何家乐一直细心地带我入门),主要负责的就是大数据平台的运维工做,期间三个多月的时间基本都是在作和Hadoop相关工做;3、七月份回实验室后继续维护实验室集群,又紧跟本科生的大数据导论课程开课,跟着当了助教。因为教学需求,搭建了一个六七十个节点的小型集群,没事了就帮学生答答疑,调调代码,期间被一些本科生的发散思惟所触动,老老实实地又啃了几遍《Hadoop权威指南》,随对Hadoop了解加深一层。python

经此过程,虽然说不是专门研究Hadoop,亦对Hadoop又所了解,加之随后的学习中频繁接触云计算和大数据领域中诸如Spark、Storm、CloudFoundry、OpenStack和Docker这些开源项目以及,对Hadoop也算有所感触,深知不一样时期对一些概念和原理理解的程度不一样,因此整理一篇文章记录现时思惟,以供往后参考。算法

文章的主要内容主要是对Hadoop的理解,但不只限于Hadoop,亦掺杂本身对其它概念的各类思考(主要是和Hadoop的对比),我的才疏学浅,不免有各类不许确和理解误差的地方,欢迎指点和交流。sql

何为大数据?

在维克托·迈尔-舍恩伯格及肯尼斯·库克耶编写的《大数据时代》中大数据指不用随机分析法(抽样调查)这样的捷径,而采用全部数据进行分析处理。大数据的4V特色:Volume(大量)、Velocity(高速)、Variety(多样)、Value(价值)。安全

这本书是我接触最先的一本大数据的书,概念阐释的比较清楚,在书中着重强调了大数据和传统抽样调查的区别,这也是我对大数据最先的理解。其大体意思以下:好比问卷调查,若是想调查全中国14亿的平均身高,咱们很难统计到每一个人的信息,所以采用抽样的方式,每一个群体抽出来一部分人,用这些人的统计结果来代替全中国的人。那么在大数据时代,咱们不作抽样了,咱们经过互联网的手段来获取某方面的所有数据,以此来计算出全国人的平均身高,这是和传统方式很是不一样的地方。服务器

Not the size,it’s the style . ——Doug Cuttingmarkdown

Doug Cutting是Hadoop创始人,也能够说是发起者,在他来清华的一次演讲中,有人问到什么是BigData,他的回答如上。这点,学习过Hadoop的人应该都会有所感触。由于咱们在学习的时候,很难每一个人都有一个大的分布式集群让你来学习和折腾,咱们通常的学习都是单节点的Hadoop集群。可是即便是单节点的Hadoop,它的操做方式和思路也是符合大数据的思想的。网络

那么什么是大数据呢,我的感受很难有一个准确的定义,可是能够从一些处理问题的方式和思路来分析它。数据结构

现在咱们张口闭口都谈的大数据是什么:首先,基本上能生产数据的领域都已经大数据化了,医疗大数据、教育大数据、空间大数据、交通大数据,等等,所有都是大数据了,也就是说,大数据已经跨越了领域范围,很难以某个行业的标签也分辨大数据了。而后,看看作什么工做的是大数据。记得一年前有一次大数据大会,几个同窗兴致勃勃地去参加,当时被弄得晕头转向的。为何?全部的人都在说本身在搞大数据,有数据可视化的,有数据存储的,有数据安全的,当时还没明白什么是大数据,就被各类的概念给玩坏了。现在反思,其实大能够没必要纠结这些概念到底哪一个准确,你们都不在乎到底什么是大数据,只要这个名字能给全部参与的人带来利益便可。框架

现在也接触了很多的大数据的相关知识,也认识了很多搞大数据的朋友。略微总结一下本身所知道的和大数据相关的工做内容:大数据平台运维,大数据平台开发,大数据清洗,机器学习,等等等等,有不少不一样的名字和方向。可是站在我的的角度来说,我认为大数据一次火热登场的缘由之一是Hadoop的出现,而和Hadoop相关度比较高首先是大数据平台的运维和开发,至于机器学习和数据挖掘这些领域,自己没有太大变化,变化只是这个潮流而已。

何为Hadoop

身处Hadoop时代,不少人都想搞大数据的,至少在我身边不少人都是如此。既然要搞大数据,Hadoop是很难跑的掉的,那么Hadoop是什么?下面的一些内容我会按照本身的理解从不一样的角度来介绍Hadoop。

仅仅是工具

我的认为,首先Hadoop仅仅是一个工具,正如Mysql同样,是一个工具,不一样是Hadoop提供了更新的一些东西,更好的一些解决方案。

存储和计算框架

Hadoop的革新之处有两个:非结构化存储和分布式计算,其实这些技术一直都有,可是都没有Hadoop形成的影响大,这也得益于开源活动。

Hadoop首先提供了一种本身特有的文件系统:HDFS,它在Linux之上作了一层封装,可以提供大规模地集群存储功能。而后是特有的MApReduce计算框架,分布式协同计算。

站在我的角度理解,HAdoop有几点吸引人的地方:

  • 分布式存储(可以整合足够多服务器来协同存储)
  • 存储备份(HDFS自带备份冗余功能,好比说HDFS默认的备份数量是3,正常状况下,一台服务器宕机,彻底不影响数据的完整性)
  • 分布式计算(至少我认为这一点是影响很是大的,计算这一块着实解决了不少单机不能解决的问题,能很是好地利用资源)

PaaS平台

我认为,在某种程度上,Hadoop比较符合云计算中的PaaS的一部分概念,Hadoop为开发者(数据相关工做者)提供了一个计算中间件,目前IBM的Bluemix和MicroSoft的Azure均已经把Hadoop继承在了各自的公有云平台中,它是对开发者提供的一层服务,使用Hadoop能够处理大规模的数据问题。

Hadoop和其它

随着Hadoop的崛起,出现了一大批的开源软件:Hbase、Hive、Spark、Storm…… 这些有的是依赖于Hadoop,有的彻底独立,这些软件各有本身擅长的领域和其独到之处。所以身边也有一些朋友偶尔会纠结到底学哪一个呢?

Doug在清华的演讲中说到了Hadoop的一些存在乎义,举了一个例子,这个例子正是PPT的图片,是个手机。大体意思是:手机能够干不少事,好比照相,可是照相的功能不如一些专业的相机。可是有一点能够肯定,你们用手机照相的时间比相机多,为何呢,由于手机一直在你身边,你何时均可以用,并且除了照相,我还能够把照片分享,总的来讲,就是已经存在,并且方便。

Hadoop也相似,如今有不少的计算框架,Spark、Storm这类的。这种状况没必要否定其余的存在,Hadoop你们会比较熟悉,并且应用很普遍,在你须要的时候,可能你就有一个hadoop的集群环境,有些计算可能Spark性能更好,可是hadoop也能够作,方便使用。http://blog.csdn.net/zhaodedong/article/details/46288607

如何学Hadoop

最初学习Hadoop的感受,这多是一个比较快入门的领域,学习成本会低一些,见效快。通过一段时间接触后,发现其实有这种想法的缘由是本身对Hadoop了解太少。经历过这么多坑后,记录一下本身认为学习Hadoop须要学的东西。

  • Java(Hadoop也能够用python,可是毕竟最好的方式是Java,所以Java要掌握到必定的程度,否则在写MR程序的时候会比较通读)
  • Linux(Hadoop目前已经有Windows版本的,可是主要的操做系统仍是Linux。想学好Hadoop,至少要对Linux有必定程度的理解。做为零基础的Linux学习者,在安装Hadoop的时候会遇到各类各样奇葩问题,好比ssh配置不对,环境变量出问题,不懂权限管理。)
  • 机器学习(大数据挖掘会和机器学习相关,可是这不是纯搞算法的一种类型,纯搞算法的,其实和Hadoop没什么关系,比较偏向于算法自己的性能,可是在Hadoop领域里面涉及到数据挖掘的相关的内容,就须要具有必定的机器学习实力。)

文章来源:http://blog.csdn.net/zhaodedong

转载于:https://www.cnblogs.com/dantezhao/p/5365171.html