大数据Hadoop生态简介

大数据带来的挑战

数据量越来越大,种类越来越多,产生的速度越来越快

声明:参考华为的一篇文章

Hadoop

  • Apache开源项目,超始于2005年
  • 针对解决数据量大,各类多,产生数据快的问题
  • 强大的开源社区支持
  • 日益丰富的生态系统

HDFS

image.png | left | 826x313

  • HDFS是基于Google发布的GFS论文进行设计开发,运行在通用硬件上的分布式文件系统
  • HDFS的特点
    • 高容错性:认为硬件总是不可靠的,所以每份数据都有备份文件
    • 高吞吐量:为大量数据访问的应用提供高吞吐量支持
    • 大文件存储:支持存储TB-PB级别的数据

image.png | left | 747x326

MapReduce

  • MapReduce基于Google发布的分布式计算框架Map/Reduce论文设计开发,用于大规模数据的并行运算
  • 特点
    • 易于编程:程序员仅需描述做什么,具体怎么做交由系统的执行框架处理

image.png | left | 747x395

Yarn

  • Yarn是Hadoop2.0中的资源管理系统,它是一个通用的资源管理模块,可为各类应用程序进行资源管理和作业调度,除了提供MapReduce框架,还可以支持其他框架,比如Saprk、Storm等
  • 特点
    • 良好的扩展性:可通过添加节点以扩展集群能力
    • 高容错性:通过计算迁移策略提高中集群的容错性

image.png | left | 747x357

Hive

  • Hive是基于Hadoop的数据仓库软件,可以查询和管理PB级别的分布式数据。提供类SQL的HiveSQL语言将SQL查询转换为MapReduce任务实现数据处理

常见场景

  • 数据清洗:数据抽取,数据加载,数据切换
  • 非实时分析:日志分析,文本分析等
  • 数据挖掘:用户行为分析,兴趣分析等

image.png | left | 747x470

HBase

  • HBase是一个高可靠性、高性能、面向列、可伸缩的分布式数据库,提供少量数据存储功能,用来解决关系型数据库在处理海量数据时的局限性

常见场景

  • 存储大表数据:表的规划可达到数十亿行以及数百万列
  • 高效的随机读取
  • 同时处理结构化和非结构化的数据

image.png | left | 747x211

Spark

  • Spark是一种通用的高性能集群计算系统。既有类似于MR的颁式内存计算框架,也有类似Hive的类SQL查询,还提供了实时数据的处理引擎和机器学习的算法库

常见场景

  • 快速的数据处理,ETL(抽取,转换,加载)
  • 实时数据分析
  • 数据挖掘和机器学习

image.png | left | 747x294

Kafka

  • Kafkaa是一个高吞吐、分布式、基于发布订阅的消息系统,利用Kafka技术可在廉价的机器上搭建起大规模消息系统,适用于离线和在线的消息消费

常见场景

  • 常规的消息收集
  • 网站活性跟踪
  • 聚合统计系统运营数据:如监控数据

image.png | left | 747x330

Strom

  • Storm是一个分布式、实时计算框架,具有高度容错、低时延的优点

常见场景

  • 实时分析:如实时处理日志处理、交通流量分析等
  • 实时统计:如网站的实时访问统计、排序等
  • 实时推荐:如实时广告定位、事件营销等

image.png | left | 747x370

Flume

  • Flume是一个分布式、可靠和高可用的少量日志聚合的系统。支持在系统中定制各类数据发送方,用于收集数据然后写到各种数据接收方的能力。用户几乎不必进行任何额外开发即可使用

常见场景

  • 从固定目录下采集日志信息到目的地:HDFS,HBase,Kafka
  • 实时采集日志信息到目的地

image.png | left | 747x207