Hadoop关键技术理解

来源:互联网 发布:关闭淘宝手机验证 编辑:程序博客网 时间:2024/06/05 11:25

Hadoop关键技术理解

  1. 前言

    大数据这几年特别火,从学校毕业后的工作也是和大数据相关的,但大数据具体是什么,有些什么关键技术?遇到有人问我这个问题的时候,只能说出比较有代表性的专有名词,如大数据的四个“V”以及hadoop, spark,storm等等,所以工作之余自己就查查资料,总结了一下对Hadoop关键技术的理解。

  2. Hadoop
    Hadoop的具体定义在网上一搜一大把,其关键技术主要是HDFS和MapReduce以及后来的yarn,具体如下所述:
    一、HDFS
    HDFS是分布式文件存储系统的简称,是根据google的GFS演化而来,HDFS的主要特点是能够分布式的存储海量数据,并通过调度系统(比如yarn)完成文件的高效管理。
    1)HDFS的主要工作是数据的存储和读取,工作原理如下图所示:
    HDFS的数据写入和读取
    2)总结:
    1、从HDFS的工作原理可以看出,集群的核心是name_node,一般情况下为了集群的稳定,会使用双机热备模式。
    2、集群必须满足各个节点间的网络是互通的,以及需要实现节点间的自动登录访问(ssh)
    3、数据写入默认情况下会保存三份数据,数据的写入操作对网络的带宽消耗大,且相对数据读出操作更耗时,因此,HDFS适合存储那些不会经常变动的大量数据。
    二、MapReduce
    MapReduce是一种分布式的计算框架,能够有效处理大批量的数据。事实上,日常生活中遇到的很多问题,均可以抽象成Map和Reduce两个过程进行处理,因此,在设计MapReduce程序时,首先得明确Map是什么?Reduce是什么?
    1)MapReduce的基本原理
    1、Map阶段是将原有数据打散成(key,value)形式,(key,value)需根据实际需求进行抽象,抽象的过程也是Map阶段编程的核心。
    2、Reduce阶段是将已经打散的数据(key,value),基于key值进行重新聚合,最终获得新的(key1,value1)数据,因此,Reduce阶段的核心是如何基于(key,value)生成(key1,value1)。
    2)MapReduce实现流程
    这里写图片描述

    3)总结
    MapReduce计算框架的核心思想是先将数据打散成原子型数据,然后对数据进行各种排序和归并,通过分而治之的方式,处理大数据集任务。同时,计算框架已将job tracker 与 task tracker之间的协作完全整合,用户只需设计Map阶段要输出什么数据?Reduce阶段需要考虑根据Map输出的数据进行合并获取预期的结果。

原创粉丝点击