Spark(2.4.3) 概述

本文围绕Apache Spark展开,介绍其是快速通用的集群计算系统,提供多语言高级API及优化引擎。提及安全设置,阐述下载方式、运行环境。还介绍运行例子的方法、集群启动部署方式,最后给出编程、API、部署等学习参考路线及扩展资源。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

概述

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)的子文件夹中也提供了更多内容
### 配置 PyCharm 开发环境中的 SparkHadoop 为了在 PyCharm 中配置 SparkHadoop 的开发环境,可以按照以下方法操作: #### 设置 SPARK_HOME 和 PYTHONPATH 首先,在 Windows 系统中设置 `SPARK_HOME` 和 `PYTHONPATH` 变量非常重要。这些变量用于指定 Spark 安装目录以及 Python 解释器能够找到必要的库文件的位置。 - **SPARK_HOME**: 这一变量应指向 Spark 软件的根目录,例如 `D:\spark\spark-2.4.6-bin-hadoop2.7`[^1]。 - **PYTHONPATH**: 此外还需要将路径扩展至 Spark 提供的 Python 库及其依赖项所在的子目录,比如 `D:\spark\spark-2.4.6-bin-hadoop2.7\python\lib\py4j-0.10.7-src.zip`[^3]。 #### 修改 IDE 的运行配置 (Run Configurations) 进入 PyCharm 后,可以通过调整项目的运行配置来加载上述环境变量: - 打开菜单栏上的选项卡,选择 “Edit Configurations...”,随后定位到目标脚本对应的条目。 - 在弹出窗口内的 "Environment variables" 字段里输入键值对形式的内容,如 `PYSPARK_PYTHON=D:\Program Files\Anaconda2\python.exe`, `HADOOP_USER_NAME=hadoop`, `PYTHONUNBUFFERED=1`, `SPARK_HOME=D:\spark-2.0.0-hadoop2.7`, `HADOOP_HOME=D:\hadoop-2.7.2test`[^4]。 #### 更改解释器并加入额外 jar 文件支持 对于某些特定功能的支持可能还涉及 Java Archive (.jar) 文件部署工作。如果项目需要用到自定义或者第三方插件,则需把对应 .jar 放入合适位置以便于 PySpark 访问它们。通常情况下会放置于类似于这样的地方 `/home/ho/Downloads/spark-2.4.3-bin-hadoop2.7/python/lib/py4j-0.x.y-src.zip` 或者其他由开发者自行决定的地方[^5]。 最后一步就是验证整个流程是否正常运作了——通过编写简单的测试代码片段确认模块导入无误即可完成全部准备工作! ```python import os import sys # Set environment variable 'SPARK_HOME' os.environ['SPARK_HOME'] = "D:\\adasoftware\\spark" # Add pyspark to the system path so that it can be found during runtime. sys.path.append("D:\\adasoftware\\spark\\python") try: from pyspark import SparkContext, SparkConf conf = SparkConf().setAppName('TestApp').setMaster('local') sc = SparkContext(conf=conf) rdd = sc.parallelize([1, 2, 3]) result = rdd.collect() print(f'Successfully collected data: {result}') except ImportError as error_message: print(error_message) ``` 以上即是在 PyCharm 下搭建适合大数据处理框架集成的方法概述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值