1.2 主流大数据技术

1.2.1 主流大数据技术各阶段

现阶段,主流大数据技术一般分为7个阶段,分别为:

· 架构设计技术:ZooKeeper、Kafka等。

· 采集技术:Logstash、Sqoop、Flume等。

· 存储技术:HDFS、HBase、Hive等。

· 计算技术:MapReduce、Spark、Storm等。

· 数据分析挖掘技术:Mahout、MLlib。

· 海量数据检索及即时查询分析技术:Elasticsearch、Presto、Impala、Kylin等。

· 可视化技术:ECharts、Superset、SmartBI、FineBI、YonghongBI等。

1.2.2 Hadoop生态系统

Hadoop是一个开源的大数据分析软件,集合了大数据不同阶段技术的生态系统,其核心是Yarn(Yet Another Resource Negotiator)、HDFS(Hadoop Distributed File System)和MapReduce,集成了Hadoop生态圈。如图1-4所示是Hadoop生态系统架构。

图1-4 Hadoop生态系统

1.2.3 Hadoop核心组件简介

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

Hadoop体系中数据存储管理的基础是HDFS,HDFS是一个高度容错的系统,能够检测和应对硬件故障,能够在低成本的通用硬件上运行。

HDFS简化了文件的一致性模型,通过流式数据访问,提供了高吞吐量数据访问能力,适合带有大型数据集的应用程序。除此之外,HDFS还提供了“一次性写入多次读取”的机制,数据以块的形式同时分布在集群的不同物理机器上。HDFS的架构是基于一组特定的节点构建的,这些节点包括一个NameNode,在HDFS内部提供元数据服务,若干个DataNode为HDFS提供存储块。

2.MapReduce(分布式计算框架)

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

MapReduce提供的主要功能包括:

· 数据划分和计算任务调度。

· 数据/代码互定位。

· 系统优化。

· 出错检测和恢复。

3.HBase(分布式列存数据库)

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

HBase包括以下几个方面的特征:

· 采用了BigTable的数据模型,增强的稀疏排序映射表(Key-Value),其中键由行关键字、列关键字和时间戳组成。

· 提供了对大规模数据的随机、实时读写访问,同时HBase中存储的数据可以使用MapReduce来处理,将数据存储和并行计算两者完美地融合在一起。

· 利用了HDFS作为其文件存储系统,并利用MapReduce来处理HBase中的海量数据,利用ZooKeeper提供协同服务。

4.ZooKeeper(分布式协同服务)

ZooKeeper是一个为分布式应用提供协同服务的软件,提供的功能包括配置维护、域名服务、分布式同步、组服务等,用于解决分布式环境下的数据管理问题。Hadoop的许多组件依赖于ZooKeeper,用于管理Hadoop操作。ZooKeeper的目标是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。

5.Hive(数据仓库)

Hive是基于Hadoop的一个数据仓库工具,最初用于解决海量结构化日志数据的统计问题。Hive使用类SQL的Hive查询语言(HQL)实现数据查询,并将HQL转化为在Hadoop上执行的MapReduce任务。Hive用于离线数据分析,可让不熟悉MapReduce的开发人员,使用HQL实现数据查询分析,大大降低了大数据处理应用的门槛。Hive本质上是基于HDFS上的应用程序,其数据都存储在Hadoop兼容的文件系统(如HDFS)中。