zoukankan      html  css  js  c++  java
  • 大数据:Hadoop(简介)

    一、简介

    • 定义:开源的,做分布式存储与分布式计算的平台;
    • 功能:搭建大型数据仓库,对PB级数据进行存储、处理、分析、统计等业务;(如日志分析、数据挖掘)
    • Hadoop工作模块
    1. Common:提供框架和工具,对其它Hadoop模块的支持;
    2. Distributed File System(HDFS:分布式文件系统):负责数据的存储;
    3. YARN:作业的调度及资源管理;
    4. MapReduce:基于YARN的并行处理框架;

    二、Hadoop 功能模块

     1)HDFS(分布式文件系统)

    • 特点

    1. 可扩展,可容错、可海量的存储数据;
    2. 将文件切分成指定大小的数据块(一般默认128M),并以多副本的存储在多个机器上;(达到容错目的)
    3. 数据切分、多副本、容错等操作对用户是透明的;
    • 实例简介

    1. 有 8 个节点(一般指单个服务器,一个独立的磁盘);
    2. part-0(Filename):文件名;
    3. r:2(numReplicas):表示 part-0 文件有 2 个副本;
    4. {1, 3}(block-ids):表示 part-0 文件被切分为 1 和 3 两部分;
    • 对多个 block 进行编号,保证读取文件的数据时,不同数据被读取的顺序不变;

     2)YARN(Yet Another Resource Negotiator)

    • 功能:负责整个集群资源的管理和调度;
    • 特点:可扩展(如:计算能力不足时可添加机器)、可容错、多框架资源统一调度(可以跑不同的框架,进而可以进行针对不同的业务);
    • 实例简介

    1. 可多个不同类型的框架同时进行; 

     3)MapReduce

    • 功能:分布式计算框架;
    • 特点:可扩展、可容错、做海量数据离线处理(不能实时处理);
    • 实例简介

    •  计算过程:(例:world count process,统计文章中所有单词的出现次数)
    1. Input:输入操作文件;
    2. Splitting:将操作文件分割为 3 部分;(一般会分别放在 3 台机器上进行操作计算,可提高效率)
    3. Mapping:以 空格 为分隔符,将每部分文章拆分成单个词汇;

    三、Hadoop 优势及其生态系统

     1)Hadoop 的优势

    • 高可靠性

    1. 存储方面:数据块多副本;(防止数据块丢失)
    2. 计算方面:如果出现错误,会重新调度作业进行计算;
    • 扩展性

      存储/计算资源不够时,可以添加横向的线性扩展机器;

      一个集群中可以包含数以千计的节点;

    • 其它

    1. 可以存储在廉价的机器上,降低成本;
    2. 具有成熟的生态圈;

     2)Hadoop 生态系统

    • 狭义的 Hadoop:一个适合大数据分布式存储(HDFS)、分布式计算(MapReduce)和资源调度(YARN)的平台;
    • 广义的 Hadoop:指Hadoop生态系统,Hadoop 生态系统是一个很庞大的概念,hadoop 是其中最重要最基础的一部分;生态系统中的每一个子系统只解决某一个特定的问题域(甚至可能很窄),不搞统一型的一个全能系统,而是小而精的多个小系统;
    1. Hive:通过 SQL 语句进行统计分析;(Hive 的执行引擎将 SQL 语句转换为Map Reduce,提交到集群上进行计算)
    2. R Connectors:R 语言,一般做统计分析;
    3. Pig:通过脚本方式进行统计分析;(将脚本转换为 Map Reduce,一般做离线处理)
    4. Ooize:配置具有依赖关系的数据,一步步有序的执行;(执行顺序排列好后,不能乱序执行)
    5. Zookeeper:管理多种框架,做分布式的协调服务;(如果某个执行框架出现问题,可做单点的切换,执行其他框架)
    6. Flume:日志收集框架;(分布式的,使用配置文件,收集多个服务器上的运行日志)
    7. Sqoop:数据传输交换工具,用于传统的关系型数据库与 Hadoop 之间进行数据传输,双向的;(可将传统数据库中的数据直接抽取到 HDFS、Hive 或者 Hbase 中)
    8. Hbase:实时查询数据;是针对结构化数据的一个可伸缩、可扩展、高性能、面向列的一个数据库,或者说是Hadoop 中的一个数据库;
    •  一般使用不同框架解决特定域的问题;

    • 生态系统特点:所有框架都是开源的,可根据源码做定制化开发,并且社区活跃;

  • 相关阅读:
    C#_WinForm接收命令行参数
    SQLite不支持的SQL语法总结
    Thirft框架介绍
    jquery获取复选框的值
    REST构架风格介绍:状态表述转移
    RESTful HTTP的实践infoQ
    C#如何在webBrowser1控件通过TagName,Name查找元素(没有ID时)遍历窗体元素
    Html TO Ubb and Ubb TO Html
    SQL 位运算
    Memcached真的过时了吗?【转帖】
  • 原文地址:https://www.cnblogs.com/volcao/p/11443787.html
Copyright © 2011-2022 走看看