Spark搭建 Standalone模式详细步骤

news2024/10/5 17:18:40

Standalone模式概述:

Standalone模式是Spark自带的一种集群模式(本地集群,不依赖与外部集群,比如Yarn),可以真实地在多个机器之间搭建Spark集群的环境。

Standalone是完整的Spark运行环境,其中: Master角色以Master进程存在, Worker角色以Worker进程存在 Driver和Executor运行于Worker进程内, 由Worker提供资源供给它们运行。

一、下载、解压、配置环境变量

1、下载spark-3.1.3安装包

      华为云镜像站下载:Index of apache-local/spark/spark-3.1.3

2、上传到linux环境中并解压

      tar -zxvf spark-3.1.3-bin-hadoop3.2.tgz  -C ../

3、修改用户权限(可选)

chown -R root:root  spark-3.1.3-bin-hadoop3.2.tgz

4、修改名称(可选,主要为了简洁好看)

mv spark-3.1.3-bin-hadoop3.2.tgz  ./spark-3.1.3

5、配置环境变量

vim /etc/profile

二、修改配置文件

1、进入conf目录

        cd conf/

2、复制spark-env.sh.template文件并改名,防止修改错误。

       cp spark-env.sh.template spark-env.sh

3、 编辑spark-env.sh文件增加以下配置(vim spark-env.sh)

export SPARK_MASTER_IP=master            #spark集群主节点
export SPARK_MASTER_PORT=7077        #spark集群主节点对应的端口号

export SPARK_WORKER_CORES=2          #核数,2个核可以同时执行2个task任务
export SPARK_WORKER_INSTANCES=1     #每个节点的worker进程
export SPARK_WORKER_MEMORY=2g      #分配的内存
export JAVA_HOME=/usr/local/soft/jdk1.8.0_171   #jdk路径

4、复制workers.template文件并改名

      cp workers.template workers

5、 编辑workers文件修改配置(vim workers)

 

6、复制到其它节点


scp -r spark-3.1.3 node1:`pwd`
scp -r spark-3.1.3 node2:`pwd`

三、启动

1、进入sbin目录下,启动集群,在master中执行

     ./sbin/start-all.sh    (不加./启动的是hadoop中的集群)

2、访问spark ui

   http://master:8080/

四、standalone的两种运行模式

1、standalone client模式  (本地)

日志在本地输出,一般用于上线前测试(bin/下执行)

测试:进入以下目录下执行

spark-submit --class org.apache.spark.examples.SparkPi --master spark://master:7077 --executor-memory 512m --total-executor-cores 1 spark-examples_2.12-3.1.3.jar 100

2、standalone cluster模式  (集群)

上线使用,不会再本地打印日志

spark-submit --class org.apache.spark.examples.SparkPi --master spark://master:7077 --executor-memory 512M --total-executor-cores 1 --deploy-mode cluster spark-examples_2.12-3.1.3.jar 100

五、java编写spark程序在Linux上运行

使用上述四中的两种模式

第一种:standalone client模式  

1、编写java程序

import org.apache.spark.rdd.RDD
import org.apache.spark.{SparkConf, SparkContext}

object Demo17SparkStandaloneSubmit {
  def main(args: Array[String]): Unit = {
    val conf = new SparkConf()

    /**
     * 如果在linux集群中运行,这里就不需要设置setMaster
     */
//    conf.setMaster("local")
    val sparkContext = new SparkContext(conf)

    val linesRDD: RDD[String] = sparkContext.parallelize(List("java,hello,world", "hello,scala,spark", "java,hello,spark"))

    val wordRDD: RDD[String] = linesRDD.flatMap(_.split(","))
    val wordKVRDD: RDD[(String, Int)] = wordRDD.map((_, 1))
    val countRDD: RDD[(String, Int)] = wordKVRDD.reduceByKey(_ + _)

    countRDD.foreach(println)

    /**
     *  将项目打包放到spark集群中使用standalone模式运行
     * standalone client
     * spark-submit --class com.shujia.core.Demo17SparkStandaloneSubmit --master spark://master:7077 --executor-memory 512m --total-executor-cores 1 spark-1.0.jar 100
     *
     * standalone cluster
     * spark-submit --class com.shujia.core.Demo17SparkStandaloneSubmit --master spark://master:7077 --executor-memory 512m --total-executor-cores 1 --deploy-mode cluster spark-1.0.jar 100
     *
     */

  }

}

2、将java程序打成的jar包上传到linux上

3、执行以下命令

spark://master:7077 --executor-memory 512m --total-executor-cores 1 spark-1.0.jar 100

第二种:standalone cluster模式 

1、编写java程序

2、将java程序打成的jar包上传到linux上

3、因为是在集群中运行,所以要把jar包复制给node1、node2各一份,因为不清楚具体在哪个节点上运行

4、执行以下命令

spark-submit --class com.shujia.core.Demo17SparkStandaloneSubmit --master spark://master:7077 --executor-memory 512m --total-executor-cores 1 --deploy-mode cluster spark-1.0.jar 100

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1693478.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

失业潮中如何突围?优秀PPT案例助你职场逆袭

在这个变幻莫测的时代,失业潮像一场突如其来的暴风雨,许多人在职场的大海中迷失方向。但别担心,即使风浪再大,总有勇敢的航海者能够乘风破浪,找到属于自己的那片新大陆。 今天,我们就来聊聊,在…

leecode 1206|跳表的设计

跳表 跳表,一种链表数据结构,其增删改茶的效率能和平衡树相媲美 leecode1206 可以看上面的那个动画,动画效果很贴切。 我简单讲讲它的机制吧,每个节点不单单是一个,测试好几层,然后同一层的节点和统一节点…

软件杯 深度学习验证码识别 - 机器视觉 python opencv

文章目录 0 前言1 项目简介2 验证码识别步骤2.1 灰度处理&二值化2.2 去除边框2.3 图像降噪2.4 字符切割2.5 识别 3 基于tensorflow的验证码识别3.1 数据集3.2 基于tf的神经网络训练代码 4 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 &#x…

Hadoop3:客户端向HDFS写数据流的流程讲解(较枯燥)

一、场景描述 我们登陆HDFS的web端,上传一个大文件。 二、流程图 三、讲解 流程1(Client与NameNode交互) 1、HDFS client创建DistributedFileSystem,通过dfs与NameNode进行2次(一来一回4次)对话&#x…

MySQL多表关联查询习题

一、素材 -- Active: 1714203732007127.0.0.13306db_stu -- 1.创建student和score表 CREATE TABLE student ( id INT(10) NOT NULL UNIQUE PRIMARY KEY , name VARCHAR(20) NOT NULL , sex VARCHAR(4) , birth YEAR, department VARCHAR(20) , address VARCHAR(50) ); -- 创建…

langchain实战-从0到1搭建ai聊天机器人

介绍 当前,人工智能大模型公司如雨后春笋般迅速涌现,例如 OpenAI、文心一言、通义千问等,它们提供了成熟的 API 调用服务。然而,随之而来的是不同公司的繁琐协议接入过程,这让许多开发者感到头疼不已。有没有一种统一…

Redis常见数据类型(6)-set, zset

目录 Set 命令小结 内部编码 使用场景 用户画像 其它 Zset有序集合 普通指令 zadd zcard zcount zrange zrevrange ​编辑 zrangebyscore zpopmax/zpopmin bzpopmax/bzpopmin zrank/zrevrank zscore zrem zremrangebyrank zremrangebyscore Set 命令小结 …

COD论文笔记 Boundary-Guided Camouflaged Object Detection

动机 挑战性任务:伪装物体检测(COD)是一个重要且具有挑战性的任务,因为伪装物体往往与背景高度相似,使得准确识别和分割非常困难。现有方法的不足:现有的深度学习方法难以有效识别伪装物体的结构和细节&am…

【Rust日报】ratatui版本更新

[new ver] ratatui v0.26.3 一个构建终端用户界面的库。新版本包括: 修复Unicode 截断 bug对颜色更好地序列化更快的渲染弃用assert_buffer_eq宏暴露错误类型常量函数和类型 官网: https://ratatui.rs/ 链接: https://ratatui.rs/highlights/v0263/ [new lib] ansi2…

二十七篇:未来掌控:嵌入式系统的革命性进展

未来掌控:嵌入式系统的革命性进展 1. 引言:嵌入式系统的重要性及其在未来科技中的角色 在当今这个数字化迅速发展的时代,嵌入式系统已成为推动现代科技进步的基石。从智能手机到智能家居,从自动驾驶汽车到复杂的工业控制系统&…

读书笔记-Java并发编程的艺术--持续更新中

文章目录 第1章 并发编程的挑战1.1 上下文切换1.1.1 多线程一定快吗1.1.2 如何减少上下文切换 1.2 死锁1.3 资源限制的挑战 第2章 Java并发机制的底层实现原理第3章 Java内存模型第4章 Java编发编程基础第5章 Java中的锁第6章 Java并发容器和框架第7章 Java中的13个原子操作类第…

java人口老龄化社区服务与管理平台源码(springboot+vue+mysql)

风定落花生,歌声逐流水,大家好我是风歌,混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的人口老龄化社区服务与管理平台。项目源码以及部署相关请联系风歌,文末附上联系信息 。 项目简介: 人口老龄化…

缓存IO与直接IO

IO类型 缓存 I/O 缓存 I/O 又被称作标准 I/O,大多数文件系统的默认 I/O 操作都是缓存 I/O。在 Linux 的缓存 I/O 机制中,数据先从磁盘复制到内核空间的缓冲区,然后从内核空间缓冲区复制到应用程序的地址空间(用户空间&#xff0…

阅读笔记——《未知协议状态机推断技术研究综述》

【参考文献】盛嘉杰, 牛胜杰, 陈阳, 等. 未知协议状态机推断技术研究综述[J]. 计算机与现代化, 2023 (05): 58.【注】本文仅为作者个人学习笔记,如有冒犯,请联系作者删除。 摘要 协议逆向工程(PRE)描述了协议的行为逻辑&#xff…

技术前沿 |【VL-BEIT:引领未来的极简单阶段多模态预训练方案】

VL-BEIT:引领未来的极简单阶段多模态预训练方案 引言一、VL-BEIT的基本介绍二、VL-BEIT的原理和工作方式三、VL-BEIT的特点四、VL-BEIT的应用场景五、总结与展望 引言 在人工智能蓬勃发展的今天,多模态预训练模型正逐渐成为研究和应用的热点。这些模型能…

Nature期刊的等级和分类

Nature期刊不用过多介绍,学术界人员都对其有所了解,可以和Science,Cell比肩,Nature旗下创办了很多子刊,系列期刊有一百多种,当然其含金量各有不同,nature旗下的期刊等级你是否都了解了。 Nature…

【机器学习300问】98、卷积神经网络中的卷积核到底有什么用?以边缘检测为例说明其意义。

卷积核是用于从输入数据中提取特征的关键工具。卷积核的设计直接关系到网络能够识别和学习的特征类型。本文让我以边缘检测为例,带大家深入理解卷积核的作用。 一、卷积核的作用 卷积核,又称为过滤器,本质上是一个小的矩阵,其元素…

Python图形界面(GUI)Tkinter笔记(八):用【Label()】方法制作九九乘数表

主要是使用"config()"方法来体现函数式、模块化的美好风景。把需随时要修改的控件参数定义在“config()”方法里且把它封装在一个函数中,这时只需对这函数内的“config()”方法作出相应的修改即可,无需对主代码或全部代码重新修一遍。这也是Py…

号外!号外,现在用闪侠惠递寄快递便宜啦!

你现在寄快递还是花费很多吗?那么究竟有没有什么办法才能便宜寄快递呢?现在小编告诉你,用闪侠惠递寄快递才是真的便宜呢!那么我们究竟怎么才能省钱寄快递呢? 现在我们大家都知道闪侠惠递寄快递是非常的便宜了&#xff…

推荐一个快速开发接私活神器

文章目录 前言一、项目介绍二、项目地址三、功能介绍四、页面显示登录页面菜单管理图表展示定时任务管理用户管理代码生成 五、视频讲解总结 前言 大家好!我是智航云科技,今天为大家分享一个快速开发接私活神器。 一、项目介绍 人人开源是一个提供多种…