• 一. 大数据的应用场景
  • 二. hadoop 2.x 概述
  • 三. hadoop 2.x 的生态系统

一:大数据的应用场景

  • 1.1 2015 大数据峰会:

    过去7年我们从互联网创业到互联网产业,很快进入互联网经济,
    而且正在从IT走向DT时代,也许昨天称为IT领袖峰会,未来要称DT领袖峰会,
    DT不仅仅  是技术提升,而是思想观念的提升。
    DT和IT时代区别,IT以我为中心,DT以别人为中心,DT要让企业越来越强大,
    让你员工强大。DT越来越讲究开放、透明。
    我们所有企业都要思考什么样的文化、什么样的组织、
    什么样的人才才能适应未来DT时代,相信整个DT时代到来,在海外这被称为D经济。
    
  • 1.2 大数据hadoop的应用

    大数据应用分析
    1)统计
    2)推荐
    3)机器学习
    4)人工智能,预测(算法)
    
    SQL on Hadoop
    1)Hive
    2)Prestore
    3)Impala
    4)Phoneix(基于HBase)
    5)Spark SQL
    
  • 1.3 大数据的4V特性
 大数据的特征(4V+1O):

数据量大(Volume)。第一个特征是数据量大,包括采集、存储和计算的量都非常大。大数据的起始计量单位至少是P(1000个T)、E(100万个T)或Z(10亿个T)。

类型繁多(Variety)。第二个特征是种类和来源多样化。包括结构化、半结构化和非结构化数据,具体表现为网络日志、音频、视频、图片、地理位置信息等等,多类型的数据对数据的处理能力提出了更高的要求。

价值密度低(Value)。第三个特征是数据价值密度相对较低,或者说是浪里淘沙却又弥足珍贵。随着互联网以及物联网的广泛应用,信息感知无处不在,信息海量,但价值密度较低,如何结合业务逻辑并通过强大的机器算法来挖掘数据价值,是大数据时代最需要解决的问题。

速度快时效高(Velocity)。第四个特征数据增长速度快,处理速度也快,时效性要求高。比如搜索引擎要求几分钟前的新闻能够被用户查询到,个性化推荐算法尽可能要求实时完成推荐。这是大数据区别于传统数据挖掘的显著特征。

数据是在线的(Online)。数据是永远在线的,是随时能调用和计算的,这是大数据区别于传统数据最大的特征。现在我们所谈到的大数据不仅仅是大,更重要的是数据变的在线了,这是互联网高速发展背景下的特点。比如,对于打车工具,客户的数据和出租司机数据都是实时在线的,这样的数据才有意义。如果是放在磁盘中而且是离线的,这些数据远远不如在线的商业价值大。

大数据的概述_第1张图片


二: hadoop 2.x 的概述

  • 2.1 hadoop 包含的四大模块

    Hadoop Common:
    
              为其他Hadoop模块提供基础设施。
    Hadoop HDFS:
    
          一个高可靠、高吞吐量的分布式文件系统
    Hadoop MapReduce:
    
           一个分布式的离线并行计算框架
    Hadoop YARN:
    
           一个新的MapReduce框架,任务调度与资源管理
  • 2.2 apache hadoop 的起源

    Apache Lucene:
    
       开源的高性能全文检索工具包
    Apache Nutch:
    
       开源的 Web 搜索引擎
    Google 三大论文:
    
       MapReduce / GFS / BigTable
    Apache Hadoop:
       大规模数据处理
  • 2.3 HDFS 系统架构图

    大数据的概述_第2张图片

    大数据的概述_第3张图片

HDFS 服务功能

NameNode

主节点,存储文件的元数据如文件名,文件目录结构,文件属性(生成时间,副本数,文件权限),以及每个文件的块列表和块所在DataNode等。

DataNode

在本地文件系统存储文件块数据,以及块数据的校验和。

Secondary NameNode

用来监控HDFS状态的辅助后台程序,每隔一段时间获取HDFS元数据的快照

  • 2.4 YARN 架构图

大数据的概述_第4张图片

YARN 服务功能

 ResourceManager
     处理客户端请求
     启动/监控ApplicationMaster
     监控NodeManager
     资源分配与调度

NodeManager
      单个节点上的资源管理
      处理来自ResourceManager的命令
      处理来自ApplicationMaster的命令

ApplicationMaster
      数据切分
      为应用程序申请资源,并分配给内部任务
      任务监控与容错

  Container
 对任务运行环境的抽象,封装了CPU内存等多维资源以及环境变量、启动命令等任务运  行相关的信息.
离线计算框架 MapReduce

一: 将计算过程分为两个阶段,map和reduce
     map 阶段并行处理输入数据
     reduce 阶段对map 结果进行汇总。
二:shuffle 连接map 和Reduce 两个阶段
     map task 将数据写到本地磁盘
     reduce task 从每个map TASK 上读取一份数据
三: 仅适合 离线批处理
     具有很好的容错性和扩展性
     适合简单的批处理任务

四: 缺点明显
     启动开销大,过多使用磁盘导致效率底下等。
  • 2.5 MapReduce on YARN
    大数据的概述_第5张图片

    1)用户向YARN中提交应用程序/作业,其中包括ApplicaitonMaster程序、启动ApplicationMaster的命令、用户程序等;
    
    2)ResourceManager为作业分配第一个Container,并与对应的NodeManager通信,要求它在这个Containter中启动该作业的ApplicationMaster;
    
    3)ApplicationMaster首先向ResourceManager注册,这样用户可以直接通过ResourceManager查询作业的运行状态;然后它将为各个任务申请资源并监控任务的运行状态,直到运行结束。即重复步骤4-7;
    
    4)ApplicationMaster采用轮询的方式通过RPC请求向ResourceManager申请和领取资源;
    
    5)一旦ApplicationMaster申请到资源后,便与对应的NodeManager通信,要求它启动任务;
    
    6)NodeManager启动任务;
    
    7)各个任务通过RPC协议向ApplicationMaster汇报自己的状态和进度,以让ApplicaitonMaster随时掌握各个任务的运行状态,从而可以在任务失败时重新启动任务;
    在作业运行过程中,用户可随时通过RPC向ApplicationMaster查询作业当前运行状态;
    
    8)作业完成后,ApplicationMaster向ResourceManager注销并关闭自己;

    三. hadoop 2.x 的生态系统

    大数据的概述_第6张图片

     数据抓取系统 - Nutch
    
     海量数据怎么存,当然是用分布式文件系统 - HDFS
    
     数据怎么用呢,分析,处理
     MapReduce框架,让你编写代码来实现对大数据的分析工作
    
     非结构化数据(日志)收集处理 - fuse,webdav, chukwa, flume, Scribe
    
     数据导入到HDFS中,至此RDBSM也可以加入HDFS的狂欢了 - Hiho, sqoop
    
     MapReduce太麻烦,好吧,让你用熟悉的方式来操作Hadoop里的数据 – Pig, Hive, Jaql
    
     让你的数据可见 - drilldown, Intellicus
    
     用高级语言管理你的任务流 – oozie, Cascading
    
     Hadoop当然也有自己的监控管理工具 – Hue, karmasphere, eclipse plugin, cacti, ganglia
    
     数据序列化处理与任务调度 – Avro, Zookeeper
    
     更多构建在Hadoop上层的服务 – Mahout, Elastic map Reduce
    
     OLTP存储系统 – Hbase