欢迎投稿

今日深度:

hadoop实战(一) hadoop基本概念,

hadoop实战(一) hadoop基本概念,


一、理解Hadoop

        Hadoop_wiki上定义,Apache Hadoop is an open-source software framework used for distributed storage and processing of very large data sets.就是说Hadoop是(大数据下)分布式的数据处理框架。所以我们从 如下两个方面理解Hadoop。[我们接下来重点从Hadoop的改进上来说]

1.既然是分布式计算环境,那么跟一般的框架有什么不同呢?

比如一般地SETI@home这个框架,在分布式计算的时候会在client和server之间进行数据传输,所以它更适合于计算密集型任务,而不适合于数据密集型任务。那么在大数据环境下,该框架就显得低效了。so,可以很容易想到的一个改进就是不进行大量的数据迁移,这就是Hadoop的思想,“将代码向数据迁移,尽量让计算发生在数据驻留之地”,这就与Hadoop“面向数据密集型处理”的设计目标一致。

2.作为数据处理框架,与SQL数据库有什么不同?

1)Hadoop多面向非结构化文本数据的处理(使用key-value对),SQL是结构化数据库;

2)可以使用MR建立复杂的数据统计模型,SQL使用基本的操作语句;

3)Hadoop是面向离线批量处理,SQL多是在线操作。


二、理解MapReduce

        MapReduce是Hadoop的数据处理模型,其基本原语是Mapper(过滤、转换)和Reducer(聚合)。再后面的介绍中我们还会发现MapReduce过程中还有Partitioning和Shuffling,这两者是通用过程,已经默认实现在MapReduce处理过程中了,不需要再编程设计实现了。

       所以MR的数据流是:



三、从WordCount理解

        下面我们从一个简单的wordcount例子来理解Hadoop的设计思想,看看这样一个框架到底带给我们什么?

        给定一个句子,统计其中的单词数目。

1)遍历取词,通过多重集合wordcount统计,即wordcount中的相应项加1。【一般多重集合使用散列表实现。】

但是当数据量很大时,这样做十分耗时,效率很低,于是:

2)分布式:每台机器处理文档的不同部分,然后合并。

这样做也有问题,需要将数据分发到不同机器,然后机器再处理,这明显很蠢嘛,所以会考虑分布式存储,从而将存储和处理紧紧绑定起来。

还有,第二阶段的合并只能在一个机器上运行么?这会很大的效率瓶颈,更大的问题是,内存限制导致不能处理那么大的数据量,如果用硬盘散列的话,工作量会很大,很复杂。于是:

3)第二阶段的合并也扩展成并行化处理:

问题在于:如何分裂数据集才能扩展?一个例子是每台机器只处理某个字幕开头的单词。这个洗牌分区的过程,就是Hadoop在Map和Reduce之间自动实现的partition和shuffle过程。

以上,我们看懂了一般地处理模型会遇到的问题:

1)内存不够将整条数据读入;

2)带宽限制导致处理数据密集任务时效率低下;

3)没有容错措施

4).......


资源参考:

wiki_Apache Hadoop

hadoop官网
The original papers on the Google File System and MapReduce are well worth
reading. Appreciate their underlying design and architecture:
The Google File Systemhttp://labs.google.com/papers/gfs.html
MapReduce: Simplified Data Processing on Large Clustershttp://labs.google.com/
papers/mapreduce.html


www.htsjk.Com true http://www.htsjk.com/Hadoop/39927.html NewsArticle hadoop实战(一) hadoop基本概念, 一、理解Hadoop         Hadoop_wiki上定义, Apache Hadoop  is an  open-source   software framework  used for  distributed storage  and processing of very large  data sets . 就是说...
相关文章
    暂无相关文章
评论暂时关闭