什么是Hadoop,它用于什么?

我一直在享受阅读ServerFault一段时间,我已经遇到了很多关于Hadoop的主题。 从全局的angular度来看,我发现了一些问题。

所以我的问题很简单:什么是Hadoop? 它有什么作用 ? 它是干什么用的 ? 为什么踢屁股?

编辑:如果有人有使用Hadoop的使用案例的示范/解释,这将是太棒了。

直接从马的嘴巴 :

Hadoop是一个框架,用于在由商品硬件构build的大型集群上运行应用程序。 Hadoop框架透明地提供应用程序的可靠性和数据运动。 Hadoop实现了一个名为Map / Reduce的计算范例,其中应用程序分为许多小的工作片段,每个片段都可以在集群中的任何节点上执行或重新执行。 另外,它还提供了一个分布式文件系统(HDFS),用于在计算节点上存储数据,从而在整个集群中提供非常高的聚合带宽。 Map / Reduce和分布式文件系统的devise都是由节点自动处理节点故障。

Map / Reduce是一个被Google广泛使用的编程范例,在这个范例中,任务被分成很小的部分并分配给大量的节点进行处理(地图),然后将结果汇总到最终答案中)。 谷歌和雅虎将其用于search引擎技术等等。

Hadoop是实现这种处理scheme的通用框架。 至于为什么它踢屁股,主要是因为它提供了诸如容错等整齐的function,并且可以让您将几乎任何types的硬件结合在一起进行处理。 如果你的问题符合范式,它也可以很好地扩展。

您可以在网站上阅读所有内容。

至于一些例子,Paul提供了一些例子,但是你可以做的还有一些不是那么networking化的:

  • 渲染3D电影。 “映射”步骤将每个帧的几何分布到不同的节点,节点渲染它,渲染的帧在“缩小”步骤中重新组合。
  • 用分子模型计算系统中的能量。 系统轨迹的每个帧在“地图”步骤中被分配给节点。 节点计算每个帧的能量,
    然后将结果总结在“减less”步骤中。

从本质上讲,该模型对于一个问题可以很好地工作,这个问题可以被分解成完全独立的类似离散计算,并且可以重新组合以产生最终结果。

Cloudera有一些很棒的video来解释Map Reduce和Hadoop背后的原理。

http://www.cloudera.com/hadoop-training-basic

MapReduce背后的核心思想之一是,对于大型数据集,您将被绑定到磁盘上,因此在Hadoop HDFS中,您可以在大量节点之间进行分割,从而实现并行处理。

系统pipe理员感兴趣的Hadoop的一些用途往往是处理大型日志文件集 – 我只能发布一个链接,但这些包括,谷歌应该find这些:

  1. Rackspace邮件日志查询
  2. 用Apache进行Apache日志分析 – 请参阅Cloudera博客
  3. 雅虎 打击垃圾邮件

最初,hadoop是针对OLAP环境中的大量数据集开发的。

随着Hadoop的引入,Hadoop也被用于OLAP Processing。 Hadoop是一个包含map reduce,hdfs,hbase,pig等所有子组件的框架。

为什么要引入Hadoop中的hadoop基础?

在Hadoop中,数据以文件的forms存储,而不是表格,列。