spark相关理论

系列文章目录

ubuntu虚拟机下搭建zookeeper集群,安装jdk压缩包,搭建Hadoop集群与spark集群的搭建【上篇】_ubuntu搭建zookeeper集群

ubuntu虚拟机下搭建zookeeper集群,安装jdk压缩包,搭建Hadoop集群与spark集群的搭建【下篇】

spark里面配置jdk后的编程与Hadoop配置

文章目录

系列文章目录

一、spark概述

1、性能强大的分布式计算框架

2、apache spark是一个快速、通用的引擎,适用于大规模的数据处理

二、Spark 核心模块

1. Spark Core

2. Spark SQL

3. Spark Streaming

4. MLlib

5.Spark GraphX

三、spark生态BDAS

总结


前言

本文主要介绍spark的理论部分,后期安装与配置将会在后续文章当中介绍

一、spark概述

Spark是由Apache软件基金会开发的一个大数据处理框架。它提供了高效的数据处理引擎和丰富的API,支持分布式数据处理和分布式计算,可以处理大规模数据集,具有高容错性和高性能。Spark支持多种数据处理模式,包括批处理、流处理、机器学习和图处理等。同时,Spark还提供了丰富的生态系统,包括Spark SQL、Spark Streaming、Spark MLlib、Spark GraphX等组件,方便用户进行数据处理和分析。

1、性能强大的分布式计算框架

  • apache spark提供了一个更高级的DAG(有向无环图)的执行引擎,这个执行引擎支持数据流处理和内存的数据计算。
  • 他可以结合SQL、streaming和一些其他复杂的分析操作,放在一起进行操作。spark上可以有spark sql、spark streaming、MLlib(machine learning)、GraphX(graph)
  • spark提供一个栈,包括SQL、DataFrames、MLlib的包,还有Graphx,可以在一个应用程序里面将这些包无缝对接,一站式解决不同场景的业务!
  • spark能够运行在hadoop之上还能运行在mesos、standalone之上。它可以访问各种数据源,包括hdfs、hbanse、Cassandra、S3这些都可以进行访问。其实这一点对于公司的技术选型是非常重要的。

2、apache spark是一个快速、通用的引擎,适用于大规模的数据处理

  • mapreduce 中都是以进程的级别进行的(map -> reduce),启动和销毁都需要一定开销的,而spark是基于线程的,是有线程池的,用的时候在线程池里面拿线程,用完以后再把线程丢回线程池,以供后面的作业继续使用,所以这种基于线程模型的对于任务的开销肯定是小很多的,肯定要比mapreduce和hadoop基于进程的要小不少的!
  • 可以快速的用java、Scala、python、R开发我们的应用程序。spark提供超过80个高级别的api,在mapreduce中,我们只有map和reduce两种算子,但在spark中会有很多,可以让我们更加容易的构建我们的应用程序,而且还能启动一些命令行的交互语言。
  • 如果数据在内存上面,速度比mapreduce快100个数量级,数据在磁盘上要比mapreduce快10个数量级。

二、Spark 核心模块

1. Spark Core

Spark 核心是 Spark 的基础模块,提供了 Spark 的基本功能,包括任务调度、内存管理、错误恢复、分布式存储等。它提供了一个抽象的分布式数据集合(RDD),是 Spark 中最基本的抽象。

Spark Core 是 Spark 的核心组件,它提供了分布式任务调度、内存管理、错误恢复、存储管理等基础功能,是其他 Spark 组件的基础,如 Spark SQL、Spark Streaming、Spark MLlib 等都是基于 Spark Core 构建的。Spark Core 是一个分布式计算框架,可以在大规模数据集上进行高效的数据处理和分析。它具有以下特点:

  • 1. 快速:Spark Core 使用内存计算技术,可以比 Hadoop MapReduce 快 10 倍以上。
  • 2. 易用:Spark Core 提供了简单易用的 API,开发人员可以使用 Java、Scala、Python、R 等编程语言进行开发。
  • 3. 可扩展性:Spark Core 可以在数百台服务器上运行,支持扩展到 PB 级别的数据。
  • 4. 容错性:Spark Core 具有高度的容错性,能够自动进行任务恢复,同时支持数据的持久化和容错机制。

在实际应用中,可以使用 Spark Core 进行数据的处理、分析和计算,统计数据集的各种指标,进行数据挖掘和机器学习等。

2. Spark SQL

Spark SQL 是 Spark 中用于处理结构化数据的模块,它提供了一种基于 SQL 的编程接口,可以用 SQL 或 DataFrame API 来查询结构化数据。Spark SQL 是 Apache Spark 生态系统中的一个组件,它提供了将结构化数据与 Spark 进行集成的接口。Spark SQL 可以使用 SQL 查询语言来查询数据,同时也可以与 Spark 的 DataFrame API 集成。Spark SQL 支持多种数据源,包括 Hive、JSON、Parquet、JDBC 数据库等。Spark SQL 支持查询优化器,可以将 SQL 查询转换为 Spark 作业,以便在分布式计算集群上进行处理。Spark SQL 的应用场景包括数据分析、数据挖掘、机器学习等。

3. Spark Streaming

Spark Streaming 是 Spark 中用于实时数据处理的模块,它可以从多个数据源(如 Kafka、Flume、Twitter 等)接收数据流,并对数据进行实时处理。

Spark Streaming 是一个 Spark 的组件,它提供了实时数据处理的能力,可以在秒级别的延迟下对实时数据进行处理和分析。Spark Streaming 支持多种输入源,包括 Kafka、Flume、Twitter、HDFS 等,同时也支持多种数据处理方式,包括窗口计算、滑动窗口计算等。

Spark Streaming 基于 Spark 的 RDD 模型进行实现,它将实时数据流划分为一系列的小批量数据,并将每个小批量数据作为一个 RDD 进行处理。Spark Streaming 还提供了高级别的流处理 API,可以方便地进行流处理应用程序的开发。

Spark Streaming 的一个重要特点是其与 Spark 的无缝集成。Spark Streaming 可以与 Spark SQL、Spark MLlib 等组件无缝集成,从而可以方便地进行实时数据处理和机器学习等任务。

Spark Streaming 可以应用于许多实时数据处理场景,包括实时日志处理、实时推荐系统、实时数据分析等。

4. MLlib

MLlib 是 Spark 中用于机器学习的模块,它提供了一系列常见的机器学习算法和数据处理工具,包括分类、回归、聚类、协同过滤等。Spark MLlib 是 Spark 的机器学习库,它提供了许多常见的机器学习算法和工具,包括分类、回归、聚类、协同过滤、降维等。它基于 Spark 的数据处理引擎,可以处理大规模的数据集,并支持分布式计算,使得机器学习模型的训练速度更快、更高效。Spark MLlib 还提供了一些工具,如模型评估、参数调优、特征提取等,可以帮助用户更好地进行机器学习任务。需要注意的是,Spark MLlib 目前已经停止维护,推荐使用 Spark ML 代替。

5.Spark GraphX

Spark GraphX是Spark 的一个图处理框架,它提供了一个分布式的图计算引擎和图处理算法库。GraphX 使用了 RDD 来表示图中的节点和边,同时支持类似 Pregel 的顶点中心的迭代计算模型,以及基于图的数据分析和机器学习算法。

GraphX 有以下特点:

  • 1. 支持大规模图数据处理,可以在分布式环境下进行高效的图计算。
  • 2. 支持顶点中心的迭代计算模型,可以方便地实现很多图算法。
  • 3. 支持类似 SQL 的查询语言,可以方便地进行图数据的查询和分析。
  • 4. 支持类似 GraphLab 的异步更新机制,可以显著提高图处理的效率。

GraphX 可以用于许多应用场景,包括社交网络分析、推荐系统、生物信息学、物理模拟等。

这几个模块都是 Spark 中非常重要的组成部分,它们共同构成了一个强大的、灵活的数据处理平台,可以用来处理各种规模的数据,并支持多种不同的数据处理应用场景。

三、spark生态BDAS

Spark是Apache BDAS(Berkeley Data Analytics Stack)生态系统中的一部分。BDAS是一个开源的大数据分析栈,由加州大学伯克利分校AMPLab开发,并由Apache软件基金会维护。BDAS包括多个组件,其中包括Spark、Mesos、Tachyon、Shark、GraphX等。这些组件可以协同工作,提供可扩展的大数据处理和分析解决方案。Spark是BDAS中最重要的组件之一,它提供了高效的数据处理能力和丰富的API,支持多种数据处理模式,是BDAS中的核心技术之一。

spark相关理论_第1张图片

总结

以上就是今天的内容~

最后欢迎大家点赞,收藏⭐,转发,
如有问题、建议,请您在评论区留言哦。

你可能感兴趣的:(大数据,spark,分布式,虚拟机,VMware)