作者:禅与计算机程序设计艺术
1.背景介绍
在大数据时代,如何从海量数据中发现有效信息、有效商业价值和快速准确地进行预测分析,是一件非常重要且复杂的任务。如何高效、低成本地存储和处理海量的数据成为一个核心问题。由于数据的特点是高维度和多样化的,传统的关系型数据库很难存储这些复杂的数据。同时,对大数据进行数据分析、挖掘、处理的过程需要大规模集群计算框架支持。基于这种需求,人们开发了一批基于分布式存储和计算引擎的开源工具软件。本系列教程主要介绍这些开源工具软件和分布式计算框架中的关键组件的基本原理、操作流程和应用案例。读者将了解到大数据处理、分析的一些基础知识、核心算法、工具方法等等。
2.核心概念与联系
分布式计算框架
Hadoop、Spark、Storm等都是分布式计算框架,具有高扩展性、容错能力和快速运算能力。由于它们的设计理念、实现机制不同,但都遵循一定的工作模式和接口规范,因此可以相互配合。如图所示,Hadoop生态圈包含HDFS、MapReduce、YARN、Hive等组件,Spark生态圈包含Spark Core、Spark SQL、Spark Streaming等组件。
其中,HDFS(Hadoop Distributed File System)是一个用于存储文件数据的分布式文件系统,它是一个高容错、高可靠、可扩展的文件系统。通过HDFS,可以在廉价的PC服务器上运行大规模并行程序;而MapReduce(Massive Parallel Processing)是一种编程模型和计算框架,它允许用户编写简单的、高度优化的代码,将其映射到集群中共享资源上的节点上。YARN(Ye