spark安装与入门

news2024/11/28 12:53:04

下载

https://archive.apache.org/dist/spark/spark-3.0.0/spark-3.0.0-bin-hadoop3.2.tgz

Local 模式

将 spark-3.0.0-bin-hadoop3.2.tgz 文件上传到 Linux,解压
tar -zxvf spark-3.0.0-bin-hadoop3.2.tgz -C /opt/module

重命名
cd /opt/module
mv spark-3.0.0-bin-hadoop3.2 spark-local

启动 Local 环境(如果启动失败,看看是否解压没完全,可能空间不足,清空/tmp目录)
bin/spark-shell
在这里插入图片描述
webui监控页面
http://虚拟机地址:4040/
在这里插入图片描述
在解压缩文件夹下的 data 目录中,添加 word.txt 文件,内容Hello World Hello Spark

sc.textFile("data/word.txt").flatMap(_.split(" ")).map((_,1)).reduceByKey(_+_).collect

结果如下图
在这里插入图片描述
提交应用

bin/spark-submit --class org.apache.spark.examples.SparkPi  --master local[2] ./examples/jars/spark-examples_2.12-3.0.0.jar 10
  1. –class 表示要执行程序的主类,此处可以更换为咱们自己写的应用程序
  2. –master local[2] 部署模式,默认为本地模式,数字表示分配的虚拟 CPU 核数量
  3. spark-examples_2.12-3.0.0.jar 运行的应用类所在的 jar 包,实际使用时,可以设定为咱们自己打的 jar 包
  4. 数字 10 表示程序的入口参数,用于设定当前应用的任务数量

结果如下图
在这里插入图片描述

Standalone 模式(经典的 master-slave 模式)

将 spark-3.0.0-bin-hadoop3.2.tgz 文件上传到 Linux,解压
tar -zxvf spark-3.0.0-bin-hadoop3.2.tgz -C /opt/module

重命名
cd /opt/module
mv spark-3.0.0-bin-hadoop3.2 spark-standalone

修改配置文件
cd conf

复制配置文件
cp slaves.template slaves

修改 slaves 文件,添加 work 节点
hadoop100
hadoop101
hadoop102

复制 spark-env.sh.template 文件名为 spark-env.sh
cp spark-env.sh.template spark-env.sh

查看JAVA_HOME路径
echo $JAVA_HOME

查看主机名称
hostname

修改 spark-env.sh 文件,添加 JAVA_HOME 环境变量和集群对应的 master 节点
export JAVA_HOME=/usr/java/jdk1.8.0_311-amd64
SPARK_MASTER_HOST=hadoop100
SPARK_MASTER_PORT=7077

分发到其他服务器
/home/xsync /opt/module/spark-standalone

启动
sbin/start-all.sh

jps查看三台服务器进程
在这里插入图片描述
查看 Master 资源监控 Web UI 界面: http://hadoop100:8080
在这里插入图片描述
提交应用

bin/spark-submit --class org.apache.spark.examples.SparkPi  --master spark://hadoop100:7077 ./examples/jars/spark-examples_2.12-3.0.0.jar 10

配置历史服务

需要启动 hadoop 集群,HDFS 上的 directory 目录需要提前存在

/opt/module/hadoop-3.1.3/sbin/start-dfs.sh
hadoop fs -mkdir /directory

查看地址 http://hadoop100:9870/
在这里插入图片描述
配置日志存储路径
cp spark-defaults.conf.template spark-defaults.conf
vim spark-defaults.conf

spark.eventLog.enabled true
spark.eventLog.dir hdfs://hadoop100:8020/directory

添加历史日志服务
vim spark-env.sh

export SPARK_HISTORY_OPTS="
-Dspark.history.ui.port=18080 
-Dspark.history.fs.logDirectory=hdfs://hadoop100:8020/directory 
-Dspark.history.retainedApplications=30"

分发到其他服务器
/home/xsync /opt/module/spark-standalone

重新启动集群和历史服务
sbin/stop-all.sh
sbin/start-all.sh
sbin/start-history-server.sh

重新执行任务

bin/spark-submit --class org.apache.spark.examples.SparkPi  --master spark://hadoop100:7077 ./examples/jars/spark-examples_2.12-3.0.0.jar 10

配置高可用(HA)

在这里插入图片描述
停止集群
sbin/stop-all.sh

启动 Zookeeper
/home/zk.sh start

vim spark-env.sh 文件添加如下配置

注释如下内容:
#SPARK_MASTER_HOST=hadoop100
#SPARK_MASTER_PORT=7077
添加如下内容:
#Master 监控页面默认访问端口为 8080,但是可能会和 Zookeeper 冲突,所以改成 8989,也可以自定义,访问 UI 监控页面时请注意
SPARK_MASTER_WEBUI_PORT=8989
export SPARK_DAEMON_JAVA_OPTS="
-Dspark.deploy.recoveryMode=ZOOKEEPER 
-Dspark.deploy.zookeeper.url=hadoop100,hadoop101,hadoop102
-Dspark.deploy.zookeeper.dir=/spark"

分发到其他服务器
/home/xsync /opt/module/spark-standalone/conf

启动集群
[root@hadoop100 spark-standalone]# sbin/start-all.sh
在这里插入图片描述
启动 hadoop101 的单独 Master 节点,此时 hadoop101 节点 Master 状态处于备用状态
[root@hadoop101 spark-standalone]# sbin/start-master.sh
在这里插入图片描述
提交任务到高可用集群

bin/spark-submit --class org.apache.spark.examples.SparkPi  --master spark://hadoop100:7077,hadoop101:7077 ./examples/jars/spark-examples_2.12-3.0.0.jar 10

得到Pi值说明成功
在这里插入图片描述
停止 hadoop100 的 Master 资源,监控进程 kill -9 15872
在这里插入图片描述
可以看到状态变为 ALIVE
在这里插入图片描述

Yarn 模式(生产一般采用此模式)

将 spark-3.0.0-bin-hadoop3.2.tgz 文件上传到 Linux,解压
tar -zxvf spark-3.0.0-bin-hadoop3.2.tgz -C /opt/module

重命名
cd /opt/module
mv spark-3.0.0-bin-hadoop3.2 spark-yarn

修改配置文件
vim /opt/module/hadoop-3.1.3/etc/hadoop/yarn-site.xml

<!--是否启动一个线程检查每个任务正使用的物理内存量,如果任务超出分配值,则直接将其杀掉,默认是 true -->
<property>
 <name>yarn.nodemanager.pmem-check-enabled</name>
 <value>false</value>
</property>
<!--是否启动一个线程检查每个任务正使用的虚拟内存量,如果任务超出分配值,则直接将其杀掉,默认是 true -->
<property>
 <name>yarn.nodemanager.vmem-check-enabled</name>
 <value>false</value>
</property>

复制 spark-env.sh.template 文件名为 spark-env.sh
cp spark-env.sh.template spark-env.sh

修改 conf/spark-env.sh,添加 JAVA_HOME 和 YARN_CONF_DIR 配置

export JAVA_HOME=/usr/java/jdk1.8.0_311-amd64
YARN_CONF_DIR=/opt/module/hadoop-3.1.3/etc/hadoop

hadoop集群启停脚本 https://blog.csdn.net/weixin_44371237/article/details/126040977

提交任务到高可用集群

bin/spark-submit --class org.apache.spark.examples.SparkPi  --master yarn --deploy-mode cluster ./examples/jars/spark-examples_2.12-3.0.0.jar 10

在这里插入图片描述
在这里插入图片描述

配置历史服务

配置日志存储路径
cp spark-defaults.conf.template spark-defaults.conf
vim spark-defaults.conf

spark.eventLog.enabled true
spark.eventLog.dir hdfs://hadoop100:8020/directory

添加历史日志服务
vim spark-env.sh

export SPARK_HISTORY_OPTS="
-Dspark.history.ui.port=18080 
-Dspark.history.fs.logDirectory=hdfs://hadoop100:8020/directory 
-Dspark.history.retainedApplications=30"

修改 spark-defaults.conf

spark.yarn.historyServer.address=hadoop100:18080
spark.history.ui.port=18080

hadoop集群启停脚本 https://blog.csdn.net/weixin_44371237/article/details/126040977

HDFS 上的 directory 目录需要提前存在

hadoop fs -mkdir /directory

查看地址 http://hadoop100:9870/

启动历史服务
sbin/start-history-server.sh

提交任务到高可用集群

bin/spark-submit --class org.apache.spark.examples.SparkPi  --master yarn --deploy-mode client ./examples/jars/spark-examples_2.12-3.0.0.jar 10

Windows 模式

将文件 spark-3.0.0-bin-hadoop3.2.tgz 解压缩到无中文无空格的路径中

执行解压缩文件路径下 bin 目录中的 spark-shell.cmd 文件,启动 Spark 本地环境
在这里插入图片描述
在 bin 目录中创建 input 目录,并添加 word.txt 文件, 在命令行中输入脚本代码

sc.textFile("D:\\spark-3.0.0-bin-hadoop3.2\\bin\\input").flatMap(_.split(" ")).map((_,1)).reduceByKey(_+_).collect

在这里插入图片描述
本地 Web UI
在这里插入图片描述
命令行提交应用,在程序bin输入cmd
在这里插入图片描述
输入

D:\spark-3.0.0-bin-hadoop3.2\bin>spark-submit --class org.apache.spark.examples.SparkPi --master local[2] ../examples/jars/spark-examples_2.12-3.0.0.jar 10

在这里插入图片描述

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

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

相关文章

Vue3项目搭建教程

找到一个你想要创建Vue项目的目录&#xff08;本文以C:\Users\XTT\Desktop\新建文件夹\project为例&#xff09;。在此目录打开命令行&#xff0c;输入以下命令&#xff1a; 回车&#xff0c;如果是第一次用这种方式创建Vue3项目&#xff0c;命令行会提示安装 create-vue 包&…

sharedPtr

shared_ptr 1.以何种方式传递 通过下列方式将 shared_ptr 传递给其他函数&#xff1a; 按值传递 shared_ptr。 这将调用复制构造函数&#xff0c;增加引用计数&#xff0c;并使被调用方成为所有者。 此操作的开销很小&#xff0c;但此操作的开销可能很大&#xff0c;具体取决…

python小游戏编程arcade----坦克动画图片合成

python小游戏编程arcade----坦克动画图片合成前言坦克动画图片合成1、PIL image1.1 读取文件并转换1.2 裁切&#xff0c;粘贴1.3 效果图1.4 代码实现2、处理图片的透明度问题2.1 past 函数的三个参数2.2 注意点12.3 注意点22.4 效果![在这里插入图片描述](https://img-blog.csd…

Android中简单使用aspectj

Android中简单使用aspectj 前言&#xff1a; 面向切面编程&#xff08;AOP是Aspect Oriented Program的首字母缩写&#xff09;,这种在运行时&#xff0c;动态地将代码切入到类的指定方法、指定位置上的编程思想就是面向切面的编程. 1.简介&#xff1a; 在Android中使用注解…

48、线程

一、线程相关概念&#xff1a; 1、程序&#xff08;program&#xff09;&#xff1a; 是为完成特定任务、用某种语言编写的一组指令的集合&#xff0c;即我们写的代码。 2、进程&#xff1a; &#xff08;1&#xff09;进程是指运行中的程序&#xff0c;比如我们使用QQ&…

✿✿✿JavaScript --- BOM、DOM对象

目 录 一、BOM浏览器对象模型 1.Window窗口对象 (1)与弹出有关的方法 (2)与定时器有关的方法 (3)与打开关闭有关的方法 (4) 获取其他对象的属性 2.Location地址栏对象 3.History历史记录对象 二、DOM文档对象模型 1.Document文档对象 (1)获取Element对象 (2)创建…

如何理解CRC循环冗余校验——图解CRC算法模型和C语言实现

如何理解CRC循环冗余校验 循环冗余校验&#xff08;英语&#xff1a;Cyclic redundancy check&#xff0c;通称“CRC”&#xff09;是一种产生定长校验码的算法&#xff0c;主要用来检测或校验数据传输或者保存后可能出现的错误。 它真的太常见了&#xff0c;上至应用软件通信…

Qt QCustomPlot 点状网格线实现和曲线坐标点拾取

Qt QCustomPlot 点状网格线实现和曲线坐标点拾取 文章目录Qt QCustomPlot 点状网格线实现和曲线坐标点拾取摘要我想实现的效果点阵的实现第一版本&#xff0c;使用QPen Style第二版本&#xff0c;通过设置背景第三版本&#xff0c;回到QPen Style取曲线上的点关键字&#xff1a…

[附源码]Python计算机毕业设计Django电影推荐网站

项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等等。 环境需要 1.运行环境&#xff1a;最好是python3.7.7&#xff0c;…

【附源码】计算机毕业设计JAVA助农脱贫系统

【附源码】计算机毕业设计JAVA助农脱贫系统 目运行 环境项配置&#xff1a; Jdk1.8 Tomcat8.5 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; JAVA mybati…

cpu设计和实现(异常和中断)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 异常和中断几乎是cpu最重要的特性。而异常和中断&#xff0c;本质上其实是一回事。很多熟悉mips的朋友&#xff0c;应该都听过这么一个词&#xff…

算法竞赛入门【码蹄集进阶塔335题】(MT2291-2295)

算法竞赛入门【码蹄集进阶塔335题】(MT2291-2295&#xff09; 文章目录算法竞赛入门【码蹄集进阶塔335题】(MT2291-2295&#xff09;前言为什么突然想学算法了&#xff1f;为什么选择码蹄集作为刷题软件&#xff1f;目录1. MT2291 饿饿!饭饭!2. MT2292 甜甜花的研究3. MT2293 赌…

【2013NOIP普及组】T4. 车站分级 试题解析

【2013NOIP普及组】T4. 车站分级 试题解析 时间限制: 1000 ms 内存限制: 131072 KB 【题目描述】 一条单向的铁路线上,依次有编号为 1,2,…,n 的 n 个火车站。每个火车站都有一个级别,最低为 1 级。现有若干趟车次在这条线路上行驶,每一趟都满足如下要求:如果这趟…

护眼灯真的有用吗?2022双十二选哪个牌子的护眼台灯好

护眼灯对保护眼睛是真的有用&#xff0c;它不是那种如医学奇迹般的治疗眼睛疾病&#xff0c;或者降低近视度数等等&#xff0c;这样的伪科学只会让人觉得是智商税。护眼灯的作用原理很简单也很有效&#xff0c;即通过各种方法提高光线的舒适度&#xff0c;使人眼在晚上长时间工…

厦门市会展局携手美创:以数据为核心的安全建设守护“云上会展”

新冠疫情影响下&#xff0c;会展业与云计算、大数据、物联网等数字技术加速融合&#xff0c;“云上会展”成为新趋势。然而风口之下&#xff0c;高价值的展会敏感数据无时不面临着被窃取、攻击的风险。因此&#xff0c;成熟配套的数据安全能力体系建设&#xff0c;也是会展业创…

Monaco Editor教程(二十):在编辑器的某个特定位置插入自定义的dom内容,图片,表单,表格,视频

前言 哇咔咔&#xff0c;这是我的第20篇Monaco教程&#xff0c;写完这一篇会暂时休息一段时间&#xff0c;练练字&#xff0c;存存稿&#xff0c;读读书&#xff0c;顺便修修文章。 目前全网成系统的monaco中文专栏应该只有我这一个&#xff0c;欢迎评论区打脸。自结束了GitLa…

面试题------线程池的拒绝策略

面试题------线程池的拒绝策略 线程池有7个核心参数 1.核心线程数 2.最大线程数 3.非核心线程存活时间 4.存活时间的单位 5.工作队列 6.线程自定义的一些配置 7.拒绝策略&#xff08;当达到最大线程数、且工作队列也满了会执行拒绝策略&#xff09; public ThreadPoolExecutor…

马上2023年了,学一下gradle(Gradle)安装及配置

Gradle学习 例如&#xff1a;相信已经很多公司在用了&#xff0c;但是小伙伴对此还是很模糊 文章目录Gradle学习Gradle一、Gradle介绍&#xff1f;二、常见的项目构建工具gradle安装1.下载2. 配置&#xff08;环境变量&#xff09;2.1打开环境变量2.2**新建环境变量**2.3在Pat…

【C++】STL—vector的常用接口

文章目录前言一、vector介绍二、vector的使用1. vector的定义2. vector的遍历2.1.operator[ ]2.2.迭代器2.3.范围for3. vector的空间增长问题3.1.size和capacity3.2.max_size和empty3.3.reserve3.4.resize3.5.Shrink to fit4. vector的增删查改4.1.push_back和pop_backinsert和…

Vue 3的高颜值UI组件库

Vue 3.0 已经发布两年多的时间&#xff0c;今年 2 月 Vue 3.0 也正式成为新的默认版本。今天就来分享 7 个适用于 Vue 3 的高颜值 UI 组件库&#xff01; Element Plus Element Plus 是一套由饿了么开源出品的为开发者、设计师和产品经理准备的基于 Vue 3.0 的组件库。Elemen…