当前位置:首页 > 内存 > 正文

什么是基于内存的分布式计算框架

  • 内存
  • 2024-04-25 21:28:13
  • 640

一、大数据有哪些框架

现有大数据框架问题的答案是:

大数据处理和分析是一个复杂而广泛的领域,涉及许多技术和工具。以下列出了一些大数据处理和分析中常用的框架:

Hadoop:

Hadoop是一个分布式计算框架,主要由两个主要组件组成:系统分布式HDFS和MapReduce文件。HDFS为海量数据提供存储,MapReduce为海量数据提供计算。Hadoop具有高可靠性、高效性、可扩展性和开放性等优点,因此在大数据领域得到了广泛的应用。

Spark:

Spark是一个基于内存的分布式计算框架,提供比Hadoop更快的计算速度和更方便的API。Spark的主要组件是弹性分布式数据集(RDD),它可以跨集群以分布式方式存储和处理数据。Spark还提供了几个库,包括MLlib机器学习库、GraphX图形计算库、Streaming流处理库。

Flink:

Flink是一个高性能、高吞吐量的分布式流处理框架,提供基于流和批处理的功能。Flink的主要组件是DataFlowGraph,它可以将数据流图的每个节点分配给不同的计算节点进行并行处理。Flink还提供了几个库,包括MLlib机器学习库、GraphX图形计算库等。

Storm:

Storm是一个实时分布式计算系统,可以实时处理数据流。Storm的主要组成部分是拓扑,它可以将拓扑中的每个节点分配给不同的计算节点进行并行处理。Storm还提供了可扩展的API,可以轻松地与其他框架集成。

Kafka:

Kafka是一个分布式流处理平台,可用于实时处理和存储实时数据流。Kafka的主要组件是发布订阅(Pub-Sub)模型,可以将数据流发布到不同的消费者节点,并保证消息的有序性和可靠性。Kafka还提供了可扩展的API,可以轻松地与其他框架集成。

除了上述框架之外,还有很多其他的框架和工具可以用于大数据处理和分析,例如:Hive、HBase、Pig、Impala等。这些框架和工具各有特点和优势,您可以根据实际需要选择合适的工具进行数据处理和分析。


二、科普Spark,Spark是什么,如何使用Spark

关于Spark的科普,什么是Spark以及如何使用Spark


1Spark是基于什么算法进行分布式计算(很简单)

3为什么Spark比Hadoop更灵活

4Spark有什么局限性

5。什么情况下适合使用Spark

什么是Spark

Spark是一个类似于开源HadoopMapReduce的通用并行计算框架由加州大学伯克利分校AMPlabSpark提供。基于MapReduce算法的分布式计算具有HadoopMapReduce的优点,但与MapReduce不同的是,中间输出和作业结果可以存储在内存中,因此无需读取它们;并编写HDFS,使Spark更适合需要迭代mapreduce算法的数据挖掘和机器学习。其架构如下:

Spark与Hadoop的比较

Spark的中间数据放在记忆。迭代操作更加高效。

Spark更适合需要更多迭代操作的ML和DM操作。因为在Spark中,有RDD这个抽象概念。

Spark比Hadoop更加通用

Spark提供了多种类型的数据集操作,不像Hadoop只提供Map和Reduction操作。例如,有多种类型的操作,例如map、filter、flatMap、sample、groupByKey、reductionByKey、union、join、cogroup、mapValues、sort、partitionBy等。Spark将这些操作称为转换。它还提供各种操作,例如计数、收集、减少、搜索和保存。

这些不同类型的数据集操作方便用户开发更高层的应用。不同处理节点之间的通信模型不再像Hadoop那样只有DataShuffle模型。用户可以对中间结果进行命名、具体化和控制存储、分区等。可以说编程模型比Hadoop更加灵活。

但是,由于RDD的特性,Spark并不适合更新细粒度异步状态的应用,例如Web服务存储或者爬虫和索引增量Web。它不适合增量编辑应用模型。

容错

容错是通过计算分布式数据集时的检查点来实现的。检查点有两种方式,一种是保存检查点数据,另一种是保存更新。用户可以控制使用哪种方法来实现容错。

可用性

Spark通过提供丰富的Scala、Java、Python和交互式ShellAPI来提高可用性。

Spark与Hadoop的结合

Spark可以直接向HDFS读写数据,也支持SparkonYARN。Spark可以与MapReduce运行在同一个集群中,共享存储资源和计算。Shark数据仓库是使用Hive实现的,并且与Hive几乎完全兼容。

Spark适用场景

Spark是一种基于内存的迭代计算框架,适用于需要对特定数据集进行多次操作的应用程序。重复操作越多,读取的数据量就越大,效益就越大。当数据量较小但计算强度较高时,收益会相对较小(在大型数据库中)。问题是是否考虑使用Spark。(一个重要因素)

由于RDD的特性,Spark不适合需要细粒度异步状态更新的应用,例如Web服务存储。或增量网络爬虫和索引。它不适合增量编辑应用模型。总的来说,Spark的应用范围很广,通用性也比较强。

运行模式

本地模式

独立模式

Mesoes模式

有线模式

Spark生态系统

Shark(HiveonSpark):Shark基于Spark框架,提供与Hive基本相同的HiveQL命令接口。为了保持与Hive的最大兼容性,Shark使用HiveAPI。实现queryParsing和LogicPlanGeneration,在PhysicalPlan的最后执行步骤中使用Spark代替HadoopMapReduce。通过配置Shark设置,Shark可以自动在内存中缓存特定的RDD,实现数据复用,从而加快特定数据集的检索速度。同时,Shark通过用户自定义的UDF来实现特定的数据分析学习算法,使得SQL数据查询和操作分析能够结合起来,最大限度地复用RDD。

Sparkstreaming:Spark上处理Stream数据的框架。基本原理是将Stream数据分成小段时间(几秒),并以类似于批处理的方式处理这小部分数据。。SparkStreaming构建于Spark之上。一方面,低延迟执行引擎(100ms+)可用于实时计算。另一方面,相比其他基于记录的处理框架(如Storm),RDD数据。通过容错,集合更容易有效管理。此外,小批量的处理方式使其兼容批量和实时的数据处理逻辑和算法。它方便了一些需要历史数据和实时数据联合分析的特定应用。

Bagel:PregelonSpark,可以使用Spark进行图形计算。这是一个非常有用的小项目。Bagel附带了一个实现GooglePageRank算法的示例。

结束。