大数据发展到现在,提到大数据计算引擎,Spark一定是大家不能忽视的一个。经过这些年来的发展,Spark在大数据行业中的市场占有率也在不断提高,能够自己独立支持集群运,还能够与Hadoop生态集成运行,因此受到大家的广泛欢迎。今天加米谷学院就来为大家来聊一聊,Spark在大数据生态当中的定位。
初期的大数据,Hadoop框架受到大家的重视是显而易见的,然而随着新的数据处理需求的产生,Hadoop在实时数据流上的计算,Hadoop的劣势逐渐展现出来。而此时,Spark就在这种的背景下诞生了,我们可以看到的是,Spark对Hadoop MapReduce计算框架的替代和优化。
Spark和Hadoop一样都是基于分布式集群进行并行计算。并且Spark能够快速完成计算任务,相较于MapReduce,Spark很大的一个变化在于,将原来在磁盘上运行的任务转移到内存当中来进作,而且对于内存计算的效率相较基于磁盘计算,要快很多。
同时,比较MapReduce只固定支持map与reduce这两种的任务类型,Spark则延续了MapReduce的模式,还能够支持更多的任务类型,可以适应更多的计算场合。Spark对于分布式大数据的抽象处理,让使用者不必像写MapReduce一样,太过于关注底层的实现逻辑,而是在处理层次上投入更多精力。Spark解决的核心问题,是数据计算任务的解决,对于数据存储以及任务调度,还需要依靠其他工具来执行。
Spark的工作需要配合存储层,举例来说就像Hadoop中的HDFS分布式文件存储或者MongoDB、Cassandra这种类型数据库来完成。与此同时,它还需要一个集群的管理器,比如YARN、Mesos等用来管理相应的数据处理任务。当然Spark自己也提供集群管理功能,这样集群的每个节点都需要安装Spark,用于进行任务的编排。
Spark发展到现在,已经形成了相对完善的大数据处理生态,包含S有park ML用来处理基于大量数据的机器学习任务,还有Spark Streaming用于处理小批量的流式数据等。
了解Spark在大数据生态当中的定位。我们需要了解的是,Spark作为大数据处理引擎,虽然并不能完美解决所有环节的问题,但是对于绝大部分问题,都能够给出合适的方案,不管是独立运行还是集成运行,Spark系统的可用性都很高。