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

Spark 安装教程与使用指南

一、安装前准备

在开始安装 Spark 前,需确认已正确配置 Java 开发环境以及 Hadoop 集群(如果计划运行分布式模式)。以下是具体步骤:

  1. 检查 JDK 版本 确保系统中已安装兼容的 JDK 版本。可以通过以下命令验证:

    java -version
    

    如果未安装或版本不匹配,则需要先完成 JDK 的安装并设置 JAVA_HOME 环境变量1

  2. 获取 Spark 安装包 下载适合当前系统的 Spark 发行版压缩包,并解压到目标路径下。例如:

    wget https://archive.apache.org/dist/spark/spark-3.x.y/spark-3.x.y-bin-hadoop3.tgz
    tar -zxvf spark-3.x.y-bin-hadoop3.tgz
    mv spark-3.x.y /usr/local/spark
    
  3. 配置环境变量 编辑 .bashrc 或者 /etc/profile 文件,添加如下内容以定义 SPARK_HOME 和 PATH 变量:

    export SPARK_HOME=/usr/local/spark
    export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin
    source ~/.bashrc
    
  4. 修改配置文件 进入 $SPARK_HOME/conf/ 目录,复制模板文件并根据需求调整参数。例如:

    • 复制默认配置文件作为基础:
      cp spark-env.sh.template spark-env.sh
      cp slaves.template slaves
    • 在 spark-env.sh 中加入必要的 JVM 参数和其他选项:
      export JAVA_HOME=/path/to/java_home
      export PYSPARK_PYTHON=python3
      export SPARK_MASTER_HOST=<your_master_host>
  5. 配置从节点列表 使用 vi $SPARK_HOME/conf/slaves 添加所有工作节点的主机名或者 IP 地址4


二、启动 Spark 集群

完成以上准备工作之后,可以按照下列方式操作来初始化 Spark 集群及其组件服务状态监控界面。

  1. 重启 Hadoop 集群 若依赖于 HDFS 存储数据源,请确保其正常运作后再继续下一步骤。

  2. 启动 Spark Master 和 Worker 节点 执行脚本来开启整个集群的服务进程:

    start-all.sh
  3. 查看 Spark Web UI 默认情况下可通过浏览器访问 http://<master-ip>:8080 来观察集群健康状况及作业调度详情1

  4. 测试交互式 shell 功能 启动 Scala REPL 工具用于快速验证基本功能是否可用:

    ./bin/spark-shell --master yarn
    

三、提交应用程序至 Spark 平台

无论是基于 Scala、Java 还是 Python 构建的应用都可以借助统一接口轻松部署到生产环境中去执行大规模计算任务。

对于常规 jar 包形式的任务分发可采用如下语法结构传递必要参数给框架引擎处理逻辑部分;而对于 PySpark 类型则更为简洁明了一些只需指定期望入口即可2:

# 提交Scala应用
spark-submit \
--class com.example.MainClass \
--master yarn \
/path/to/application.jar arg1 arg2# 提交Python脚本
spark-submit \
--master yarn \
/path/to/python_script.py param1 param2
http://www.dtcms.com/a/355001.html

相关文章:

  • Jetson(meta‑tegra)升级要点与 doflash.sh 组件清单
  • 嵌入式研发工程师成长路线图,基础入门 → 中级提升 → 高级进阶 → 专家方向
  • 基于 Spring AMQP 的 RabbitMQ 分布式消息系统实战
  • imx6ull-驱动开发篇47——Linux SPI 驱动实验
  • Java全栈工程师的实战面试:从基础到微服务的全面解析
  • 磁力计校准矩阵求解方法解析
  • go grpc使用场景和使用示例
  • python02
  • Codeforces Round 1043 (Div. 3) F. Rada and the Chamomile Valley
  • 02Shell的变量运算以及数据比较
  • 卷积神经网络(一):卷积神经网络基础
  • 基于卷积神经网络 (CNN) 的 MNIST 手写数字识别模型
  • 如果给我们直接创建的类加上索引?和len方法?
  • 深度学习篇---模型参数保存
  • 卷积神经网络实现mnist手写数字集识别案例
  • Apollo-PETRv1演示DEMO操作指南
  • 【Qt】QCryptographicHash 设置密钥(Key)
  • Deeplizard 深度学习课程(四)—— 模型构建
  • jwt原理及Java中实现
  • 海盗王64位dx9客户端修改篇之二
  • 学习Java29天(tcp多发多收)但是无解决客户端启动多个问题
  • ProfiNet 转 Ethernet/IP 柔性产线构建方案:网关技术保护新能源企业现有设备投资
  • LeetCode Hot 100 第7天
  • 第三十天:世界杯队伍团结力问题
  • EF Core 编译模型 / 模型裁剪:冷启动与查询优化
  • QT之双缓冲 (QMutex/QWaitCondition)——读写分离
  • 企业如何管理跨多个系统的主数据?
  • MaxCompute MaxFrame | 分布式Python计算服务MaxFrame(完整操作版)
  • 【Lua】题目小练12
  • 如何实现HTML动态爱心表白效果?