大数据之Hadoop生态系统概述

一、什么是大数据        

        首先,我们来了解一下,什么是大数据?大数据(BigData)是指无法在一定时间内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率、多样化的信息资产。由IBM提出的大数据的五个特征(5V):Volume(大量)、Velocity(高速)、Variety(多样)、Value(价值)、Veracity(真实性)。

        大数据的核心是Hadoop生态系统。我们通常可能会根据特定的用特来描述软件工具,比如:Oracle是数据库、Apache Tomcat 是 Web 服务器。不过,Hadoop就有些复杂,Hadoop 是大量工具集合,这些工具可以协同工作来完成特定的任务。可以说Hadoop是一个数据管理系统,将海量的结构化和非结构化数据聚集在一起,这些数据涉及传统企业数据栈的几乎每一个层次,其定位是在数据中心占据核心地位。也可以说,Hadoop 是大规模并行执行框架,把超级计算机的能力带给大众,致力于加速企业级应用的执行。由于 Hadoop 提供如此广泛的功能,可以适用于解决大量问题,也可以说,Hadoop 是基础框架。Hadoop 提供所有这些功能,因此应该将 Hadoop 归类为一个生态系统,它包含大量的组件,从数据存储到数据集成、数据处理以及数据分析师的专用工具。

二、Hadoop生态系统概述

        下图是Hadoop生态系统的核心组件

        大数据之Hadoop生态系统概述

        Hadoop 框架中最核心设计就是:HDFS 和 MapReduce。HDFS 提供了海量数据的存储,  MapReduce 提供了对数据的计算。

  • HDFS  :Hadoop 生态系统的基础组件是 Hadoop 分布式文件系统(HDFS)HDFS的机制是将大量数据分布到计算机集群上,数据一次写入,但可以多次读取用于分析。它是其他一些工具的基础,例如 HBase

  • MapReduce  :Hadoop 的主要执行框架即 MapReduce,它是一个用于分布式并行数据处理的编程模型,将job分为 mapping 阶段和 reduce 阶段(因此而得名)。开发人员为 Hadoop 编写 MapReduce Job,并使用 HDFS 中存储的数据,而 HDFS 可以保证快速的数据访问。鉴于 MapReduce 的特性,Hadoop 以并行的方式将处理过程移向数据,从而实现快速处理。

  • HBase  :一个构建在 HDFS 之上的面向列的 NoSQL 数据库,HBase 用于对大量数据进行快速读取/写入。HBase Zookeeper 用于自身的管理,以保证其所有组件都正在运行。

  • Zookeeper  :Zookeeper Hadoop 的分布式协调服务。Zookeeper 被设计成可以在机器集群上运行,是一个具有高度可用性的服务,用于 Hadoop 操作的管理,而且很多 Hadoop 组件都依赖它。

  • Pig  :MapReduce 编程复杂性的抽象,Pig 平台包含用于分析 Hadoop 数据集的执行环境和脚本语言(Pig Latin)。它的编译器将 Pig Latin 翻译为 MapReduce 程序序列。

  • Hive  :类似于 SQL 的高级语言,用于执行对存储在 Hadoop 中数据的查询,Hive允许不熟悉MapReduce的开发人员编写数据查询语句,它会将其翻译为Hadoop中的 MapReduce Job。类似于 PigHive 是一个抽象层,但更倾向于面向较熟悉 SQL而不是 Java 编程的数据库分析师。

  • Oozie  :一个可扩展的 Workflow 系统,Oozie 已经被集成到 Hadoop 软件栈中,用于协调多个 MapReduce Job的执行。它能够处理大量的复杂性,基于外部事件(包括定时和所需数据是否存在)来管理执行。

        Hadoop 生态系统还包含一些用于与其他企业级应用进行集成的框架:

  • Sqoop 是一个连通性工具,用于在关系型数据库和数据仓库与 Hadoop 之间移动数据。Sqoop 利用数据库来描述导入/导出数据的模式,并使用 MapReduce 实现并行操作和容错。

  • Flume 是一个分布式的、具有可靠性和高可用性的服务,用于从单独的机器上将大量数据高效地收集、聚合并移动到 HDFS 中。它基于一个简单灵活的架构,提供流式数据操作。它借助于简单可扩展的数据模型,允许将来自企业中多台机器上的数据移至 Hadoop

三、概念上Hadoop企业级应用

大数据之Hadoop生态系统概述