【Spark】Spark基础教程知识点

简介: 【Spark】Spark基础教程知识点

第 1 部分 Spark 基础


Spark 概述


本章介绍 Spark 的一些基本认识.



Spark官方地址


一:什么是 Spark


Spark 是一个快速(基于内存), 通用, 可扩展的集群计算引擎

并且 Spark 目前已经成为 Apache 最活跃的开源项目, 有超过 1000 个活跃的贡献者.


历史


2009 年,Spark 诞生于 UC Berkeley(加州大学伯克利分校, CAL) 的 AMP 实验室, 项目采用 Scala 编程语言编写.


2010 年, Spark 正式对外开源


2013 年 6 月, 进入 Apache 孵化器


2014 年, 成为 Apache 的顶级项目.


目前最新的版本是3.0.1


二:Spark 特点


1:快速

与 Hadoop 的 MapReduce 相比, Spark 基于内存的运算是 MapReduce 的 100 倍.基于硬盘的运算也要快 10 倍以上.

Spark 实现了高效的 DAG 执行引擎, 可以通过基于内存来高效处理数据流


2: 易用


Spark 支持 Scala, Java, Python, R 和 SQL 脚本, 并提供了超过 80 种高性能的算法, 非常容易创建并行 App


而且 Spark 支持交互式的 Python 和 Scala 的 shell, 这意味着可以非常方便地在这些 shell 中使用 Spark 集群来验证解决问题的方法, 而不是像以前一样 需要打包, 上传集群, 验证等. 这对于原型开发非常重要.

3:通用


Spark 结合了SQL, Streaming和复杂分析.


Spark 提供了大量的类库, 包括 SQL 和 DataFrames, 机器学习(MLlib), 图计算(GraphicX), 实时流处理(Spark Streaming) .


可以把这些类库无缝的柔和在一个 App 中.


减少了开发和维护的人力成本以及部署平台的物力成本.

4:可融合性


Spark 可以非常方便的与其他开源产品进行融合.


比如, Spark 可以使用 Hadoop 的 YARN 和 Appache Mesos 作为它的资源管理和调度器, 并且可以处理所有 Hadoop 支持的数据, 包括 HDFS, HBase等.


三:Spark 内置模块介绍



1:集群管理器(Cluster Manager)


Spark 设计为可以高效地在一个计算节点到数千个计算节点之间伸缩计算。


为了实现这样的要求,同时获得最大灵活性,Spark 支持在各种集群管理器(Cluster Manager)上运行,目前 Spark 支持 3 种集群管理器:


1:Hadoop YARN(在国内使用最广泛)


2:Apache Mesos(国内使用较少, 国外使用较多)


3:Standalone(Spark 自带的资源调度器, 需要在集群中的每台节点上配置 Spark)



2:SparkCore


实现了 Spark 的基本功能,包含任务调度、内存管理、错误恢复、与存储系统交互等模块。SparkCore 中还包含了对弹性分布式数据集(Resilient Distributed DataSet,简称RDD)的API定义。



3: Spark SQL


是 Spark 用来操作结构化数据的程序包。通过SparkSql,我们可以使用 SQL或者Apache Hive 版本的 SQL 方言(HQL)来查询数据。Spark SQL 支持多种数据源,比如 Hive 表、Parquet 以及 JSON 等。



4: Spark Streaming


是 Spark 提供的对实时数据进行流式计算的组件。提供了用来操作数据流的 API,并且与 Spark Core 中的 RDD API 高度对应。



5:Spark MLlib


提供常见的机器学习 (ML) 功能的程序库。包括分类、回归、聚类、协同过滤等,还提供了模型评估、数据导入等额外的支持功能。

Spark 得到了众多大数据公司的支持,这些公司包括 Hortonworks、IBM、Intel、Cloudera、MapR、Pivotal、百度、阿里、腾讯、京东、携程、优酷土豆。


当前百度的 Spark 已应用于大搜索、直达号、百度大数据等业务;


阿里利用 GraphX 构建了大规模的图计算和图挖掘系统,实现了很多生产系统的推荐算法;


腾讯Spark集群达到 8000 台的规模,是当前已知的世界上最大的 Spark 集群。

相关文章
|
7月前
|
SQL 分布式计算 Spark
Spark 教程系列
Spark 教程系列
62 0
|
5月前
|
分布式计算 Java Serverless
EMR Serverless Spark 实践教程 | 通过 spark-submit 命令行工具提交 Spark 任务
本文以 ECS 连接 EMR Serverless Spark 为例,介绍如何通过 EMR Serverless spark-submit 命令行工具进行 Spark 任务开发。
431 7
EMR Serverless Spark 实践教程 | 通过 spark-submit 命令行工具提交 Spark 任务
|
5月前
|
分布式计算 运维 Serverless
EMR Serverless Spark 实践教程 | 通过 EMR Serverless Spark 提交 PySpark 流任务
在大数据快速发展的时代,流式处理技术对于实时数据分析至关重要。EMR Serverless Spark提供了一个强大而可扩展的平台,它不仅简化了实时数据处理流程,还免去了服务器管理的烦恼,提升了效率。本文将指导您使用EMR Serverless Spark提交PySpark流式任务,展示其在流处理方面的易用性和可运维性。
292 7
EMR Serverless Spark 实践教程 | 通过 EMR Serverless Spark 提交 PySpark 流任务
|
4月前
|
分布式计算 Serverless 数据处理
EMR Serverless Spark 实践教程 | 通过 Apache Airflow 使用 Livy Operator 提交任务
Apache Airflow 是一个强大的工作流程自动化和调度工具,它允许开发者编排、计划和监控数据管道的执行。EMR Serverless Spark 为处理大规模数据处理任务提供了一个无服务器计算环境。本文为您介绍如何通过 Apache Airflow 的 Livy Operator 实现自动化地向 EMR Serverless Spark 提交任务,以实现任务调度和执行的自动化,帮助您更有效地管理数据处理任务。
226 0
|
4月前
|
分布式计算 Java Linux
【Deepin 20系统】Linux 系统安装Spark教程及使用
在Deepin 20系统上安装和使用Apache Spark的详细教程,包括安装Java JDK、下载和解压Spark安装包、配置环境变量和Spark配置文件、启动和关闭Spark集群的步骤,以及使用Spark Shell和PySpark进行简单操作的示例。
83 0
|
7月前
|
SQL 分布式计算 Java
Spark 基础教程:wordcount+Spark SQL
Spark 基础教程:wordcount+Spark SQL
71 0
|
消息中间件 分布式计算 Kafka
Flink教程(30)- Flink VS Spark(下)
Flink教程(30)- Flink VS Spark(下)
85 0
|
分布式计算 API 调度
Flink教程(30)- Flink VS Spark(上)
Flink教程(30)- Flink VS Spark(上)
164 0
|
SQL 机器学习/深度学习 分布式计算
spark与pyspark教程(一)
spark与pyspark教程(一)
414 0
|
SQL 分布式计算 资源调度
Spark集群搭建超详细教程
今天为大家带来分布式计算引擎Spark集群搭建,还是使用三个虚拟机节点上进行安装部署,围绕Standalone模式和Yarn模式的这两种部署模式进行展开。
918 0