【Spark征服之路-2.2-安装部署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

  1. 修改配置文件

(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

v i 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

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

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

h d fs dfs -mkdir /directory

  1. 修改 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 历史记录的个数,如果超过这个值,旧的应用程序信息将被删除,这个是内存中的应用数,而不是页面上显示的应用数。

  1. 开启历史服务,并且重新提交应用

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 解压缩到无中文无空格的路径中。
  1. 启动本地环境

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

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

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

相关推荐
SelectDB1 分钟前
ES 写入拒绝与磁盘暴涨:排查命令、参数调整与改用 Doris 的落地步骤
大数据·数据库·数据分析
RPAdaren5 分钟前
AI 舆情智能体频繁断跑、漏抓发酵?90% 团队都踩了同一层坑
大数据·人工智能
Data-Miner31 分钟前
怎么批量处理Excel文件?一段月底对账剧本讲明白
大数据
千里码aicood1 小时前
基于Hadoop的机票价格波动分析系统的设计与实现
大数据·hadoop·分布式
無a伟1 小时前
彻底搞懂ToolCalling、MCP,Skills的核心区别,能力上的层层封装
大数据·agent·mcp·toolcalling·skills
xbgRS1 小时前
Elasticsearch的分词器
大数据·elasticsearch·搜索引擎
Geeys1 小时前
拼多多店铺怎么运营才能有订单?新手低成本出单攻略
大数据·网络·人工智能
FYKJ_20102 小时前
springboot刑事案件管理系统03047-计算机课程设计、毕业设计
vue.js·spring boot·python·mysql·typescript·spark·django
BYSJMG2 小时前
计算机毕业设计选题推荐:基于大数据的快递物流运营数据分析与可视化,Spark与K-Means
大数据·算法·数据分析·spark·课程设计
盟接之桥2 小时前
线束数字化--先进先出为什么总是停留在纸面上?
大数据·网络·数据库·人工智能·制造·ai编程