全国职业院校技能大赛(大数据赛项)-平台搭建Spark、Scala笔记

news2024/9/23 23:33:26

        Spark作为一个开源的分布式计算框架拥有高效的数据处理能力、丰富的生态系统、多语言支持以及广泛的行业应用。Scala是一种静态类型的编程语言,它结合了面向对象编程和函数式编程的特性,被誉为通用的“大数据语言”。而二者的结合更能迸发出新奇的化学反应,由于Spark和Scala都是用相同的JVM语言编写的,使得它们之间的互操作性非常高。而且Scala的表达能力使得编写Spark应用程序的代码更简洁。二者不仅在实际业务中广泛应用,在全国职业院校技能大赛中更是有两大模块都需要这两个的知识,其中就包括今天要给大家分享的Spark、Scala的环境搭建知识,话不多说,走起!!

        在搭建之前大家要先保证自己虚拟机中已经有JDK,而且Hadoop环境运行起来了,小编今天使用的是CentOS 7系统,软件对应23年国赛的版本,Spark为3.1.1,Scala为2.12.11

        一、解压两个包到/opt/module下

tar -zxvf /opt/software/spark-3.1.1-bin-hadoop3.2.tgz -C /opt/module/
tar -zxvf /opt/software/scala-2.12.11.tgz -C /opt/module/
  • tar: 这是命令的主体,代表要使用的工具是tar。

  • -zxvf: 这是tar命令的选项,可以拆分为四个部分来理解:

    • -z: 这个选项告诉tar命令归档文件是通过gzip压缩的。这意味着tar在解包之前需要先解压缩gzip压缩的文件。
    • -x: 表示要执行的是解压操作(extract),即从归档文件中提取文件。
    • -v: 表示在解包过程中显示详细的过程信息(verbose),即会显示正在被解压的文件名等信息。
    • -f: 这个选项后面紧跟着的是要处理的归档文件的名称。它告诉tar命令接下来要指定的参数是归档文件的名称,而不是其他选项或参数。

        二、更改名称(这步可省略)

mv spark-3.1.1-bin-hadoop3.2 spark
mv scala-2.12.11 scala
  • mv:代表“move”的缩写,用于移动文件或目录,或者重命名文件或目录。

        三、配置环境变量

vim /etc/profile

        在文件中写入

export	SPARK_HOME=/opt/module/spark
export	SCALA_HOME=/opt/module/scala
export	PATH=$PATH:$SPARK_HOME/bin:$SCALA_HOME/bin
export	PATH=$PATH:$SPARK_HOME/sbin

        四、配置文件的配置

        首先进入到spark/conf目录下,随后复制spark的默认配置文件,我们后续的更改都在这个副本中

cd /opt/module/spark/conf/
cp spark-env.sh.template spark-env.sh

        在spark-env.sh文件中添加:

export	SCALA_HOME=你的Scala地址
export	JAVA_HOME=你的JDK地址
export	SPARK_MASTER_IP=你的主机IP
export	SPARK_WORKER_MEMORY=1g
export	HADOOP_CONF_DIR=/opt/module/hadoop/etc/hadoop
export	SPARK_MASTER_HOST=你的主机IP
export	SPARK_MASTER_PORT=7077
export	SPARK_WORKER_HOST=你的主机IP
export	SPARK_WORKER_PORT=7078

        然后我们复制conf目录下的workers.template文件,workers.template文件是一个模板文件,用于配置Spark集群中的工作节点,我们一般是将其复制为workers文件进行配置系列工作节点的主机名或IP地址,每行一个。这些工作节点是Spark集群中用于执行任务的物理或虚拟机器。在集群启动时,主节点会读取workers文件并根据文件中列出的工作节点来启动和管理它们。

cp workers.template workers
vim workers

你的主机IP
你的从机IP
你的从机IP

        五、关联Spark和Hive,分发文件和环境变量

        将hive中conf下面的hive-site.xml传输到spark的conf下(如果你想直接使用spark-sql操作Hive的话)Spark在访问Hive表时,需要知道Hive元数据的存储位置,以便能够正确地读取和写入Hive表。通过将hive-site.xml文件放置在Spark的conf目录下,Spark可以读取这个文件中的配置信息,从而定位到Hive的元数据仓库。

cp /opt/module/hive/conf/hive-site.xml /opt/module/spark/conf/

        然后我们将Spark、Scala的文件和环境变量分发到另外两台机器中(注意下面的主机名改成自己的)

scp -r /opt/module/spark root@slave1:/opt/module/
scp -r /opt/module/spark root@slave2:/opt/module/
scp -r /opt/module/scala root@slave1:/opt/module/
scp -r /opt/module/scala root@slave2:/opt/module/
scp -r /etc/profile root@slave1:/etc/
scp -r /etc/profile root@slave2:/etc/

        随后我们生效环境变量(注意三台都要生效)

source /etc/profile

        六、启动Spark

        进入到/opt/module/spark/sbin/文件夹下

./start-all.sh

        启动之后查看自己是否有这些进程

        最后我们输入spark-shell命令,只要可以进来,基本就是没问题啦!

        spark和scala这两个组件在我们平台搭建中属于比较简单的一部分,但是大家也不能掉以轻心,往往是越简单的部分越容易出错嘛。

        随后小编也会发很多关于咱们职业院校技能大赛的相关笔记和知识点,大家如果对这个竞赛感兴趣的话,可以私信小编,一起共同学习。

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

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

相关文章

深度学习之微积分预备知识点(2)

极限(Limit) 定义:表示某一点处函数趋近于某一特定值的过程,一般记为 极限是一种变化状态的描述,核心思想是无限靠近而永远不能到达 公式: 表示 x 趋向 a 时 f(x) 的极限。 知识点口诀解释极限的存在左…

itextsharp报错 PdfReader not opened with owner password

itextsharp报错 PdfReader not opened with owner password itextsharp读取PDF时报错: PdfReader not opened with owner password 报错原因(据说是):pdf 文件设置了加密。 网上搜索了一下,查到大多数答案是: 在创建pdfReader…

JDK7u21 HashMap版

今天在搞ROME HotSwappableTargetSource链的时候突然发现,JDK7U21反序列化链不仅HashMap.put触发了key.equals putForCreate也调用了 而且HashMap.readObject直接调用了putForCreate来还原 what?直接向HashMap两个put不就完了,还搞什么HashSet 开弄&am…

闪回科技再冲刺上市:曾夸大融资规模,毛利率下滑,有股东退出

近日,闪回科技有限公司(下称“闪回科技”)递交招股书,准备在港交所主板上市。据贝多财经了解,该公司曾于2024年2月递表,此次是“失效”后的更新版本,清科资本为其独家保荐人。 闪回科技在招股书…

5款好用的电脑软件,个个良心实用

分享5款好用但冷门的windows软件,个个良心实用,而且大部分免费,值得统统装进电脑里! 1、EagleGet——高速下载器 一款免费的高速下载软件,页面设计简洁,没有广告,支持 HTTP、HTTPS、FTP、MMS、…

​数据库: MyBatis-Plus

MyBatis-Plus MyBatis-Plus 是 MyBatis 的增强工具,核心作用是简化 CRUD 操作和提升开发效率。它提供基础的增删改查方法、分页插件、条件构造器以及代码生成器,帮助减少重复代码量。MyBatis-Plus 不支持自动建表,专注于简化数据库操作&…

QT中添加资源文件

什么是资源文件 项目中经常需要添加图片、‌音频、‌视频、翻译文件等文件,在QT中,这些文件会放在 .qrc 文件中来被使用。 .qrc 文件是一个XML格式的资源集合描述文件,是Qt中用于定义和管理资源的关键文件 如何使用 创建资源文件 在你的Qt项…

面试真题:谈一谈Mysql的分库分表

分表和分库是什么?有什么区别? 分库是一种水平扩展数据库的技术,将数据根据一定规则划分到多个独立的数据库中。每个数据库只负责存储部分数据,实现了数据的拆分和分布式存储。分库主要是为了解决并发连接过多,单机 my…

一行命令,一分钟轻松搞定SSL证书自动续期

httpsok 是一个便捷的 HTTPS 证书自动续签工具,专为 Nginx 服务器设计。已服务众多中小企业,稳定、安全、可靠。现在的网站SSL免费证书有效期只有3个月,所以就会有经常更快SSL证书的需求,如果手上需要更换的SSL证书比较多的情况下…

DoppelGanger++:面向数据库重放的快速依赖关系图生成

doi:DoppelGanger: Towards Fast Dependency Graph Generation for Database Replay,点击前往 文章目录 1 简介2 架构概述3 依赖关系图3.1 符号和问题定义3.2 无 IT(k) 图3.3 无 OT 图表3.4 无 OTIT 图表3.5 无 IT[OT] 图表3.6 输出确定性保证 4 重复向后…

win10 win11 设置文件权限以解决Onedrive不能同步问题

初级代码游戏的专栏介绍与文章目录-CSDN博客 我的github:codetoys,所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。 这些代码大部分以Linux为目标但部分代码是纯C的,可以在任何平台上使用。 源码指引:github源…

蓝牙AOA基站助力打造智慧医院管理系统

随着科技的飞速发展,智慧医院的概念逐渐深入人心。其中,蓝牙AOA(到达角)定位技术以其高精度、低功耗、低成本等优势,在智慧医院建设中扮演着重要角色。本文将深入探讨蓝牙AOA基站如何助力智慧医院的建设与发展。 一、蓝…

CVE-2024-4956实战

一、访问网页 二、公司信息域名收集 三、抓包读取敏感文件 Burpsuite抓包,修改GET请求即可(GET /%2F%2F%2F%2F%2F%2F%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2Fetc%2Fpasswd HTTP/1.1 )

点赞系统实现

点赞功能是社交、电商等几乎所有的互联网项目中都广泛使用。虽然看起来简单,不过蕴含的技术方案和手段还是比较多的。 下面将分享之前做的判题OJ系统的点赞系统的思路。 1.需求分析 点赞功能与其它功能不同,没有复杂的原型和需求,仅仅是一…

shardingjdbc介绍

文章目录 1、shardingjdbc介绍1.1、读写分离、数据分片(分库分表)中间件:1.1.1、shardingsphere1.1.2、mycat 2、shardingjdbc-demo搭建2.1、创建项目2.2、添加依赖2.3、application.yml2.4、创建实体类 User2.5、创建 UserMapper2.6、创建测…

筛子排序(SieveSort)

当你手头有了支持AVX-512(SIMD)的i9-11900K,你最想做什么? i9-11900K?现在都14代了,谁还用11代的? 但12代以上就没有AVX-512了! AVX-512有什么特别之处?有了这个硬件支…

How do you send files to the OpenAI API?

题意:你如何向 OpenAI API 发送文件 问题背景: For fun I wanted to try to make a tool to ask chatgpt to document rust files. I found an issue, in that the maximum message length the API allows seems to be 2048 characters. 为了好玩&…

LLMs之PE:AI for Grant Writing的简介、使用方法、案例应用之详细攻略

LLMs之PE:AI for Grant Writing的简介、使用方法、案例应用之详细攻略 目录 AI for Grant Writing的简介 AI for Grant Writing的使用方法—提示资源 1、提示集合 2、提示工程 3、快速提示 为了提高文本清晰度 为了让文本更有吸引力 为了改进文本的结构和流…

QT窗口无法激活弹出问题排查记录

问题背景 问题环境 操作系统: 银河麒麟V10SP1qt版本 : 5.12.12 碰见了一个问题应用最小化,然后激活程序窗口无法弹出 这里描述一下代码的逻辑,使用QLocalServer实现一个单例进程,具体的功能就是在已存在一个程序A进程时,再启动这个程序A,新的程序A进程会被杀死,然后激活已存…

MFC - 复杂控件_1

前言 各位师傅大家好,我是qmx_07,今天给大家讲解复杂控件的相关知识点 复杂控件 进度条 绘图准备: 调整windows窗口大小、设置 Progress Control 进度条设置Button 按钮 添加进度条变量 m_Progress,通过按钮触发 void CMFCApplication2Dlg::OnBnCl…