什么是Hadoop
        今年是2016年,是hadoop十岁的生日,穿越时间和空间,跟她说一声生日快乐,二千零八年一月二十八号,是一个特别的日子,hadoop带着第一声啼哭,来到了这个世界,她的出现从根本上改变了企业存储、处理和分析数据的方式。跟传统系统的区别是,她可以在相同的数据上同时运行不同类型的分析工作。十年的时间,可以让懵懂的毛头小子成长为翩翩少年郎,十年的时间,看似漫长却又短暂,今天的我们很幸运的见证了她从出生到现在,感动与那份技术带给我们惊喜的同时,让我们一起来了解一下她的前世今生,走进她的人生,聆听她的故事……
        她是一个由Apache基金会所开发的分布式系统基础架构,用户可以在不了解分布式底层细节的情况下,开发分布式程序,充分利用集群的威力进行告诉运算和存储。她实现了一个分布式文件系统,简称HDFS。HDFS有高容错性的特点,并且设计用来部署在低廉的硬件上,而且她提供高吞吐量来访问应用程序的数据,适合那些有着超大数据集的应用程序,HDFS放宽了POSIX的要求,可以以流的形式访问文件系统中的数据。她有两个好帮手,一个叫HDFS,另一个叫MapReduce,可以这样说他们都是她的左膀右臂,HDFS为海量的数据提供了存储,则MapReduce为海量的数据提供了计算。

我们知道,她的名字hadoop其实就代表了她的两个伙伴,她的心腹 就是HDFS和MapReduce,而两者只是理论基础,不是具体可使用的高级应用,她的旗下有很多经典子项目,比如HBase、Hive等,这些都是基于HDFS和MapReduce发展出来的。要想了解她,就必须知道HDFS和MapReduce是什么。HDFS(Hadoop Distributed File System,Hadoop分布式文件系统),它是一个高度容错性的系统,适合部署在廉价的机器上。HDFS能提供高吞吐量的数据访问,适合那些有着超大数据集(large data set)的应用程序。通俗说MapReduce是一套从海量·源数据提取分析元素最后返回结果集的编程模型,将文件分布式存储到硬盘是第一步,而从海量数据中提取分析我们需要的内容就是MapReduce做的事了。简单的说就是,HDFS为海量的数据提供了存储,则MapReduce为海量的数据提供了计算。

 为什么会出现hadoop
       古时候,人们用一头牛拉不动一根圈木的时候,他们不曾想过培育个头更大的牛,同样,我们也不需要尝试更大的计算机,而是应该开发更多的计算系统,格雷斯·霍珀如是说道。格雷斯·霍珀计算机领域的先锋人物之一,这位伟大女性的人生历程和在计算机编程历史中所扮演的重大角色进行了详尽且客观的描述,同时也对计算机编程的发展和其中重要人物的作用进行了细致的叙述。她对计算机领域的贡献不可磨灭。简单的来说,简单的说,就是数据量越来越大了,太大了!我们的大型机负担不了,因此集群就诞生了,自此hadoop应用而生。常说,好的架构不是设计来的,而是演变来的,小编想说的是,hadoop也不是设计来的,她是随着IT技术的发展,演变而来的。

随着二十一世纪,互联网势如破竹的日新月异,风生水起瞬息万变,一方面用户量激增,另一个方面人们对于数据的渴望,以前领导可能就只要看一个结果或者是某方面的报告就ok了,但现在大家都想更贴近用户、机器,同时其他的譬如交通、电信行业,产生的富媒体数据更是丰富多彩,数据规模也是不断增长。我们希望能从这些用户行为、机器日志中看到更多能够优化系统、优化用户体验,做更多的用户研究。所以更多的数据带来更多的存储问题,原来的单机已经不能解决,而多个磁盘的轮询读取性能也是很低,同时磁盘的发展趋势:寻址时间的提高远远慢于传输速率的提高。在这种迫切需要解决对数据处理系统的这种一次写入、多次读取而非像传统RDBMS的持续更新的需求,所以她就应运而生了。总得来说她是为大数据而生。

生活中的hadoop
        其实看似离我们很遥远的事物,其实离我们都特别的近距离,现在几乎大家每天都上网,大数据的时候,只要我们上网,淘宝购物,浏览新闻,学习新知识等等,那么没有人会比商家更了解你,可能我们自己有时候还没有考虑过自己最喜欢的衣服是什么?是小清新型的还是女神范儿的,但游泳数据的商家已经对你了如指掌了,未来,不管我们的口味有多么的不同凡响,异同寻常,我们都能找到符合自己style的时装,因为我们的历史数据会告诉商家我们属于哪一类人。

还记得那部火遍大江南北的《纸牌屋》,连王岐山和奥巴马都是纸牌屋的粉丝,《纸牌屋》最大的特点在于,与以往电视剧的制作流程不同,这是一部“网络剧”。简而言之,不仅传播渠道是互联网观看,这部剧从诞生之初就是一部根据“大数据”,即互联网观众欣赏口味来设计的产品。《纸牌屋》的成功在一定程度上得益于大数据,其出品方Netflix称挖掘其用户行为的“大数据”已经很长时间,《纸牌屋》是其数据分析结果的第一次战略运用。通过数据分析,Netflix甚至比观众还要清楚他们的观影喜好。据悉,该网站基于3000万北美用户观看视频时留下的行为数据,推测出一部剧的关键要素可以是凯文·史派西、大卫·芬奇和BBC出品三者的交集,可以获得成功,于是打造了《纸牌屋》。

hadoop  pk  旧平台
     沿着岁月的脉络,我们从传统数据库数据仓库这边看,一方面吃着现有的蛋糕,另一方面也一直在尝试数据量更大、扩展性更好的解决方案,从share-everything到 share-storage到share-nothing,比如现在的MPP解决方案,也在大数据业务中分了一杯羹。不过数据库基因的解决方案,还是要面临扩展性的问题,我们的经验是大概百节点级别,远远不如hadoop的扩展性。
        hadoop最伟大的地方,严格说是google的伟大,就是在扩展性瓶颈方面的突破了。扩展性一直是所谓大数据(以前叫海量数据)处理的瓶颈,扩展性上去了,有更多机器来干活,那同时能干的活也就多了嘛。以前处理海量数据的思路,是搞一台超级牛的机器,比如高性能计算机,比如大型机、小型机;后来一台机 器怎么也不够用了,就搞个几台连起来一起用,比如网格,比如分布式数据库数据仓库,不过这扩展性也就是几台十几台级别的,再多也无法提高了;而 hadoop,放弃磁盘阵列而使用本地硬盘作为存储,使得网络连接方式大大简化,从软件层面来解决很多硬件问题,比如硬盘故障,减少对硬件的依赖,这些保 证了hadoop甩出其他方案几个量级的扩展性能,人类看到了处理大数据的曙光。
       大数据技术理念核心主要分为两个部分:虚拟化技术和类似Hadoop的技术。同样也是两个对立面,虚拟化更注重于将资源打造成一个大型机,而Hadoop恰恰相反,将各种资源池化。非Hadoop平台系统,均属核心的业务系统,比如代表性IOE,下面将分说两种系统的优劣:
  大型机:稳定性、源质性高,IO能力极强,可以管理较多的磁盘及数据资源,CPU数量也占优势。当然这里面,限制在于机器间传输,存储和内核需要共同带宽。机器间的相互传输导致大量磁盘IO,从而造成磁盘瓶颈,同样带宽也很成问题。同时多CPU利用差的问题也暴露无遗,总体来说IO成为整个系统的瓶颈所在。

  Hadoop:化整为零,文件被切开到不同层面,将计算移动到所在数据的节点上,通过节点实现并行化IO,因此需要挂很多层。而Map Reduce任务的数量跟CPU核数捆绑,因此CPU核数越多,Map配置就越快。通过移动计算取代移动数据,以获得更高的IO,这正是大数据存在的意义。

        未来扑面而来,你准备好迎接每一个机遇和挑战了吗
        大数据是一场人人都想抓住的变革机遇。不管是IT巨头还是创业小团队,都想在这个极具变化的变革初期占领一席之地,立名、掘金、抢占话语权。

正如知名IT评论人谢文所说:“大数据之所以可能成为一个时代,在很多程度上是因为这是一个可以由社会各界广泛参与,八面出击,处处结果的社会运动,而不仅仅是少数专家学者的研究对象”。数据产生于各行各业,这场变革也必将影响到各行各业,因此,机遇也蕴含于各行各业。致力于IT创业的人们紧紧盯着这个市场,洞察着每一个机遇。下一个十年,hadoop又会带给我们怎样的惊喜,让我们一起期待。

【Hadoop 10周年】我与Hadoop不得不说的故事的更多相关文章

  1. TFS 10周年生日快乐 – TFS与布莱恩大叔的故事

    今天看了一下Brian Harry大叔的博客,才发现2016年3月17日,是Team Foundation Server的10岁生日. Today marks the 10th anniversary ...

  2. 【征文】Hadoop十周年特别策划——我与Hadoop不得不说的故事

    2016年是Hadoop的十周年生日,在今年,CSDN将以技术和实战为主题与大家共同为Hadoop庆生.其主要内容包含Hadoop专业词典.系列视频技术解析.Hadoop行业实践.线上问答.线下沙龙. ...

  3. Windows 10 x64 下编译 Hadoop 源码

    Windows 10 x64 下编译 Hadoop 源码 环境准备 Hadoop并没有提供官方的 Windows 10 下的安装包,所以需要自己手动来编译,官方文档中 BUILDING.txt 文件中 ...

  4. Ubuntu 14.10 下Eclipse安装Hadoop插件

    准备环境 1 安装好了Hadoop,之前安装了Hadoop 2.5.0,安装参考http://www.cnblogs.com/liuchangchun/p/4097286.html 2 安装Eclip ...

  5. 在Ubuntu 13.10 中安装配置 Hadoop 2.2.0

    预备条件: 1. 已安装JDK Add Hadoop Group and User $ sudo addgroup hadoop$ sudo adduser --ingroup hadoop hdus ...

  6. hadoop学习通过虚拟机安装hadoop完全分布式集群

    要想深入的学习hadoop数据分析技术,首要的任务是必须要将hadoop集群环境搭建起来,可以将hadoop简化地想象成一个小软件,通过在各个物理节点上安装这个小软件,然后将其运行起来,就是一个had ...

  7. Hadoop之中的一个:Hadoop的安装部署

    说到Hadoop不得不说云计算了,我这里大概说说云计算的概念,事实上百度百科里都有,我仅仅是copy过来,好让我的这篇hadoop博客内容不显得那么单调.骨感.云计算近期今年炒的特别火,我也是个刚開始 ...

  8. 大数据技术Hadoop入门理论系列之一----hadoop生态圈介绍

    Technorati 标记: hadoop,生态圈,ecosystem,yarn,spark,入门 1. hadoop 生态概况 Hadoop是一个由Apache基金会所开发的分布式系统基础架构. 用 ...

  9. Hadoop学习总结之五:Hadoop的运行痕迹

    Hadoop学习总结之五:Hadoop的运行痕迹   Hadoop 学习总结之一:HDFS简介 Hadoop学习总结之二:HDFS读写过程解析 Hadoop学习总结之三:Map-Reduce入门 Ha ...

随机推荐

  1. [NOIp 2017]列队

    Description Sylvia 是一个热爱学习的女孩子. 前段时间,Sylvia 参加了学校的军训.众所周知,军训的时候需要站方阵. Sylvia 所在的方阵中有$n \times m$名学生, ...

  2. hdu 5274 Dylans loves tree(LCA + 线段树)

    Dylans loves tree Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Othe ...

  3. Codeforces Round #404 (Div. 2)

    好久没打CF了,打场div2练手.因为比较晚还没提前睡有点神志不清,E题打了莫名其妙的代码调了好久,最后结束后5分钟才发现哪里错了-- AC:ABCD Rank:60 A.Anton and Poly ...

  4. hdu 5492 (暴力+nice)

    题意:在矩阵中,找一条路从 (1,1)->(n,m),使方差最小 思路: T = (N+M−1)∑N+M−1i=1(Ai−Aavg)2 将N + M - 1乘进去,即求1 ~ N+M-1,(N ...

  5. hdu 4777 树状数组+合数分解

    Rabbit Kingdom Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) T ...

  6. hdu1698 线段树区间更新

    Just a Hook Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Tota ...

  7. linux tracepoint用法【转】

    转自:https://blog.csdn.net/u014089131/article/details/73907995 在kernel中经常会看到trace_XX形式的函数,但是又找不到它的定义. ...

  8. P2P技术概要

          P2P(Peer to Peer)也就是 对等网络,即对等计算机网络,是一种在对等者(Peer)之间分配任务和工作负载的分布式应用架构[1]  ,是对等计算模型在应用层形成的一种组网或网络 ...

  9. Mysql--存储引擎(MyISam & InnoDB)

    Mysql 系列文章主页 =============== 查看 Mysql 支持的存储引擎: show engines; 查看当前数据库使用的存储引擎: show variables like '%s ...

  10. javascript实现图片的预览

    简单javascript代码 实现上传图片预览 <body> <!-- 设置当有图片准备上传时触发javascript代码--> <input type="fi ...