当前位置: 首页 > 工具软件 > spark-pac4j > 使用案例 >

Spark(2.4.3) 概述

柴博
2023-12-01

概述

Apache Spark是一种快速通用的集群计算系统。它提供Java,Scala,Python和R 的高级API,以及支持通用执行图的优化引擎。它还支持一组丰富的更高级别的工具,包括Spark SQL用于SQL和结构化数据的处理,MLlib机器学习,GraphX用于图形处理和Spark Streaming。

安全

Spark中的安全性默认为OFF。这可能意味着您很容易受到默认攻击。在下载和运行Spark之前,请参阅Spark Security

下载

从项目网站获取spark,本文档适用于Spark版本2.4.3。Spark使用Hadoop的客户端库来实现HDFS和YARN。下载是针对少数流行的Hadoop版本预先打包的。还可以通过下载Hadoop免费二进制文件并使用任何Hadoop版本运行Spark 。Scala和Java用户可以使用Maven坐标在他们的项目中包含Spark,并且将来Python用户也可以从PyPI安装Spark。

也可以通过源码构建spark

spark 运行在Windows和类UNIX系统(例如Linux,Mac OS)的笔记本上运行也是很容易的。只需要安装java 配置PATH,或者JAVA_HOME指向Java安装的环境变量即可。

Spark运行在Java 8 +,Python 2.7 + / 3.4 +和R 3.1+上。对于Scala API,Spark 2.4.3使用Scala 2.12。您需要使用兼容的Scala版本(2.12.x)。

注意:spark2.2.0版本移除了Java 7, Python 2.6 and Hadoop 2.6.5 之前版本的支持。spark2.3.0版本移除了scala2.10的支持。spark2.4.1 废弃了Scala2.11 将在spark3.0中移除。

运行例子

Spark附带了几个示例程序。Scala,Java,Python和R示例都在 examples/src/main目录中。要运行其中一个Java或Scala示例程序,请 bin/run-example [params]在顶级Spark目录中使用。

/bin/run-example SparkPi 10

还可以通过Scala shell的修改版本以交互方式运行Spark。这是学习框架的好方法。

./bin/spark-shell --master local[2]

该–master选项指定分布式集群的 主URL,或者local使用一个线程local[1]在本地运行,或者使用N个线程在本地运行 。有关选项的完整列表,如下表

Master Url含义
local使用一个工作线程在本地运行Spark(即根本没有并行性)。
local[K]使用K个工作线程在本地运行Spark(理想情况下,将其设置为计算机上的核心数)。
local[K,F]使用K个工作线程和F maxFailures在本地运行Spark(有关此变量的说明,请参阅spark.task.maxFailures)
local[*]使用与计算机上的逻辑核心一样多的工作线程在本地运行Spark。
local[*,F]使用与计算机和F maxFailures上的逻辑核心一样多的工作线程在本地运行Spark
spark://HOST:PORT连接到给定的Spark独立集群主服务器。端口必须是主服务器配置使用的端口,默认为7077。
spark://HOST1:PORT1,HOST2:PORT2连接到给zookeeper集群,这个列表需要包含所有的zookeeper主机。默认端口7077
mesos://HOST:PORT连接到给定的Mesos群集
yarn连接到yarn
k8s://HOST:PORT连接到k8s集群

Spark还提供了一个Python API。要在Python解释器中以交互方式运行Spark,请使用 bin/pyspark:

./bin/pyspark --master local[2]

Python中也提供了示例应用程序。例如,

./bin/spark-submit examples/src/main/python/pi.py 10

Spark还提供了R 的API

./bin/sparkR --master local[2]

对应的例子

./bin/spark-submit examples/src/main/r/dataframe.R

在集群上启动

spark 可以单独运行、通过集群管理器运行。目前有一下几种部署方式

  1. Standalone Mode
  2. Apache Mesos
  3. Hadoop YARN
  4. Kubernetes

学习参考路线

编程指南

  1. spark 快速入门API
  2. RDD 编程指南
  3. Spark SQL,Datasets和DataFrames 比RDD更新的API
  4. Structured Streaming
  5. Spark Streaming
  6. MLlib
  7. GraphX

API 文档

  1. Spark Scala API (Scaladoc)
  2. Spark Java API (Javadoc)
  3. Spark Python API (Sphinx)
  4. Spark R API (Roxygen2)
  5. Spark SQL, Built-in Functions (MkDocs)

部署指南

  1. 群集概述:在群集上运行时概念和组件的概述
  2. 提交应用程序

其他文件

  1. 配置
  2. 监控
  3. 调优指南
  4. 作业调度
  5. 安全性
  6. 硬件配置
  7. 与其他存储系统集成
    7.1 云基础架构
    7.2 OpenStack Swift
  8. 构建Spark
  9. 为Spark做贡献
  10. 第三方项目

扩展资源

  1. Spark主页
  2. Spark社区
  3. StackOverflow tag apache-spark
  4. 邮件列表:在这里询问有关Spark的问题
  5. AMP Camps:加州大学伯克利分校的一系列训练营,包括有关Spark,Spark Streaming,Mesos等的演讲和练习。视频, 幻灯片和练习可在线免费获取。
  6. 代码示例:examplesSpark(Scala, Java, Python, R)的子文件夹中也提供了更多内容
 类似资料: