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

在IDEA运行spark程序(搭建Spark开发环境)

       建议大家写在Linux上搭建好Hadoop的完全分布式集群环境和Spark集群环境,以下在IDEA中搭建的环境仅仅是在window系统上进行spark程序的开发学习,在window系统上可以不用安装hadoop和spark,spark程序可以通过pom.xml的文件配置,添加spark-core依赖,可以直接在IDEA中编写spark程序并运行结果。

一、相关软件的下载及环境配置

1.jdk的下载安装及环境变量配置(我选择的版本是jdk8.0(即jdk1.8),建议不要使用太高版本的,不然配置pom.xml容易报错)

链接:https://pan.baidu.com/s/1deXf6pgMiRca1O724fUOxg 
提取码:sxuy

双击安装包,一直“Next”即可,最好不要安装到C盘,中间修改一下安装路径即可,最后点击“Finish”。我将jdk1.8安装在了D盘目录下的soft文件夹,bin路径如下:

配置环境变量:

win+R打开命令窗口输入:javac -verison ,进行检测是否成功配置环境变量:

2.IDEA的下载安装(我选择的版本是2019.2.3,建议选择低版本的IDEA)

官网下载地址:IntelliJ IDEA – 领先的 Java 和 Kotlin IDE (jetbrains.com.cn)

3.scala的下载(我选择的版本是2.12.15)安装及环境变量的配置

官网下载地址:The Scala Programming Language (scala-lang.org)

双击打开下载好的安装程序,一直“Next”即可,最好不要安装到C盘,中间修改一下安装路径即可,最后点击“Finish”。我将scala软件安装在了D盘目录下的Develop文件夹,bin路径如下:

配置scala的系统环境变量,将scala安装的bin目录路径加入到系统环境变量path中:

win+R打开命令窗口输入:scala -verison ,进行检测是否成功配置环境变量:

4.scala插件(版本要与IDEA版本保持一致,下载2019.2.3版本)的下载安装

官网地址:Scala - IntelliJ IDEs Plugin | Marketplace

下载完成后,将下载的压缩包解压到IDEA安装目录下的plugins目录下:

5.maven的下载(我选择的版本是3.5.4)与安装,系统环境变量的配置

官网地址:Maven – Download Apache Maven

将对应版本的压缩包下载到本地,并新建一个文件夹Localwarehouse,用来保存下载的依赖文件

配置maven的系统环境配置,跟以上配置的方法一样,将bin目录地址写入path环境变量:

打开maven安装包下的conf文件夹下面的settings.xml,添加如下代码:

<localRepository>D:\\Develop\\maven\\Localwarehouse</localRepository>

添加如下代码用来配置jdk版本:

   <profile><id>jdk-1.8.0</id><activation><activeByDefault>true</activeByDefault><jdk>1.8.0</jdk></activation><properties><maven.compiler.source>1.8.0</maven.compiler.source><maven.compiler.target>1.8.0</maven.compiler.target><maven.compiler.compilerVersion>1.8.0</maven.compiler.compilerVersion></properties></profile>

二、将maven加载到IDEA中

三、检测scala插件是否在IDEA中已经安装成功

四、用maven新建一个工程项目

五、配置pom.xml文件

1.如果只需要在本地运行spark程序,则只需要添加scala-library、spark-core、spark-sql、spark-streaming等依赖,添加代码如下:

<properties><!-- 声明scala的版本 --><scala.version>2.12.15</scala.version><!-- 声明linux集群搭建的spark版本,如果没有搭建则不用写 --><spark.version>3.2.1</spark.version><!-- 声明linux集群搭建的Hadoop版本 ,如果没有搭建则不用写--><hadoop.version>3.1.4</hadoop.version></properties><dependencies><!--scala--><dependency><groupId>org.scala-lang</groupId><artifactId>scala-library</artifactId><version>${scala.version}</version></dependency><!-- https://mvnrepository.com/artifact/org.apache.spark/spark-core --><dependency><groupId>org.apache.spark</groupId><artifactId>spark-core_2.12</artifactId><version>3.2.1</version></dependency><!-- https://mvnrepository.com/artifact/org.apache.spark/spark-sql --><dependency><groupId>org.apache.spark</groupId><artifactId>spark-sql_2.12</artifactId><version>3.2.1</version></dependency><!-- https://mvnrepository.com/artifact/org.apache.spark/spark-streaming --><dependency><groupId>org.apache.spark</groupId><artifactId>spark-streaming_2.12</artifactId><version>3.2.1</version><scope>provided</scope></dependency></dependencies>

六、新建scala类文件编写代码

当你右键发现无法新建scala类,需要将scala SDK添加到当前项目中。

鼠标点击java文件夹,右键new--->Scala Class

在WordCount文件中编写如下代码:

import org.apache.spark.sql.SparkSession
object WordCount {def main(args: Array[String]): Unit = {val spark = SparkSession.builder().master("local[*]").appName("word count").getOrCreate()val sc = spark.sparkContextval rdd = sc.textFile("data/input/words.txt")val counts = rdd.flatMap(_.split(" ")).map((_,1)).reduceByKey(_+_)counts.collect().foreach(println)println("全部的单词数:"+counts.count())counts.saveAsTextFile("data/output/word-count")}
}

准备好测试文件words.txt,将文件存放在scalaproject-->data-->input-->words.txt

hello me you her
hello me you
hello me
hello

运行WordCount程序

运行结果:

相关文章:

在IDEA运行spark程序(搭建Spark开发环境)

建议大家写在Linux上搭建好Hadoop的完全分布式集群环境和Spark集群环境&#xff0c;以下在IDEA中搭建的环境仅仅是在window系统上进行spark程序的开发学习&#xff0c;在window系统上可以不用安装hadoop和spark&#xff0c;spark程序可以通过pom.xml的文件配置&#xff0c;添加…...

无穷级数例子

计算 lim ⁡ x → ∞ ( 1 n 1 1 n 2 1 n 3 . . . 1 n 2 n − 1 1 n 2 n ) 计算\lim _{x\to \infty} (\frac{1}{n1} \frac{1}{n2}\frac{1}{n3} ... \frac{1}{n2n-1} \frac{1}{n2n} ) 计算x→∞lim​(n11​n21​n31​...n2n−11​n2n1​) 解&#xff1a; lim ⁡ x …...

C++构造函数和析构函数详解

一、构造函数 1、概念 构造函数是特殊的成员函数&#xff0c;需要注意的是&#xff0c;构造函数虽然名叫做构造&#xff0c;但是构造函数的主要任务并不是开空间创建对象&#xff0c;而是初始化对象。 2、特征 函数名与类名相同。无返回值对象实例化时编译器自动调用对应的…...

MySQL数据库干货_16—— SQL99标准中的查询

SQL99标准中的查询 MySQL5.7 支持部分的SQL99 标准。 SQL99中的交叉连接(CROSS JOIN) 示例&#xff1a; 使用交叉连接查询 employees 表与 departments 表。 select * from employees cross join departments;SQL99中的自然连接(NATURAL JOIN) 自然连接 连接只能发生在两…...

LLM大语言模型训练中常见的技术:微调与嵌入

微调&#xff08;Fine-Tuning&#xff09;&#xff1a; 微调是一种用于预训练语言模型的技术。在预训练阶段&#xff0c;语言模型&#xff08;如GPT-3.5&#xff09;通过大规模的文本数据集进行训练&#xff0c;从而学会了语言的语法、语义和世界知识。然后&#xff0c;在微调阶…...

每日一练 | 网络工程师软考真题Day47

阅读以下关于Linux文件系统和Samba效劳的说明&#xff0c;答复以下【问题1】至【问题3】。 【说明】 Linux系统采用了树型多级目录来管理文件&#xff0c;树型结构的最上层是根目录&#xff0c;其他的所有目录都是从根目录生成的。通过Samba可以实现基于Linux操作系统的效劳器和…...

Kafka - 监控工具 Kafka Eagle:实时洞察Kafka集群的利器

文章目录 引言Kafka Eagle简介Kafka Eagle的特点Kafka Eagle的优势使用Kafka Eagle的步骤结论 引言 在现代大数据架构中&#xff0c;Apache Kafka已成为一个不可或缺的组件&#xff0c;用于可靠地处理和传输大规模的数据流。然而&#xff0c;随着Kafka集群规模的不断增长&…...

infercnv hpc东南服务器 .libpath 最终使用monocle2环境安装

安装不成功就用conda安装 conda install -c bioconda bioconductor-infercnv Installing infercnv There are several options for installing inferCNV. Choose whichever you prefer: Option A: Install infercnv from BioConductor (preferred) From within R, run the…...

【音视频 | Ogg】RFC3533 :Ogg封装格式版本 0(The Ogg Encapsulation Format Version 0)

&#x1f601;博客主页&#x1f601;&#xff1a;&#x1f680;https://blog.csdn.net/wkd_007&#x1f680; &#x1f911;博客内容&#x1f911;&#xff1a;&#x1f36d;嵌入式开发、Linux、C语言、C、数据结构、音视频&#x1f36d; &#x1f923;本文内容&#x1f923;&a…...

Hadoop时代落幕,开源大数据将何去何从?

Hadoop时代落幕&#xff0c;谁是大数据的新宠儿&#xff1f; 1、 1、...

作为一名程序员面临哪些挑战?应该如何应对?

在现今互联网失业潮的大环境下&#xff0c;每一位程序员都面临着被淘汰的风险&#xff0c;但逃避没有用&#xff0c;今天我们就来总结这些挑战与风险&#xff0c;找准自己的方向与定位&#xff0c;做好职业规划&#xff0c;希望这些信息能对大家有所帮助。 一、面临的挑战 老…...

flink的安装与使用(ubuntu)

组件版本 虚拟机&#xff1a;ubuntu-20.04.6-live-server-amd64.iso flink&#xff1a;flink-1.18.0-bin-scala_2.12.tgz jdk&#xff1a;jdk-8u291-linux-x64.tar flink 下载 1、官网&#xff1a;https://flink.apache.org/downloads/ 2、清华镜像&#xff1a;https://mirr…...

容器:软件性能测试的最佳环境

容器总体上提供了一种经济的和可扩展的方法来测试产品在实际情况下的性能&#xff0c;同时还能保持较低的资源成本和开销成本。 软件性能和可伸缩性是我们谈论应用程序开发时经常遇到的话题。一个很大的原因是应用程序的性能和可伸缩性直接影响其在市场上的成功。一个应用程序…...

【Qt控件之QMovie】详解

Qt控件之QMovies 概述公共类型属性公共函数公共槽函数信号静态公共成员示例使用场景 概述 QMovie类是一个方便的类&#xff0c;用于播放具有QImageReader的动画。此类用于显示没有声音的简单动画。如果您想显示视频和媒体内容&#xff0c;请改用Qt多媒体框架Qt Multimedia mul…...

Star History 九月开源精选 |开源 GitHub Copilot 替代

虽然大火了近一年&#xff0c;但是截至目前 AI 唯一破圈的场景是帮助写代码&#xff08;谷歌云旗下的 DORA 年度报告也给 AI 泼了盆冷水&#xff09;。不过对于软件开发来说&#xff0c;生成式人工智能绝对已经是新的标配。 本期 Star History 收集了一些开源 GitHub Copilot …...

【Rabbit MQ】Rabbit MQ 消息的可靠性 —— 生产者和消费者消息的确认,消息的持久化以及消费失败的重试机制

文章目录 前言&#xff1a;消息的可靠性问题一、生产者消息的确认1.1 生产者确认机制1.2 实现生产者消息的确认1.3 验证生产者消息的确认 二、消息的持久化2.1 演示消息的丢失2.2 声明持久化的交换机和队列2.3 发送持久化的消息 三、消费者消息的确认3.1 配置消费者消息确认3.2…...

C++设计模式_25_Interpreter 解析器

Interpreter 解析器被归为“领域规则”模式。Interpreter模式比较适合简单的文法表示,应用场景是比较有限的,解决问题的思路和场景都是一样的。 文章目录 1. “领域规则”模式1.1 典型模式2. 动机( Motivation)3. 代码演示Interpreter 解析器模式4. 模式定义5. 结构( Structu…...

能源化工过程-故障诊断数据集初探-田纳西-伊斯曼过程数据集

1. 田纳西-伊斯曼过程(TE)数据集简介 整个TE数据集由训练集和测试集构成,TE集中的数据由22次不同的仿真运行数据构成,TE集中每个样本都有52个观测变量。d00.dat至d21.dat为训练集样本,d00_te.dat至d21_te.dat为测试集样本。d00.dat和d00_te.dat为正常工况下的样本。d00.d…...

【Linux】安装配置解决CentosMobaXterm的使用及Linux常用命令以及命令模式

目录 Centos的介绍 centos安装配置&MobaXterm 创建 安装 ​编辑 配置 ​编辑 MobaXterm使用 Linux常用命令&模式 常用命令 vi或vim编辑器 三种模式 命令模式 编辑模式 末行模式 拍照备份 Centos的介绍 CentOS&#xff08;Community Enterprise Op…...

一台服务器安装两个mysql、重置数据库用于测试使用

文章目录 一、切数据库数据存储文件夹已经存在数据库数据文件夹新建数据库数据文件夹 二、安装第二个mysql安装新数据库初始化数据库数据启动数据库关闭数据库 三、mysqld_multi单机多实例部署参考文档 一、切数据库数据存储文件夹 这个方法可以让你不用安装新的数据库&#x…...

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…...

C++初阶-list的底层

目录 1.std::list实现的所有代码 2.list的简单介绍 2.1实现list的类 2.2_list_iterator的实现 2.2.1_list_iterator实现的原因和好处 2.2.2_list_iterator实现 2.3_list_node的实现 2.3.1. 避免递归的模板依赖 2.3.2. 内存布局一致性 2.3.3. 类型安全的替代方案 2.3.…...

CTF show Web 红包题第六弹

提示 1.不是SQL注入 2.需要找关键源码 思路 进入页面发现是一个登录框&#xff0c;很难让人不联想到SQL注入&#xff0c;但提示都说了不是SQL注入&#xff0c;所以就不往这方面想了 ​ 先查看一下网页源码&#xff0c;发现一段JavaScript代码&#xff0c;有一个关键类ctfs…...

大数据零基础学习day1之环境准备和大数据初步理解

学习大数据会使用到多台Linux服务器。 一、环境准备 1、VMware 基于VMware构建Linux虚拟机 是大数据从业者或者IT从业者的必备技能之一也是成本低廉的方案 所以VMware虚拟机方案是必须要学习的。 &#xff08;1&#xff09;设置网关 打开VMware虚拟机&#xff0c;点击编辑…...

12.找到字符串中所有字母异位词

&#x1f9e0; 题目解析 题目描述&#xff1a; 给定两个字符串 s 和 p&#xff0c;找出 s 中所有 p 的字母异位词的起始索引。 返回的答案以数组形式表示。 字母异位词定义&#xff1a; 若两个字符串包含的字符种类和出现次数完全相同&#xff0c;顺序无所谓&#xff0c;则互为…...

JUC笔记(上)-复习 涉及死锁 volatile synchronized CAS 原子操作

一、上下文切换 即使单核CPU也可以进行多线程执行代码&#xff0c;CPU会给每个线程分配CPU时间片来实现这个机制。时间片非常短&#xff0c;所以CPU会不断地切换线程执行&#xff0c;从而让我们感觉多个线程是同时执行的。时间片一般是十几毫秒(ms)。通过时间片分配算法执行。…...

鸿蒙DevEco Studio HarmonyOS 5跑酷小游戏实现指南

1. 项目概述 本跑酷小游戏基于鸿蒙HarmonyOS 5开发&#xff0c;使用DevEco Studio作为开发工具&#xff0c;采用Java语言实现&#xff0c;包含角色控制、障碍物生成和分数计算系统。 2. 项目结构 /src/main/java/com/example/runner/├── MainAbilitySlice.java // 主界…...

【笔记】WSL 中 Rust 安装与测试完整记录

#工作记录 WSL 中 Rust 安装与测试完整记录 1. 运行环境 系统&#xff1a;Ubuntu 24.04 LTS (WSL2)架构&#xff1a;x86_64 (GNU/Linux)Rust 版本&#xff1a;rustc 1.87.0 (2025-05-09)Cargo 版本&#xff1a;cargo 1.87.0 (2025-05-06) 2. 安装 Rust 2.1 使用 Rust 官方安…...

虚拟电厂发展三大趋势:市场化、技术主导、车网互联

市场化&#xff1a;从政策驱动到多元盈利 政策全面赋能 2025年4月&#xff0c;国家发改委、能源局发布《关于加快推进虚拟电厂发展的指导意见》&#xff0c;首次明确虚拟电厂为“独立市场主体”&#xff0c;提出硬性目标&#xff1a;2027年全国调节能力≥2000万千瓦&#xff0…...

python爬虫——气象数据爬取

一、导入库与全局配置 python 运行 import json import datetime import time import requests from sqlalchemy import create_engine import csv import pandas as pd作用&#xff1a; 引入数据解析、网络请求、时间处理、数据库操作等所需库。requests&#xff1a;发送 …...