Atitit Hadoop的MapReduce的执行过程、数据流的一点理解。 目录 1. Why 为什么使用hadoop 1 2. Hadoop的MapReduce的执行过程 1 2.1. Had

Atitit  Hadoop的MapReduce的执行过程、数据流的一点理解。

 

目录

1. Why 为什么使用hadoop 1

2. Hadoop的MapReduce的执行过程 1

2.1. Hadoop=HDFS(文件系统,数据存储技术相关)+ Mapreduce(数据处理) 2

2.2. Hadoop数据单元数据形式最终会转化为key/value,key/value是基本数据单元 3

3. hadoop能做什么?应用场景   3

3.1.    hadoop擅长日志分析 3

3.2. 文件统计扩展名 3

4. 、浅谈Hadoop的基本原理 3

 

 

 

  1. Why 为什么使用hadoop

那么如果是1G , 1T 甚至 1PB 的数据呢 ,上面2种方法还能行得通吗? 答案是不能.毕竟单台服务器的性能总有其上限.那么对于这种 超大数据文件怎么得到我们想要的结果呢?

有种方法 就是分布式计算, 分布式计算的核心就在于 利用分布式算法 把运行在单台机器上的程序扩展到多台机器上并行运行.从而使数据处理能力成倍增加.但是这种分布式计算一般对编程人员要求很高,而且对服务器也有要求.导致了成本变得非常高.

Hadoop 就是为了解决这个问题诞生的.Hadoop 可以很轻易的把很多linux的廉价pc 组成分布式结点,然后编程人员也不需要知道分布式算法之类,只需要根据mapreduce的规则定义好接口方法,剩下的就交给Haddop. 它会自动把相关的计算分布到各个结点上去,然后得出结果.

例如上述的例子 : Hadoop 要做的事 首先把 1PB的数据文件导入到 HDFS中, 然后编程人员定义好 map和reduce, 也就是把文件的行定义为key,每行的内容定义为value , 然后进行正则匹配,匹配成功则把结果 通过reduce聚合起来返回.Hadoop 就会把这个程序分布到N 个结点去并行的操作.

那么原本可能需要计算好几天,在有了足够多的结点之后就可以把时间缩小到几小时之内.

---------------------

作者:执念ID

来源:CSDN

原文:https://blog.csdn.net/u012117710/article/details/54091964

版权声明:本文为博主原创文章,转载请附上博文链接!

  1.  Hadoop的MapReduce的执行过程

 

 

 由上图可以看出,在进入Map之前,InputFormat把存储在HDFS的文件进行读取和分割,形成和任务相关的InputSplits,然后RecordReader负责读取这些Splits,并把读取出来的内容作为Map函数的输入参数。下面我就从代码执行的角度来看,数据是如何一步步从HDFS的file到Map函数的。在Yahoo Hadoop 教程 中已经详细讲解了这一过程。但我作为一个细节控,更想从源代码的级别去理清这一过程,这样我才觉得踏实,才觉得自己真真切切地掌握了这个知识点,因此我仔细阅读了这部分的源代码,写篇博客记录下来

 

    1. Hadoop=HDFS(文件系统,数据存储技术相关)+ Mapreduce(数据处理)

 

    1. Hadoop数据单元数据形式最终会转化为key/value,key/value是基本数据单元

jobContextImpl中包括了InputFormat的get和set方法,默认的实现是TextInputFormat ---读取文件的行,行的偏移量为key,行的内容为value。

 

Hadoop=HDFS(文件系统,数据存储技术相关)+ Mapreduce(数据处理),Hadoop的数据来源可以是任何形式,在处理半结构化和非结构化数据上与关系型数据库相比有更好的性能,具有更灵活的处理能力,不管任何数据形式最终会转化为key/value,key/value是基本数据单元。用函数式变成Mapreduce代替SQL,S

---------------------

  1. hadoop能做什么?应用场景  
    1.    hadoop擅长日志分析
    2. 文件统计扩展名

 

  1. 、浅谈Hadoop的基本原理

Hadoop分布式处理框架核心设计:

  • HDFS:(Hadoop Distributed File System)分布式文件系统;
  • MapReduce:是一种计算模型及软件架构。

 

2.1 HDFS

 

HDFS(Hadoop File System),是Hadoop的分布式文件存储系统。

 

将大文件分解为多个Block,每个Block保存多个副本。提供容错机制,副本丢失或者宕机时自动恢复。默认每个Block保存3个副本,64M为1个Block。将Block按照key-value映射到内存当中。

---------------------

图三 HDFS读取数据

2.2 MapReduce

 

MapReduce是一个编程模型,封装了并行计算、容错、数据分布、负载均衡等细节问题。MapReduce实现最开始是映射map,将操作映射到集合中的每个文档,然后按照产生的键进行分组,并将产生的键值组成列表放到对应的键中。化简(reduce)则是把列表中的值化简成一个单值,这个值被返回,然后再次进行键分组,直到每个键的列表只有一个值为止。这样做的好处是可以在任务被分解后,可以通过大量机器进行并行计算,减少整个操作的时间。但如果你要我再通俗点介绍,那么,说白了,Mapreduce的原理就是一个分治算法。

---------------------

基于Hadoop大数据分析应用场景与实战 - imgxr的博客 - CSDN博客.html

posted @ 2018-11-27 23:05  attilaxAti  阅读(20)  评论(0编辑  收藏  举报