Loading

Hadoop生态圈

date: 2018-11-16 18:57:14
updated: 2018-11-16 18:57:14

一、Hadoop

  1. Hadoop是一个由Apache基金会所开发的分布式系统基础架构

  2. 充分利用集群的威力进行高速运算和存储,具有可靠、高效、可伸缩的特点

  3. Hadoop的核心是Yarn、HDFS和MapReduce

    • 适合大数据的分布式存储与计算平台
    • HDFS: Hadoop Distributed File System分布式文件系统
    • MapReduce:并行计算框架

二、HDFS(Hadoop分布式文件系统)

  1. Hadoop Distributed File System
  2. HDFS是Hadoop体系中数据存储管理的基础
  3. 高容错;高吞吐量;在项目里处理大数据集;流式访问文件系统数据;可以构建在普通的硬件之上
  4. 一次写入多次读取;数据以块的形式,同时分布在集群不同物理机器上

三、MapReduce(分布式计算框架)

  1. MapReduce是一种分布式计算模型,用以进行大数据量的计算
  2. 它屏蔽了分布式计算框架细节,将计算抽象成map和reduce两部分,其中Map对数据集上的独立元素进行指定的操作,生成键-值对形式中间结果。Reduce则对中间结果中相同“键”的所有“值”进行规约,以得到最终结果

四、Hbase(分布式列存数据库)

  1. HBase是一个建立在HDFS之上,面向列的针对结构化数据的可伸缩、高可靠、高性能、分布式和面向列的动态模式数据库

  2. HBase利用Hadoop HDFS作为其文件存储系统,利用Hadoop MapReduce来处理HBase中的海量数据

  3. 一次写多次读,对修改支持很少

  4. 表 行键 列族 列 值

    • Google Bigtable的开源实现
    • 列式数据库
    • 可集群化
    • 可以使用shell、web、api等多种方式访问
    • 适合高读写(insert)的场景
    • HQL查询语言
    • NoSQL的典型代表产品

五、Hive(数据仓库)

  1. Hive定义了一种类似SQL的查询语言(HQL),将SQL转化为MapReduce任务在Hadoop上执行

  2. 通常用于离线分析

    • 数据仓库工具。可以把Hadoop下的原始结构化数据变成Hive中的表
    • 支持一种与SQL几乎完全相同的语言HiveQL。除了不支持更新、索引和事务,几乎SQL的其它特征都能支持
    • 可以看成是从SQL到Map-Reduce的映射器
    • 提供shell、JDBC/ODBC、Thrift、Web等接口

数据仓库和关系型数据库的关系
一般来说,一个项目通常都有专门的数据库进行存储数据,这时候用到的一般都是关系型数据库,存储的数据都是较少的有针对性的数据,可以快速的存取
数据仓库中存储的数据是庞大的,并且种类繁多,所能执行的语句也很多

六、Sqoop(数据ETL/同步工具)

  1. SQL-to-Hadoop

  2. 主要用于传统数据库和Hadoop之前传输数据,可以将一个关系型数据库中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中

  3. 数据的导入和导出本质上是Mapreduce程序,充分利用了MR的并行化和容错性

    • 用于在Hadoop和关系型数据库之间交换数据
    • 通过JDBC接口连入关系型数据库

七、Flume(日志收集工具)

  1. Cloudera开源的日志收集系统,具有分布式、高可靠、高容错、易于定制和扩展的特点
  2. 它将数据从产生、传输、处理并最终写入目标的路径的过程抽象为数据流,在具体的数据流中,数据源支持在Flume中定制数据发送方,从而支持收集各种不同协议数据
  3. 同时,Flume数据流提供对日志数据进行简单处理的能力,如过滤、格式转换等。此外,Flume还具有能够将日志写往各种数据目标(可定制)的能力

八、Yarn(分布式资源管理器)

  1. 将JobTracker的两个主要功能(资源管理和作业调度/监控)分离,主要方法是创建一个全局的ResourceManager(RM)和若干个针对应用程序的ApplicationMaster(AM)
posted @ 2020-10-20 16:33  猫熊小才天  阅读(59)  评论(0编辑  收藏  举报