- 大数据:从基础理论到最佳实践
- 祁伟
- 1406字
- 2021-01-07 18:47:55
1.5 主流大数据技术
目前,主流的开源大数据技术的基础原理皆基于上述基本理论。主流的大数据技术可以分为两大类。
一类面向非实时批处理业务场景,着重用于处理传统数据处理技术在有限的时空环境里无法胜任的TB级、PB级海量数据存储、加工、分析、应用等。一些典型的业务场景如:用户行为分析、订单防欺诈分析、用户流失分析、数据仓库等,这类业务场景的特点,是非实时响应,通常,一些单位在晚上交易结束时,抽取各类数据进入大数据分析平台,在数小时内获得计算结果,并用于第二天的业务。比较主流的支撑技术为HDFS、MapReduce、Hive等。
另一类面向实时处理业务场景,如微博应用、实时社交、实时订单处理等,这类业务场景,特点是强实时响应,用户发出一条业务请求,在数秒钟之内要给予响应,并且确保数据完整性。比较主流的支撑技术为HBase、Kafka、Storm等。
这里先简要介绍这些技术的特点,针对这些技术的详细使用,在本书后面会安排。
(1)HDFS。
HDFS是Hadoop的核心子项目,是整个Hadoop平台数据存储与访问的基础,在此之上,承载其他如MapReduce、HBase等子项目的运转。它是易于使用和管理的分布式文件系统。
HDFS是一个高度容错性的系统,适合部署在廉价的机器上。HDFS能提供高吞吐量的数据访问,非常适合大规模数据集上的应用。HDFS放宽了一部分POSIX约束,来实现流式读取文件系统数据的目的。
(2)MapReduce。
MapReduce是一个软件架构,在数以千计的普通硬件构成的集群中以平行计算的方式处理海量数据,该计算框架具有很高的稳定性和容错能力。MapReduce对负责逻辑进行高度归约,抽象为Mapper和Reducer类,复杂逻辑通过理解,转化为符合MapReduce函数处理的模式。
MapReduce job会划分输入数据集为独立的计算块,这些分块被map任务以完全并行、独立的模式处理。MapReduce框架对maps的输出进行排序,排序后,数据作为reduce任务的输入数据。job的input和output数据都存储在HDFS文件系统中。计算框架管理作业调度、监控作业、重新执行失败任务。
(3)YARN。
Apache Hadoop YARN(Yet Another Resource Negotiator,另一种资源协调者)是从Hadoop 0.23进化来的一种新的资源管理和应用调度框架。基于YARN,可以运行多种类型的应用程序,例如MapReduce、Spark、Storm等。YARN不再具体管理应用,资源管理和应用管理是两个低耦合的模块。
YARN从某种意义上来说,是一个云操作系统(Cloud OS)。基于该操作系统之上,程序员可以开发多种应用程序,例如批处理MapReduce程序、Spark程序以及流式作业Storm程序等。这些应用,可以同时利用Hadoop集群的数据资源和计算资源。
(4)HBase。
HBase是Hadoop平台中重要的非关系型数据库,它通过线性可扩展部署,可以支撑PB级数据存储与处理能力。
作为非关系型数据库,HBase适合于非结构化数据存储,它的存储模式是基于列的。
(5)Hive。
Hive是Apache基金会下面的开源框架,是基于Hadoop的数据仓库工具,它可以把结构化的数据文件映射为一张数据仓库表,并提供简单的SQL(Structured Query Language)查询功能,后台将SQL语句转换为MapReduce任务来运行。
使用Hive,可以满足一些不懂MapReduce但懂SQL的数据库管理员的需求,让他们能够平滑地使用大数据分析平台。
(6)Kafka。
Apache Kafka是分布式“发布-订阅”消息系统,最初,它由LinkedIn公司开发,而后成为Apache项目。Kafka是一种快速、可扩展的、设计时内在地就是分布式的、分区的和可复制的提交日志服务。
Kafka是一个分布式系统,易于向外扩展,可为发布和订阅提供高吞吐量,并且支持多订阅者,当失败时,能自动平衡消费者;Kafka可将消息持久化存储,既可面向非实时业务,也可以面向实时业务。
(7)Storm。
Storm是一个免费开源、分布式、高容错的实时计算系统。它能够处理持续不断的流计算任务,目前,比较多地被应用到实时分析、在线机器学习、ETL等领域。