array(2) { ["docs"]=> array(10) { [0]=> array(10) { ["id"]=> string(3) "428" ["text"]=> string(77) "Visual Studio 2017 单独启动MSDN帮助(Microsoft Help Viewer)的方法" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(8) "DonetRen" ["tagsname"]=> string(55) "Visual Studio 2017|MSDN帮助|C#程序|.NET|Help Viewer" ["tagsid"]=> string(23) "[401,402,403,"300",404]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400964" ["_id"]=> string(3) "428" } [1]=> array(10) { ["id"]=> string(3) "427" ["text"]=> string(42) "npm -v;报错 cannot find module "wrapp"" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(4) "zzty" ["tagsname"]=> string(50) "node.js|npm|cannot find module "wrapp“|node" ["tagsid"]=> string(19) "[398,"239",399,400]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400760" ["_id"]=> string(3) "427" } [2]=> array(10) { ["id"]=> string(3) "426" ["text"]=> string(54) "说说css中pt、px、em、rem都扮演了什么角色" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(12) "zhengqiaoyin" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400640" ["_id"]=> string(3) "426" } [3]=> array(10) { ["id"]=> string(3) "425" ["text"]=> string(83) "深入学习JS执行--创建执行上下文(变量对象,作用域链,this)" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "Ry-yuan" ["tagsname"]=> string(33) "Javascript|Javascript执行过程" ["tagsid"]=> string(13) "["169","191"]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511399901" ["_id"]=> string(3) "425" } [4]=> array(10) { ["id"]=> string(3) "424" ["text"]=> string(30) "C# 排序技术研究与对比" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(9) "vveiliang" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(8) ".Net Dev" ["catesid"]=> string(5) "[199]" ["createtime"]=> string(10) "1511399150" ["_id"]=> string(3) "424" } [5]=> array(10) { ["id"]=> string(3) "423" ["text"]=> string(72) "【算法】小白的算法笔记:快速排序算法的编码和优化" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(9) "penghuwan" ["tagsname"]=> string(6) "算法" ["tagsid"]=> string(7) "["344"]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511398109" ["_id"]=> string(3) "423" } [6]=> array(10) { ["id"]=> string(3) "422" ["text"]=> string(64) "JavaScript数据可视化编程学习(二)Flotr2,雷达图" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "chengxs" ["tagsname"]=> string(28) "数据可视化|前端学习" ["tagsid"]=> string(9) "[396,397]" ["catesname"]=> string(18) "前端基本知识" ["catesid"]=> string(5) "[198]" ["createtime"]=> string(10) "1511397800" ["_id"]=> string(3) "422" } [7]=> array(10) { ["id"]=> string(3) "421" ["text"]=> string(36) "C#表达式目录树(Expression)" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(4) "wwym" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(4) ".NET" ["catesid"]=> string(7) "["119"]" ["createtime"]=> string(10) "1511397474" ["_id"]=> string(3) "421" } [8]=> array(10) { ["id"]=> string(3) "420" ["text"]=> string(47) "数据结构 队列_队列实例:事件处理" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "idreamo" ["tagsname"]=> string(40) "C语言|数据结构|队列|事件处理" ["tagsid"]=> string(23) "["246","247","248",395]" ["catesname"]=> string(12) "数据结构" ["catesid"]=> string(7) "["133"]" ["createtime"]=> string(10) "1511397279" ["_id"]=> string(3) "420" } [9]=> array(10) { ["id"]=> string(3) "419" ["text"]=> string(47) "久等了,博客园官方Android客户端发布" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(3) "cmt" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511396549" ["_id"]=> string(3) "419" } } ["count"]=> int(200) } 222 Hadoop发展历史简介 - 爱码网

简介

本篇文章主要介绍了Hadoop系统的发展历史以及商业化现状, 科普文。

如果你喜欢本博客,请点此查看本博客所有文章:http://www.cnblogs.com/xuanku/p/index.html

历史发展过程

  1. 2002~2004

    当时第一轮互联网泡沫刚刚破灭, 一个对搜索引擎特别了解但是同时又失去工作的屌丝Doug Cutting(1), 当时主要靠写点技术专栏文章赚赚稿费。

    同时, 他联合了另外一个RDMike Cafarella, 当时两人觉得以后搜索被一个大公司给一统天下是一个很可怕的事情, 这家公司掌握信息入口, 能翻手为云覆手为雨。

    所以决定自己搞一个开源的搜索引擎出来, 于是说干就干, 干了个项目叫Nutch

    两人吭哧吭哧干了一年之后, 终于把这个系统干到能支持1亿网页的抓取, 索引和搜索了。但是当时的网站差不多就有10亿, 网页数量是万亿这个规模。这两哥们也没多想, 就是干, 继续把网页量给干到下一个数量级。

  2. 2004~2006

    结果很不巧, 在那个时候, Google公布了GFS和MapReduce两篇Paper。这两哥们一看, 完了, 这两年白干了, 人家干得那才是漂亮, 自己现在干得实在是太苦逼了, 所有工作都处于人肉运维的状态。

    那咋办呢, 重构呗, 咋重构啊, 抄一个呗。于是就开始抄GFS和MapReduce, Google用的C++做, 他们用的Java做。到2004年的时候, 已经差不多能在40台左右的机器上运行了。

  3. 2006以后

    Dog Cutting跟好多我们同龄人一样, 做了几年公司, 发现干也干不过google了, 好像创业没啥前途了, 那咋办呢, 就找个大公司吧。这哥们本来一开始想去IBM, 但是人家IBM要做lucene, 不用Nutch。这哥们表示不开心, 就去问Yahoo愿不愿意要Nutch, 人家Yahoo有自己的搜索引擎, 也不愿意要Nutch。不过Yahoo考虑了一下, 说虽然不要你的搜索系统, 但是你底层那几个GFS/MapReduce那些东西还是挺有用的嘛, 要不你过来弄这个? Dog Cutting也就从了, 于是把底层系统剥离出来, 把自己儿子的一个大象的玩具的名字Hadoop赋予了这个项目。

    但是到目前为止, Hadoop其实还不能称之为一个独立的大数据项目, 顶多只能称之为一个搜索系统的子项目, 因为他只有一个应用方, 就是搜索。

  4. 2006~

    当系统进入yahoo了以后, 项目逐渐发展并成熟了起来。首先是集群规模, 从最开始的几十台机器的规模发展到能支持上千个节点的机器, 中间做了很多工程性质的工作, 然后是除搜索以外的业务放, yahoo逐步将自己的广告系统的数据挖掘相关工作也迁移到了hadoop上面来, 进一步成熟化了hadoop系统。

    当有多个用户方在使用hadoop系统的时候, 又必须要增加qos调度队列等机制, 也必须要增加数据安全认证授权机制等等, 各种功能都加到hadoop上面来的时候, hadoop就算是真正成熟起来了。必须要称道的一点是, 在成熟化整个系统的过程当中, yahoo一直都将hadoop做成一个开源软件, 而不是自己的私有软件。

Hadoop 商业化

在2008年的时候, 一位Google的工程师Christophe Bisciglia负责了Google跟IBM合作的一个自然科学项目, 这哥们发现要把当时的Hadoop放到任意一个集群中去运行时一件很困难的事情, 虽然项目是开源的, 但是当时其实主要是yahoo在用, 想要将hadoop商业化推给更多团队在用, 可能想要进一步的动作将其从开源带到业界。

于是这哥们就拉了几个好基友, 一块成立了一个专门商业化hadoop的公司: Cloudera。这个公司做了很多事情, 连接了开源和业界的鸿沟, 为hadoop生态的发展做出了非常重要的贡献。为了更好的提供外围服务, cloudera基于开源的Hadoop版本提供了另外一个叫CDH的Hadoop版本。

到后来, yahoo在2011年将hadoop团队专门成立了一个子公司Hortonworks专门提供hadoop相关的服务。Baldeschwieler这哥们作为这个公司的老板。Hortonworks这个公司跟Cloudera不一样, Hortonworks不再单独提供一个版本的hadoop给用户选择, 而是完全基于和更新开源版本。但是他提供很牛B的三陪服务, 已经为很多公司, 比如微软, Teradata, Rackspace 合作搭建他们自己的开源hadoop集群, 并在业界形成了很好的口碑。

市场上有两种公司, 一种是听说过Hadoop, 也想用, 但是自己也不知道能拿Hadoop来跑什么应用的公司; 一种是特别复杂, 像把自己一整套数据管理(保证数据可用性和安全性)能管理起来, 但是又不需要组建很大一个团队来做这事儿, 期望能节约成本。

Hadoop对自己的可用性不是很有信心, 对达到很多小公司开箱既得的状态还有差距, 所以Cloudera和Hortonworks都在做更多的胶水,包装,文档的工作。

在销售过程中, Hortonworks老板的经验是, 如果一个公司说: 来来来, 让我们一起在数据里挖点宝贝出来, 那么这一定是一个非常漫长的销售过程, 因为用户自己都没想好到底数据能拿来干嘛。所以一般的销售出路是找到那种能直接为公司节约成本的方案, 毕竟现在还是有很多公司使用很昂贵的存储和分析系统, Hadoop可以为这些公司节约成本。

已经给hadoop商业化扔进去了这么多钱, 市场上还是立竿见影看到了不少效果的:

  1. 引起了很大的业界很大的关注。有很多公司在为hadoop开发系列上层应用, 框架以及管理软件。
  2. 像EMC/Intel等好多公司从预算中拨款搭建自己的hadoop集群。
  3. 所有在销售数据库, BI软件, 以及其他跟数据相关的软件都会跟Hadoop扯上关系。

但是现状的Hadoop商业化也会有一些隐患:

  1. 类似linux的90年代, 会有一万个基于其开源版本之上的不同包装的XX版本;
  2. 像Cloudera和Hortonworks之间已经有了很多公开的吵架, 谁对开源社区贡献得最多, 以及部分软件已经不开源了, 或者相互不配合;

参考

  1. Hadoop之父. http://www.programmer.com.cn/15929/
  2. A Brief Hadoop History. https://gigaom.com/2013/03/04/the-history-of-hadoop-from-4-nodes-to-the-future-of-data/

相关文章: