当前位置: 首页 > news >正文

Spark 单机模式安装与测试全攻略​

Spark 单机模式安装步骤

Spark 安装

  1. 上传安装包:将下载好的 Spark 安装包(如 spark-3.3.0-bin-hadoop3.tgz)通过 FTP 工具或 scp 命令上传至 Linux 服务器的指定目录,例如/opt/software

  2. 解压安装包:使用tar -zxvf spark-3.3.0-bin-hadoop3.tgz -C /opt/installs/命令将安装包解压到/opt/installs目录。

  3. 重命名:为了方便后续操作,将解压后的文件夹重命名,执行mv /opt/installs/spark-3.3.0-bin-hadoop3 /opt/installs/spark

  4. 创建软链接:通过ln -s /opt/installs/spark /opt/spark创建软链接,简化路径访问。

  5. 配置环境变量:编辑/etc/profile文件,添加如下内容:

    export SPARK_HOME=/opt/spark
    export PATH=$PATH:$SPARK_HOME/bin
    
     

    保存后执行source /etc/profile刷新环境变量。

Anaconda 安装(Python 环境)

Anaconda 不仅包含 Python,还具备资源环境隔离功能,方便不同版本环境的测试开发,是 Spark 的理想 Python 环境。

  1. 下载与上传:从Anaconda 官网 archive 页面下载合适版本(如 Anaconda3-2022.10-Linux-x86_64.sh),上传至服务器/opt/software目录。

  2. 安装 Anaconda:执行bash /opt/software/Anaconda3-2022.10-Linux-x86_64.sh,按照提示完成安装,建议安装在/opt/installs/anaconda3目录。

  3. 环境变量配置:编辑/etc/profile,添加:

    export ANACONDA_HOME=/opt/installs/anaconda3
    export PATH=$PATH:$ANACONDA_HOME/bin
    
     

    执行source /etc/profile刷新,再通过ln -s /opt/installs/anaconda3/bin/python3 /usr/bin/python3创建软链接,确保python3命令可用。

  4. 环境管理命令

    • 进入环境:conda activate 环境名
    • 退出环境:conda deactivate

Spark 测试使用

Spark Python Shell 是交互式学习工具,通过pyspark命令启动,可实时编写代码并查看结果。

案例一:map 算子实现分布式转换

需求:将 1~10 的列表中每个元素平方后输出。

在 Spark Python Shell 中执行:

# 创建包含1~10的RDD
rdd = sc.parallelize(range(1, 11))
# 使用map算子计算平方
square_rdd = rdd.map(lambda x: x * x)
# 输出结果
square_rdd.collect()

执行后将得到[1, 4, 9, 16, 25, 36, 49, 64, 81, 100],展示了 Spark 分布式处理元素的能力。

案例二:WordCount 词频统计

/home/data.txt为数据源,统计每个单词出现的次数,步骤如下:

  1. 读取数据

    fileRdd = sc.textFile("/home/data.txt")
    print("总行数:", fileRdd.count())
    print("前3行:", fileRdd.take(3))
    
  2. 过滤空行

    filterRdd = fileRdd.filter(lambda line: len(line.strip()) > 0)
    print("过滤后行数:", filterRdd.count())
    
  3. 拆分单词

    wordRdd = filterRdd.flatMap(lambda line: line.strip().split(" "))
    print("单词总数:", wordRdd.count())
    
  4. 生成键值对

    tupleRdd = wordRdd.map(lambda word: (word, 1))
    
  5. 聚合统计

    rsRdd = tupleRdd.reduceByKey(lambda tmp, item: tmp + item)
    
  6. 结果输出与保存

    # 打印结果
    rsRdd.foreach(lambda kv: print(kv))
    # 保存到本地
    rsRdd.saveAsTextFile("/home/wcoutput")
    

案例三:计算 PI 值

通过 Spark 提交脚本计算圆周率,执行:

/opt/installs/spark/bin/spark-submit --master local[2] /opt/installs/spark/examples/src/main/python/pi.py 100

其中--master local[2]指定使用 2 个核心,100是采样次数,结果会接近 3.14。

http://www.dtcms.com/a/279354.html

相关文章:

  • STM32小实验1--点亮LED
  • # 电脑待机后出现死机不能唤醒怎么解决?
  • 【终极指南】ChatGPT/BERT/DeepSeek分词全解析:从理论到中文实战
  • 2025年人工智能与网络安全国际会议(IACAINS 2025)
  • vim扩展
  • Python Web框架对比:Flask vs FastAPI
  • Kubernetes控制器详解
  • 重复频率较高的广告为何一直在被使用?
  • JAVA经典单例模式
  • 纯CSS轮播
  • 动手学深度学习13.9. 语义分割和数据集 -笔记练习(PyTorch)
  • 文件摆渡系统:如何攻克跨网文件交换难点,实现安全合规传输?
  • ISO-IEC-IEEE 42010架构规范
  • 用Finalshell连接服务器后出现文件目录不显示,且刷新报错空指针问题记录
  • 【WRFDA实操第一期】服务器中安装 WRFPLUS 和 WRFDA
  • 探索文本切分的多种方法与应用场景
  • 学习 Flutter (三):玩安卓项目实战 - 上
  • 152.Vue3中使用OpenLayers+Turf实现遮罩布挖洞效果
  • MCP终极篇!MCP Web Chat项目实战分享
  • 消费 Kafka 一个TOPIC数据,插入到另一个KAFKA的TOPIC
  • c#如何将不同类型的数据存储到一起
  • 项目进度依赖纸面计划,如何提升计划动态调整能力
  • 基于FinRL深度强化学习框架的股票预测和回测交易
  • 迁移学习:知识复用的智能迁移引擎 | 从理论到实践的跨域赋能范式
  • 什么是神经网络,常用的神经网络,如何训练一个神经网络
  • python 循环遍历取出偶数
  • 「日拱一码」027 深度学习库——PyTorch Geometric(PyG)
  • MCP基础知识二(实战通信方式之Streamable HTTP)
  • 【CTF学习】PWN基础工具的使用(binwalk、foremost、Wireshark、WinHex)
  • ewdyfdfytty