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

【无标题】spark安装部署

Spark 4种部署模式的另外2种,分别是Yarn、windows模式。

二、 实验准备工作:

1. 三台linux虚拟机

2. spark的压缩包

 

三、 实验步骤

Spark-yarn

1. 解压缩文件,并重命名为spark-yarn。

tar zxvf spark-3.0.0-bin-hadoop3.2.tgz

mv spark-3.0.0-bin-hadoop3.2 spark-yarn

 

2. 修改配置文件

1) 修改hadoop配置文件/opt/software/hadoop/hadoop-2.9.2/etc/hadoop/yarn-site.xml,并分发给其他节点。

是否启动一个线程检查每个任务正使用的虚拟内存量,如果任务超出分配值,则直接将其杀掉,默认是 true

<property> 

​​<name>yarn.nodemanager.vmem-check-enabled</name> 

​​<value>false</value> 

​</property>

是否启动一个线程检查每个任务正使用的物理内存量,如果任务超出分配值,则直接将其杀掉,默认是 true

<property>

​​<name>yarn.nodemanager.pmem-check-enabled</name> 

​​<value>false</value> 

​</property>

2) 返回到spark-yarn目录,修改conf/spark-env.sh,添加 JAVA_HOME 和 YARN_CONF_DIR 配置。

mv spark-env.sh.template spark-env.sh

vi spark-env.sh

 

 

3) 启动HDFS以及Yarn集群

4) 提交测试应用

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

 

查看node01:8088页面

 

 

配置历史服务

由于 spark-shell 停止掉后,集群监控 node01:4040 页面就看不到历史任务的运行情况,所以 开发时都配置历史服务器记录任务运行情况。

1) 修改 spark-defaults.conf.template 文件名为 spark-defaults.conf

mv spark-defaults.conf.template spark-defaults.conf

2) 修改 spark-default.conf 文件,配置日志存储路径

 

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

hdfs dfs -mkdir /directory

3) 修改 spark-env.sh 文件, 添加日志配置

export SPARK_HISTORY_OPTS="

-Dspark.history.ui.port=18080 

-Dspark.history.fs.logDirectory=hdfs://node01:9000/directory

-Dspark.history.retainedApplications=30"

 

 

参数含义:

⚫ 参数 1 含义:WEB UI 访问的端口号为 18080

⚫ 参数 2 含义:指定历史服务器日志存储路径

⚫ 参数 3 含义:指定保存 Application 历史记录的个数,如果超过这个值,旧的应用程序信息将被删除,这个是内存中的应用数,而不是页面上显示的应用数。

4) 开启历史服务,并且重新提交应用

sbin/start-history-server.sh

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

 

 

Windows模式

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

 

 

2) 启动本地环境

执行解压缩文件路径下 bin 目录中的 spark-shell.cmd 文件,启动 Spark 本地环境

 

 

在命令行工具中执行如下代码指令。

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

 

相关文章:

  • 16.第二阶段x64游戏实战-分析二叉树结构
  • CAMAT
  • FreeRTOS深度解析:队列集(Queue Sets)的原理与应用
  • 域名 → IP 的解析全过程
  • 【PCB工艺】推挽电路及交越失真
  • 厚铜PCB制造中的散热结构工艺控制要点
  • 探秘Transformer系列之(30)--- 投机解码
  • JavaScript 改变this指向
  • LeetCode第164题_最大间距
  • 图文结合 - 光伏系统产品设计PRD文档 -(慧哥)慧知开源充电桩平台
  • 前端 JavaScript 处理流式响应的坑
  • DeepSeek+Mermaid:轻松实现可视化图表自动化生成(附实战演练)
  • Ubuntu使用war包部署Jenkins并通过systemcl管理
  • 【Java面试笔记:基础】11.Java提供了哪些IO方式? NIO如何实现多路复用?
  • 【Java学习笔记】选择结构
  • ACI multipod 二、IPN (Inter-Pod Network)
  • 【最新版】沃德代驾源码全开源+前端uniapp
  • [蓝桥杯 2025 省 Python B] 异或和
  • IDEA中Quarkus框架(3.13版本)容器编排、压测与调优、注意事项等
  • Python基础语法3
  • 出35万元为副县长的女友凑购房首付,青海一商人被判缓刑
  • 已有17个国家和国际组织、50多个国际科研机构加入国际月球科研站合作
  • 青岛:今年计划新增城镇住房约5.77万套,推动房地产市场回稳
  • 亮相!神二十乘组与中外媒体记者集体见面
  • 特斯拉季度利润暴跌71%,马斯克下月开始大幅减少为政府工作时间
  • 今天是世界读书日,上海准备了哪些文化大餐?