目前Hadoop在数据库和内容管理领域已经拥有了大量拥趸。可是不少研究它的人并无真正清楚它究竟是什么,怎样才能把它发挥到极致。算法
Cloudera的CEO和Strata会议的发言人迈克奥尔森在下面的访问中论述了Hadoop的背景和它的应用(Cloudera提供了Hadoop的一个商业化的发布版本,而且贡献给了这个项目)。数据库
Hadoop来自哪里?服务器
Mike Olson:核心的技术是由谷歌公司早期发明的,因此他们用心地检索了他们收集到的全部充分的组织和结构上的信息,这些以后对于用户来说表现力更强做用也更明显。事实上没有市场去驱动他们作这件事,他们只是在建造他们本身的平台。谷歌的创造力被归入到了Nutch里面,一个开源的项目,可是Hadoop很快就从中拆分出去了。雅虎在开发Hadoop面向企业应用的过程当中起到了关键的做用。框架
Hadoop能够解决什么问题?运维
Mike Olson:Hadoop平台被设计用于处理大量的数据——这些数据可能包含了复杂和结构化的数据的混合,可是这种数据不适合存入数据表中。它是用于当你想要深刻地了解分析,充分计算,像集群和目标性强的场景。就像谷歌如今在作的同样:检索万维网而且检查用户行为用于改善算法的可用性和性能。工具
Hadoop投入到一些商业应用中。在金融领域,若是你想作精准的投资评估和风险分析,你能够建构难于使用数据库引擎进行处理的经验模型。可是Hadoop能够处理它。在电商领域,若是你想返回更佳的搜索结果给买家展现,以期吸引他们来买你的商品的时候,谷歌建立的平台已经完美地解决了排序问题。这里只是列举这几个例子。oop
Hadoop是怎样构建的呢?性能
Mike Olson:Hadoop被设计运行在大量不共享任何内存或磁盘的机器之上。这意味着你能够卖一整套高配置的服务器,仍在机器架子上,而后在任何一台上面运行Hadoop软件。当你想要加载全部你的组织代码到Hadoop中的时候,它的作法是把数据分片,而后在不一样的服务器上扩展。没有哪一个地方是你能够所有了解数据的地方;Hadoop保持数据存放点的轨迹。由于有不少拷贝的存储,存在下线或者死掉的机器上的数据会自动从无缺的上面拷贝下来。开发工具
在集中式的数据库系统中,你可使用一个大的磁盘链接4,8或16核的CPU来作存储和计算。可是这也承载了大量的电力。在Hadoop集群中,每一个服务器都有着2,4或者8个核心的CPU,你能够经过将代码发布到集群中空闲的机器来运行你的索引任务,每一个服务器执行你的数据的一小部分。结果最后结合起来发送给你。这就是MapReduce的机制:你将操做映射到每一个服务器,而后汇总结果到单个结果集中。设计
总的来讲,你可以处理大量数据的缘由在于Hadoop能够将他们分布到多台机器进行计算。你能够回答复杂的计算问题是由于你获得了更多的处理器,并行地合做运行。
这么说吧,咱们的公司有没有必要开发本身的Hadoop应用呢?
Mike Olson:毫无偏袒地说,目前的Hadoop解决方案必需要作的比关系型数据库解决方案更富有经验。现实是没有不少包装过的应用能够作到跳出盒子看世界,而且运行在Hadoop处理器之上。众所周知,上世纪80年代早期当Ingres和IBM开始销售他们本身的数据库引擎,人们才开始真正地编写本地应用程序来操做数据。
这就是说,你能够在Hadoop框架下开发支持不一样语言的应用程序。开发工具和接口都很简单。咱们的友商———Informatica就是一个很好的例子——他们已经移植了他们的工具,这样就可使用Hadoop接口在Hadoop集群中存储数据。有专业的运维人员讲解,还有很酷的查询工具:一款可让你爱上在Hadoop集群上管理你的数据,Pig,是雅虎开发用来让数据流和数据的转换操做在Hadoop上得以运行的一门语言。
Hadoop在这个阶段的发布碰上了比较棘手的问题,可是咱们的工程师会很快建立应用来解决这些问题。我想在接下来的几年之中能够看到更多的闭环应用(Hadoop生态内部的)。
你怎么看待关于SQL和NOSQL的争论?
Mike Olson:我十分信任关系型数据库。我认为SQL语言是很酷的,而且产品也是值得信赖的。
我讨厌术语“NOSQL”。有一些不一样的工程,每一个都有着不一样的属性和行为。而它应运而生。但是真正的问题是,你用来解决什么问题?由于那是对用户最有价值的地方。