Spark搭建 Standalone模式详细步骤

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.mzph.cn/pingmian/15526.shtml

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

相关文章

OpenFeign微服务调用组件使用

前言:OpenFeign是可以跨服务、跨进程的调用方式。 什么是Feign Feign是Netflix开发的声明式、模版化的HTTP客户端。 优势: Feign可以做到使用 HTTP 请求远程服务时就像调用本地方法一样的体验,开发者完全感知不到这是远程方法,更感知不到这…

【TB作品】stm32单片机读取DS2401程序

DS2401是由Analog Devices公司生产的一种硅序列号芯片,它提供了一个绝对唯一的64位ROM识别码,用于确保可追溯性。以下是对DS2401器件的分析: 特点和优势: 唯一性:每个DS2401芯片都有一个独一无二的64位注册码&#x…

[less配置]vue2引入less

1、终端输入:npm install less less-loader --save-dev 2、在package.json查看是否安装less依赖 3、调用

vue2快速安装环境,从0-1创建vue2项目教程

vue2快速安装环境,从0-1创建vue2项目教程(windows) 一、node下载 1.如何查看node版本和npm版本 二、npm安装脚手架 1.注意事项 三、vue2选项解读 四、运行脚手架 一、node下载 1、(node.js中文网) 下载长期稳定版本就行 解释下node.js和npm的关系? 想象你在…

原始字面常量(C++11)

原始字面常量(C11) 文章目录 原始字面常量(C11)前言一、原始字面量二、代码示例总结 前言 字面量一般是指数值(12、454等)和字符串(“Hw”、“h\t”),但是有时候我们想表…

PyTorch安装与配置

前言 参考文档:https://github.com/TingsongYu/PyTorch-Tutorial-2nd 环境配置之Anaconda 解释器——python.exe,是人类与CPU之间的桥梁,需要配置系统环境变量 Anaconda:集成环境,包管理器 Conda 安装 Anaconda&am…

WXSS模板样式-全局样式和局部样式

一、WXSS 1.WXSS WXSS(WeiXin Style Sheets)是一套样式语言,用于美化WXML的组件样式,类似于网页开发中的CSS 2.WXSS和CSS的关系 WXSS具有CSS大部分特性,同时,WXSS还对CSS进行了扩充以及修改,以适应微信小程序的开发…

CSDN 自动评论互动脚本

声明 该脚本的目的只是为了提升博客创作效率和博主互动效率,希望大家还是要尊重各位博主的劳动成果。 数据库设计 尽量我们要新建一个数据库csdn_article,再在其中建一个数据表article -- csdn_article-- article-- 需要进行自动评论的表格信息...CR…

ClickHouse 24.4 版本发布说明

本文字数:13148;估计阅读时间:33 分钟 审校:庄晓东(魏庄) 本文在公众号【ClickHouseInc】首发 新的一个月意味着新版本的发布! 发布概要 本次ClickHouse 24.4版本包含了13个新功能🎁…

ML307R OpenCPU DEMO_SDK环境搭建

一、工程目录 二、环境搭建 三、编译 四、下载 五、添加自定义文件打印 hello 一、工程目录 OpenCPU SDK代码目录结构,如下图所示: | 名称 | 描述 | | ---------------- | --------------------------| | custom …

软件设计师中级

计算机系统 运算器和控制器 算术逻辑单元 累加寄存器器 状态寄存器 数据缓冲寄存器 指令寄存器 程序计数器 地址寄存器 指令译码器 内存按字节编址 内存存储单元16位 1 浮点数 浮点数范围:-2的(2的阶码次)-1到-2的(2的阶码次)-1 乘 1-2负尾数次 海明码 海明码&…

自定义一个SpringBoot场景启动器

前言 一个刚刚看完SpringBoot自动装配原理的萌新依据自己的理解写下的文章,如有大神发现错误,敬请斧正,不胜感激。 分析SpringBoot自动配置原理 SpringBoot的启动从被SpringBootApplication修饰的启动类开始,SpringBootApplicaiotn注解中最…

C语言 宏

目录 一、宏定义 1.1 预定义符号 1.2 预处理指令 #define 1.3 带有副作用宏定义 1.4 宏和函数的一个对比 ​编辑 1.5 #undef 二、条件编译 2.1 #if、#else、#elif、#endif 2.2 #ifdef和#ifndef 2.3 C语言中如何通过条件编译来预防头文件的重复包含? 一、宏定义 在C语…

导弹初识(一)

目录 导弹初识1 导弹是什么2 导弹的分类2.1 按飞行方式2.2 按发射/目标2.2.1 空空导弹2.2.1 空地导弹2.2.1 地空导弹2.2.1 地地导弹 2.3 按打击目标 3.实例3.1 防空导弹3.2 低空防空导弹武器系统 本文节选自 zh,还有百度百科 导弹初识 1 导弹是什么 导弹两个字拆…

欧拉函数、快速幂、扩展欧几里得算法、中国剩余定理和高斯消元

欧拉函数 给定 n 个正整数 ai,请你求出每个数的欧拉函数。 欧拉函数的定义1∼N 中与 N 互质的数的个数被称为欧拉函数,记为 ϕ(N)。 若在算数基本定理中,Np1a11p2a2…pmm,则:ϕ(N) Np1−1/p1p2−1/p2…pm−1/pm 输…

二叉树基于队列实现的操作详解

一、队列知识补充 有关队列的知识请详见博主的另一篇博客:http://t.csdnimg.cn/3PwO4 本文仅仅附上需要的队列操作供读者参考 //结构体定义 typedef struct BinaryTreeNode* QDataType;typedef struct QueueNode {struct QueueNode* next;QDataType val; }QNode;…

添砖Java(十一)——常见类的使用Object,Math,System,BigDeciaml,包装类

目录 object: toString: equals: ​编辑 Math:​编辑 System: BigDecimal: 基本数据的包装类:​编辑 object: 我们知道,所有的类都是间接或直接继承了object类。然后object里面有几个用得很多的方法…

7.2k star的万能视频解析下载插件

今天给大家介绍一个超级厉害的浏览器插件,可以解析各个平台网页视频——猫抓。 项目简介 猫抓(cat-catch) 是一款资源嗅探扩展插件,他能够帮助你筛选列出当前页面的资源。简单来说,当你打开任意一个带有视频的网页&a…

信息系统项目管理师十大管理计划内容概览

目录 1.项目章程2.项目管理计划3.范围管理计划4.需求管理计划5.进度管理计划6.成本管理计划7.质量管理计划8.资源管理计划9.沟通管理计划10.风险管理计划11.采购管理计划12.干系人参与计划 点我去AIGIS公众号查看本文 1.项目章程 项目目标成功标准退出标准关键干系人名单发起人…

Android9.0 MTK平台如何增加一个系统应用

在安卓定制化开发过程中,难免遇到要把自己的app预置到系统中,作为系统应用使用,其实方法有很多,过程很简单,今天分享一下我是怎么做的,共总分两步: 第一步:要找到当前系统应用apk存…