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

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

        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这两个组件在我们平台搭建中属于比较简单的一部分,但是大家也不能掉以轻心,往往是越简单的部分越容易出错嘛。

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

相关文章:

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

Spark作为一个开源的分布式计算框架拥有高效的数据处理能力、丰富的生态系统、多语言支持以及广泛的行业应用。Scala是一种静态类型的编程语言,它结合了面向对象编程和函数式编程的特性,被誉为通用的“大数据语言”。而二者的结合更能迸发出新奇的化学反…...

【Java】JVM基本组成

一、JDK、JRE、JVM JDK:全称 “Java Development Kit” Java 开发工具包,提供 javac编译器、jheap、jconsole 等监控工具; JRE:全称 “Java Runtime Environment” Java 运行环境,提供 class Library 核心类库JVM; …...

解决【WVP服务+ZLMediaKit媒体服务】加入海康摄像头后,能发现设备,播放/点播失败,提示推流超时!

环境介绍 每人搭建的环境不一样,情况不一样,但是原因都是下面几种: wvp配置不当网络端口未放开网络不通 我搭建的环境: WVP服务:windows下,用idea运行的源码 ZLM服务:虚拟机里 问题描述 1.…...

淘宝商品详情接口item_get响应参数解析:props、props_list、prop_img

在电商数据分析和应用开发中,淘宝商品详情接口item_get是一个至关重要的工具。通过该接口,开发者可以高效地获取淘宝平台商品的详细信息,从而优化商品展示、搜索、推荐等功能,提升用户体验和转化率。本文将详细解析item_get接口的…...

Android使用OpenCV 4.5.0实现扑克牌识别(源码分享)

一、显示效果展示 二、OpenCV 4.5.0 OpenCV 4.5.0是OpenCV(Open Source Computer Vision Library,开源计算机视觉库)的一个重要更新版本,该版本在多个方面进行了优化和新增了多项功能。 三、ONNX模型 ONNX(Open Neu…...

Pandas_iloc_loc_哪个是inclusive哪个是exclusive

iloc 和 loc 包括不包括结尾写的那个行(列)? 不一样! iloc[istart:iend] exclusive on iend 不包括结尾那行(列)! loc[start:end] inclusive on end 包括结尾那行(列)&am…...

python是什么语言写的

Python是一种计算机程序设计语言。是一种面向对象的动态类型语言。现今Python语言很火,可有人提问,这么火的语言它的底层又是什么语言编写的呢? python是C语言编写的,它有很多包也是用C语言写的。 所以说,C语言还是很…...

python编程,把所有子目录和文件输出到文本文件

要将所有子目录和文件输出到文本文件,你可以使用Python的os模块来遍历目录结构,并将结果写入文件。以下是一个简单的Python脚本示例,它会递归地遍历指定目录,并将每个子目录和文件的相对路径写入到一个文本文件中: im…...

使用 IntelliJ IDEA 连接到达梦数据库(DM)

前言 达梦数据库是一款国产的关系型数据库管理系统,因其高性能和稳定性而被广泛应用于政府、金融等多个领域。本文将详细介绍如何在 IntelliJ IDEA 中配置并连接到达梦数据库。 准备工作 获取达梦JDBC驱动: 访问达梦在线服务平台网站或通过其他官方渠道…...

【Python报错已解决】AttributeError: ‘WindowsPath‘ object has no attribute ‘rstrip‘

🎬 鸽芷咕:个人主页 🔥 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! 专栏介绍 在软件开发和日常使用中,BUG是不可避免的。本专栏致力于为广大开发者和技术爱好者提供一个关于BUG解决的经…...

Java中的事件(动作监听-ActionListener)

(一)、ActionListener接口 ActionListener接口用于处理用户界面上的动作事件,例如:按钮点击、菜单选择等。实现ActionListener接口需要重写actionPerformed(ActionEvent e)方法,该方法会在动作发生时被调用。 &#…...

STM32篇:开发环境安装

编程语言:C语言 需要安装的软件有两个:Keil5 和 STM32CubeMX 一.Keil5 的安装 使用 Keil4 写 STM32 代码其实也是可以,但需要很复杂的配置,不建议新手操作。 比较推荐 Keil5 编写 STM32 ,只需要一些简单的设置就可…...

AIGC实战——多模态模型Flamingo

AIGC实战——多模态模型Flamingo 0. 前言1. Flamingo 架构2. 视觉编码器3. Perceiver 重采样器4. 语言模型5. FIamingo 应用小结系列链接0. 前言 我们已经学习了文本生成图像模型 DALL.E 2,在本节中,我们将探索另一种多模态模型 Flamingo,它可以根据给定文本和视觉数据流生…...

如何在WordPress中添加事件Schema(分步指南)

如果你正在举办一个在线活动,那么你可能正在寻找通过网络宣传的方法。此时,模式标记可以帮助你在搜索引擎结果中提高活动的可见性。 活动模式将帮助谷歌和其他搜索引擎更好地理解你的活动详情,使它们能够在活动列表、丰富摘要和谷歌知识面板…...

守护企业资产安全:企业微信群禁止互加好友操作指南!

为了防止其他公司的人员混入发起私聊,导致客户资源流失,禁止互加好友十分重要。而软件自带群防骚扰功能,设置好相关规则后,群内成员触发规则会被踢出群聊。 进入工作台-点击更多-选择客户群-选择防骚扰-选择配制企业成员防骚扰规…...

【QT基础】创建项目项目代码解释

目录 前言一,使⽤Qt Creator 新建项目1. 新建项目2. 选择项⽬模板3. 选择项⽬路径4. 选择构建系统5. 填写类信息设置界⾯6. 选择语⾔和翻译⽂件7. 选择Qt套件8. 选择版本控制系统9. 最终效果 二,项目代码说明1. main.cpp文件2. Widget.h文件3. Widget.cp…...

【数据结构】对象的比较

Java数据类型分为基本数据类型和引用类型,基本数据类型可以直接比较大小,对于引用类型的变量不能直接比较。下面来讲解Java对象的比较。 目录 equals比较 Comparble接口类的比较 基于比较器比较 equals比较 equals是Object类中的方法,只能…...

代码随想录八股训练营第四十天| C++

目录 一、什么是菱形继承? 1.1.菱形继承的示例: 1.2.菱形继承的问题: 1.3.解决菱形继承问题: 二、C中的多线程同步机制? 2.1.互斥锁(Mutex): 2.2.递归互斥锁(Recursive Mutex&#xff09…...

【C++】10道经典面试题带你玩转二叉树

🦄个人主页:修修修也 🎏所属专栏:C ⚙️操作环境:Leetcode/牛客网 目录 一.根据二叉树创建字符串 二.二叉树的层序遍历 三.二叉树的层序遍历 II 四.二叉树的最近公共祖先 五.二叉搜索树与双向链表 六.从前序与中序遍历序列构造二叉树 七.从中序与后序遍历…...

【裸机装机系列】13.kali(ubuntu)-优化-自定义grub启动界面个性化背景

推荐阅读: 1.kali(ubuntu)-为什么弃用ubuntu,而选择基于debian的kali操作系统 当裸机安装了linux之后,开机的时候总会让人误会是黑客,还是优化一下开机界面吧,毕竟是日常开发使用。 注:修改有grub启动项有…...

数组高阶应用(C++版)

在C中,普通的数组(C-style array)、std::initializer_list 、 std::array和std::vector 是四种不同的容器类型,它们各自有不同的特性和用途。下面是对它们进行详细比较和解释。 1. 普通数组(C-style Array&#xff09…...

Spring(四)多线程+异步任务执行服务+常见的Enable注解+SpringUnit测试

Spring多线程 Spring通过任务执行器(TaskExecutor)来实现多线程和并发编程ThreadPoolTaskExecutor实现一个基于线程池的TaskExecutor配置类中EnableAsync开启对异步任务的支持使用Async声明该任务为异步 ①、配置类 Configuration ComponentScan(&quo…...

解析与实现二叉树

在数据结构与算法的学习中,二叉树无疑是一个重要且实用的数据结构。它不仅在理论上具有深刻的研究价值,更在实际应用中广泛存在,如搜索引擎的索引结构、文件系统的目录树、数据库的索引、游戏开发中的场景管理等等。本文将深入探讨二叉树的基…...

Java面向对象——内部类(成员内部类、静态内部类、局部内部类、匿名内部类,完整详解附有代码+案例)

文章目录 内部类17.1概述17.2成员内部类17.2.1 获取成员内部类对象17.2.2 成员内部类内存图 17.3静态内部类17.4局部内部类17.5匿名内部类17.5.1概述 内部类 17.1概述 写在一个类里面的类叫内部类,即 在一个类的里面再定义一个类。 如,A类的里面的定义B类&#x…...

操作系统笔记三

进程 把一个静态程序通过OS在内存中让cpu执行起来的动态执行过程叫进程 写代码都是用户态,而进程在执行过程中需要完成特定的功能,这些功能呢只有操作系统能提供,比如说读写文件,读写文件的过程是与硬盘打交道,这个过程…...

uniapp快速入门教程,内容来源于官方文档,仅仅记录快速入门需要了解到的知识点

uniapp快速入门教程,内容来源于官方文档,仅仅记录快速入门需要了解到的知识点 目录 介绍uniapp 介绍uniapp x 介绍功能框架图创建项目&发布组件/标签的变化js的变化css的变化工程结构和页面管理 pages.jsonmanifest.json 应用配置组件easycom组件规…...

基于微信小程序的商品展示+ssm(lw+演示+源码+运行)

商品展示系统 摘 要 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,微信小程序被用户普遍使用,为方…...

【Linux】常用指令(下)(内含more、less、 head、tail、date、find、grep、zip、tar以及学习笔记)

文章目录 前言1. more指令2. less指令(重要)3. head指令4. tail指令5. 管道(做到学会使用即可)6. date指令6.1 时间戳 7. cal指令8. find指令9. grep指令10. zip/unzip指令11. tar指令 前言 Linux下的常用指令终于要在本文落下帷…...

DesignMode__unity__抽象工厂模式在unity中的应用、用单例模式进行资源加载

目录 抽象工厂模式 思维导图 接口(抽象类) 工厂接口 抽象产品类 抽象武器接口 抽象人物接口 具体工厂和具体产品 具体工厂 (1)产品接口,生成具体人物 (2)武器接口,生成具体…...

Leetcode3289. 数字小镇中的捣蛋鬼

Every day a Leetcode 题目来源&#xff1a;3289. 数字小镇中的捣蛋鬼 解法1&#xff1a;哈希 代码&#xff1a; /** lc appleetcode.cn id3289 langcpp** [3289] 数字小镇中的捣蛋鬼*/// lc codestart class Solution { public:vector<int> getSneakyNumbers(vector…...