《PySpark大数据分析实战》-12.Spark on YARN配置Spark运行在YARN上

📋 博主简介

  • 💖 作者简介:大家好,我是wux_labs。😜
    热衷于各种主流技术,热爱数据科学、机器学习、云计算、人工智能。
    通过了TiDB数据库专员(PCTA)、TiDB数据库专家(PCTP)、TiDB数据库认证SQL开发专家(PCSD)认证。
    通过了微软Azure开发人员、Azure数据工程师、Azure解决方案架构师专家认证。
    对大数据技术栈Hadoop、Hive、Spark、Kafka等有深入研究,对Databricks的使用有丰富的经验。
  • 📝 个人主页:wux_labs,如果您对我还算满意,请关注一下吧~🔥
  • 📝 个人社区:数据科学社区,如果您是数据科学爱好者,一起来交流吧~🔥
  • 🎉 请支持我:欢迎大家 点赞👍+收藏⭐️+吐槽📝,您的支持是我持续创作的动力~🔥

《PySpark大数据分析实战》-12.Spark on YARN配置Spark运行在YARN上

  • 《PySpark大数据分析实战》-12.Spark on YARN配置Spark运行在YARN上
    • 前言
    • 启动Hadoop集群
    • 配置Spark运行在YARN上
    • 使用spark-submit提交代码
    • 结束语

《PySpark大数据分析实战》-12.Spark on YARN配置Spark运行在YARN上

前言

大家好!今天为大家分享的是《PySpark大数据分析实战》第2章第4节的内容:Spark on YARN配置Spark运行在YARN上。

启动Hadoop集群

在node1上执行集群启动命令启动Hadoop集群,包括HDFS和YARN。Hadoop集群启动命令如下:

$ start-all.sh

Hadoop集群启动后各个节点的进程信息如图所示。

对于HDFS,每个节点都是DataNode,node1是NameNode;对于YARN资源调度框架,每个节点都是NodeManager,node1是ResourceManager。Spark集群不需要启动,节点的进程中看不到任何Spark相关的进程。

Hadoop 3中HDFS的Web端口默认是9870,通过浏览器访问该端口可以打开Web界面,了解集群的概览信息,如图所示。

在Web界面的Datanodes页面,列出了集群的DataNode列表,如图所示。

在服务器上通过hdfs命令将words.txt文件上传到HDFS,命令如下:

$ hdfs dfs -put words.txt /

文件上传成功后,通过Web界面浏览HDFS的文件,如图所示。

Hadoop 3中YARN的Web端口默认是8088,通过浏览器访问该端口可以查看YARN的信息,YARN集群信息如图所示。

配置Spark运行在YARN上

Spark on YARN是不需要启动Spark的,所以Spark的配置大多数都是可以省略的,但是需要配置告诉Spark在哪里去寻找YARN,所以需要配置spark-env.sh,为Spark配置HADOOP_CONF_DIR和YARN_CONF_DIR。需要保证在集群的每个节点上这个配置保持同步,可以在每个节点单独配置,也可以在一个节点上配置完成后同步到其他节点。spark-env.sh配置命令如下:

$ vi $SPARK_HOME/conf/spark-env.sh

spark-env.sh配置内容如下:

HADOOP_CONF_DIR=/home/hadoop/apps/hadoop-3.3.5/etc/hadoop
YARN_CONF_DIR=/home/hadoop/apps/hadoop-3.3.5/etc/hadoop

使用spark-submit提交代码

words.txt已经上传到HDFS,在Spark应用程序中可以访问HDFS上的文件,修改脚本/home/hadoop/WordCount.py,读取HDFS上的文件。修改后WordCount.py的代码如下:

from pyspark import SparkConf, SparkContextif __name__ == '__main__':conf = SparkConf().setAppName("WordCount")# 通过SparkConf对象构建SparkContext对象sc = SparkContext(conf=conf)# 通过SparkContext对象读取文件fileRdd = sc.textFile("hdfs://node1:8020/words.txt")# 将文件中的每一行按照空格拆分成单词wordsRdd = fileRdd.flatMap(lambda line: line.split(" "))# 将每一个单词转换为元组,wordRdd = wordsRdd.map(lambda x: (x, 1))# 根据元组的key分组,将value相加resultRdd = wordRdd.reduceByKey(lambda a, b: a + b)# 将结果收集到Driver并打印输出print(resultRdd.collect())

使用spark-submit命令,指定master是yarn,提交代码进行运行,命令如下:

$ spark-submit --master yarn WordCount.py

在YARN的Web界面,Applications菜单下,可以看到提交运行的Spark应用程序,如图所示。

在列表中点击应用ID链接,可以查看应用程序执行的详细信息,如图所示。

在详情页面底部的列表中点击Logs链接,可以查看应用程序运行日志等信息,如图所示。

结束语

好了,感谢大家的关注,今天就分享到这里了,更多详细内容,请阅读原书或持续关注专栏。

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

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

相关文章

Rabbitmq消息重复消费问题(幂等性保障)

消息百分百投递架构 在《消息可靠性保证》篇章中,我通过生产者确认机制保障了消息会发送到MQ中,但是在生产者与MQ建立过程的时候出现了网络抖动,连接建立失败,生产者就感知不到MQ返回的ack/nack,无法完全保障消息投递…

modbus 通信协议介绍与我的测试经验分享

1、简介 Modbus 协议是一种通信协议,用于工业自动化系统中的设备间通信。该协议最初由 Modicon 公司开发,并于 1979 年发布。 Modbus 协议通过串行通信格式进行通信,在物理层上支持 RS-232、RS-422 和 RS-485 等多种通信方式。在协议层面&am…

javaEE -16(3000字 HTML5 入门级教程)

一:什么是HTML5 HTML5 是新一代的 HTML 标准,2014年10月由万维网联盟( W3C )完成标准制定。 官网地址: W3C 提供: https://www.w3.org/TR/html/index.htmlWHATWG 提供:https://whatwg-cn.git…

Kotlin ArrayList类型toTypedArray转换Array

Kotlin ArrayList类型toTypedArray转换Array data class Point(val x: Float, val y: Float)fun array_test(points: ArrayList<Array<Point>>) {points.forEachIndexed { idx, ap ->ap.forEach {print("$idx $it ")}println()} }fun main(args: Arra…

verilog语法进阶-分布式ram原语

概述 官方提供的原语 RAM16X1S_1 #(.INIT(16h0000) // Initial contents of RAM) RAM16X1S_1_inst (.O(O), // RAM output.A0(A0), // RAM address[0] input.A1(A1), // RAM address[1] input.A2(A2), // RAM address[2] input.A3(A3), // RAM address[3…

setState 函数的接收的参数

在 React 中&#xff0c;setState 函数可以接受两种参数形式&#xff1a; 对象形式&#xff1a; setState(newStateObject);这种形式的 setState 接受一个对象作为参数&#xff0c;对象中包含要更新的状态的键值对。React 会将这个新的状态合并到当前的状态中。 示例&#xff1…

pytest之allure测试报告02:allure具体使用方法

一、allure包含的方法 二、allure使用教程 &#xff08;1&#xff09;用例中写入allure方法 allure.epic("数据进制项目epic") allure.feature("手机号模块feature") class TestMobile:allure.story("杭州的手机号story")allure.title("测…

深拷贝和浅拷贝(js的问题)

深拷贝&#xff1a;修改复制对象&#xff0c;原始对象不会变化浅拷贝&#xff1a;修改复制对象&#xff0c;原始对象也变化 方式&#xff1a; 遍历赋值Object.create()JSON.parse()和JSON.stringify() 操作的对象 var obj {a: "Hello",b: {a: "world"…

Selenium安装WebDriver:ChromeDriver与谷歌浏览器版本快速匹配_最新版120

最近在使用通过selenium操作Chrome浏览器时&#xff0c;安装中遇到了Chrome版本与浏览器驱动不匹配的的问题&#xff0c;在此记录安装下过程&#xff0c;如何快速找到与谷歌浏览器相匹配的ChromeDriver驱动版本。 1. 确定Chrome版本 我们首先确定自己的Chrome版本 Chrome设置…

如何从众多知识付费平台中正确选择属于自己的平台(明理信息科技知识付费平台)

在当今的知识付费市场中&#xff0c;用户面临的选择越来越多&#xff0c;如何从众多知识付费平台中正确选择属于自己的平台呢&#xff1f;下面&#xff0c;我们将为您介绍明理信息科技知识付费平台相比同行的优势&#xff0c;帮助您做出明智的选择。 一、创新的技术架构&#…

神经网络基础

神经网络 引言 神经网络的历史背景 神经网络的概念最早可以追溯到20世纪40年代&#xff0c;当时的科学家们受到生物神经系统的启发&#xff0c;尝试模拟人脑的信息处理方式。在接下来的几十年里&#xff0c;这个领域经历了多次兴衰。尽管在最初几十年内进展缓慢&#xff0c;…

【linux】Debian不能运行sudo的解决

一、问题&#xff1a; sudo: 没有找到有效的 sudoers 资源&#xff0c;退出 sudo: 初始化审计插件 sudoers_audit 出错 二、可用的方法&#xff1a; 出现 "sudo: 没有找到有效的 sudoers 资源&#xff0c;退出" 和 "sudo: 初始化审计插件 sudoers_audit 出错&q…

vue使用自定义指令使用滚动加载

使用自定义指令directives来实现滚动加载&#xff0c;下面以下拉框滚动加载为例 <template><el-selectv-model"ruleForm.train_set_id"v-loadMore"loadMore"placeholder"请选择"><el-optionv-for"item in dataList":k…

IDEA中alt enter不显示创建实现类快捷键

alt enter不显示创建实现类快捷键是因为idea中的设置没打开&#xff0c;按照一下设置打开就可以了。 点击setting-->>editor-->>intentions-->>java下的declaration 如下图所示&#xff1a;

@Resource注解是什么作用,和@bean区别是什么?

Resource 注解就像是 Java 开发的快递小哥&#xff0c;专门用来送依赖关系到你的代码门口。它的主要工作就是帮你实现依赖注入&#xff0c;把其他组件&#xff08;比如类、对象、bean&#xff0c;啥的&#xff09;送到你需要的地方。 具体来说&#xff1a; 依赖注入&#xff1…

【C++干货铺】继承后的多态 | 抽象类

个人主页点击直达&#xff1a;小白不是程序媛 C系列专栏&#xff1a;C干货铺 代码仓库&#xff1a;Gitee 目录 多态的概念 多态的定义和实现 多态的定义条件 虚函数 虚函数的重写 特殊情况 协变&#xff08;基类和派生类的虚函数返回值不同&#xff09; 析构函数的重…

深度学习中的预测图片中的矩形框、标签、置信度分别是什么意思。

问题描述&#xff1a;深度学习中的预测图片中的矩形框、标签、置信度分别是什么意思。 问题解答&#xff1a; 目标框&#xff08;Bounding Box&#xff09;&#xff1a; 描述目标位置的矩形边界框。 类别标签&#xff1a; 表示模型认为目标属于哪个类别&#xff08;例如&#…

【Java JVM】实例对象内存布局

当 Java 应用启动后, 基本就是在不断的创建对象, 回收对象的过程中。 而这些创建的对象基本都是存放在应用的堆 (heap) 中, 但是这些对象在堆中又是什么样子的呢? 在这篇文章中, 我们分析一下 Java JVM 中实例对象的内存布局。 在 HotSpot 虚拟机里, 对象在堆内存中的存储布局…

MySQL_12.Innodb存储引擎参数

1启动Innodb存储引擎 show variables like %default_storage_engine%; 在my.cnf文件加入 default_storage_engineinnodb ,重启mysql生效 2.Innodb初期重要的参数设置 show variables like %innodb%; 列举innodb重要参数: (1)innodb_buffer_pool_size 类似Oracle的SGA 用于…

SpringBoot+OCR 实现PDF 内容识别

一、SpringBootOCR对pdf文件内容识别提取 1、在 Spring Boot 中&#xff0c;您可以结合 OCR&#xff08;Optical Character Recognition&#xff09;库来实现对 PDF 文件内容的识别和提取。 一种常用的 OCR 库是 Tesseract&#xff0c;而 pdf2image 是一个用于将 PDF 转换为图…