您的位置:首页 > 运维架构

初识Hadoop

2016-07-07 15:50 190 查看
 What is Hadoop

Hadoop是由Apache基金会所开发的分布式系统基础架构。它的名字的由来是他的创建者Doug Cutting受他孩子给一个黄色的玩具大象命名的启发,没有任何含义,只是为了简洁。它的框架最核心的部分就是HDFS(Hadoop Distributed File
System,分布式文件系统)和MapReduce(并行计算框架)。HDFS为海量数据提供了存储,MapReduce为海量数据提供了计算。

通俗的说Hadoop是一套开源的、基础是Java的、目前能够让数千台普通、廉价的服务器组成一个稳定的、强大的集群,使其能够对pb级别的大数据进行存储、计算。已经具有了强大稳定的生态系统,也具有很多使用的延伸产品。比如雅虎正在开发的用于查询的Pig,
做分布式命名服务的ZooKeeper, 做数据库的Hive等。

Hadoop核心架构

Hadoop由许多元素构成,其最底部是HDFS(Hidoop Distribute File System),它存储Hadoop集群中所有存储节点上的文件,HDFS的上一层是MapReduce引擎,该引擎由JobTrackers 和 TaskTrackers 组成。

1)HDFS

HDFS有着高容错性(fault-tolerant)的特点,并且设计用来部署在低廉的(low-cost)硬件上。而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了(relax)POSIX的要求(requirements)这样可以实现以流的形式访问(streaming
access)文件系统中的数据。

2)MapReduce

MapReduce是Google的核心算法(GFS、MapReduce、BigTable,Google三驾马车)之一,用于海量数据计算,那么它的计算原理是什么呢?

Google在《MapReduce:超大集群上的简单数据处理》一文中提到“抽象模型的灵感来自Lisp和许多其他函数语言的map和reduce的原始表示.我们认识到我们的许多计算都包含这样的操作:在我们输入数据的逻辑记录上应用map操作,来计算出一个中间key/value对集,在所有具有相同key的value上应用reduce操作,来适当的合并派生的数据。”通俗的理解就是:

map首先将杂乱无章的原始数据按照某种特征将数据归纳起来形成键值对,每个key中的value都是相关的,然后利用reduce对相关的数据进行合并。

Hadoop的应用领域

数据备份/文件归档。利用了hadoop海量数据的存储能力

数据仓库/数据挖掘。分析web日志,分析用户的行为(如:用户使用搜索时,在搜索结果中点击第2页的概率有多大)

搜索引擎。设计hadoop的初衷,就是为了快速建立索引。

云计算:据说,中国移动的大云,就是基于hadoop的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: