在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程序

运行结果:

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

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

相关文章

Java 的高性能缓存库-caffeine!

在项目中用到的除了分布式缓存&#xff0c;还有本地缓存&#xff0c;例如&#xff1a;Guava、Encache&#xff0c;使用本地缓存能够很大程度上提升程序性能&#xff0c;本地缓存是直接从本地内存中读取&#xff0c;没有网络开销。 今天给大家介绍一个高性能的 Java 缓存库 – …

C++设计模式_26_设计模式总结

本篇为C++设计模式的总结课,此篇再回到原帮助大家梳理一下。 文章目录 1. 一个目标2. 两种手段3. 八大原则4. 重构技法5. 从封装变化角度对模式分类6. C++对象模型7. 关注变化点和稳定点8. 什么时候不用模式9. 经验之谈10. 设计模式成长之路1. 一个目标 管理变化,提高复用!…

认证授权--越权访问测试用例

漏洞名称 越权访问 漏洞描述 越权访问&#xff0c;这类漏洞是指应用在检查授权&#xff08;Authorization&#xff09;时存在纰漏&#xff0c;使得攻击者在获得低权限用户帐后后&#xff0c;可以利用一些方式绕过权限检查&#xff0c;访问或者操作到原本无权访问的高权限功能…

Angular组件生命周期详解

当 Angular 实例化组件类 并渲染组件视图及其子视图时&#xff0c;组件实例的生命周期就开始了。生命周期一直伴随着变更检测&#xff0c;Angular 会检查数据绑定属性何时发生变化&#xff0c;并按需更新视图和组件实例。当 Angular 销毁组件实例并从 DOM 中移除它渲染的模板时…

Ubuntu 使用 nginx 搭建 https 文件服务器

Ubuntu 使用 nginx 搭建 https 文件服务器 搭建步骤安装 nginx生成证书修改 config重启 nginx 搭建步骤 安装 nginx生成证书修改 config重启 nginx 安装 nginx apt 安装&#xff1a; sudo apt-get install nginx生成证书 使用 openssl 生成证书&#xff1a; 到对应的路径…

智能化的宠物喂食器解决方案

随着经济条件的不断改善&#xff0c;越来越多的家庭开始追求生活的便捷享受&#xff0c;于是喂食器开始走进千家万户&#xff0c;喂食器主要由储存食物的蓄食箱和传送食物的滑道构成&#xff0c;在外部框架的支撑下&#xff0c;一台喂食器才能正常进行工作&#xff0c;而宠物喂…

Day 50 动态规划 part16

Day 50 动态规划 part16 解题理解58372 2道题目 583. 两个字符串的删除操作 72. 编辑距离 解题理解 583 dp[i][j]&#xff1a;以i-1为结尾的字符串word1&#xff0c;和以j-1位结尾的字符串word2&#xff0c;想要达到相等&#xff0c;所需要删除元素的最少次数。 当word1[i -…

数据仓库与数据挖掘

1.数据挖掘的概念 数据挖掘&#xff08;Data mining&#xff09;&#xff0c;又译为资料探勘、数据采矿。它是数据库知识发现&#xff08;Knowledge-Discovery in Databases&#xff0c;KDD&#xff09;中的一个步骤。 数据挖掘一般是指从大量的数据中通过算法搜索隐藏于其中…

案例精选|聚铭综合日志分析系统夯实徐州公交集团网络环境基础

徐州市公共交通集团有限公司成立于1960年&#xff0c;现隶属徐州市交通控股集团有限公司&#xff0c;下辖7家运营公司&#xff0c;1家站务公司&#xff0c;8家直属单位及13个职能部室。运营车辆2364辆&#xff0c;线路177条&#xff0c;线路长度3560公里&#xff0c;日发送班次…

元素的水平居中和垂直几种方案

总结一下各种元素的水平居中和垂直居中方案。 水平居中&#xff1a; 1.行内元素水平居中 text-align: center 定义行内内容&#xff08;例如文字&#xff09;如何相对它的块父元素对齐;不仅可以让文字水平居中&#xff0c;还可以让行内元素水平居中 注意&#xff1a;给行内…

云尘-Node1 js代码

继续做题 拿到就是基本扫一下 nmap -sP 172.25.0.0/24 nmap -sV -sS -p- -v 172.25.0.13 然后顺便fscan扫一下咯 nmap: fscan: 还以为直接getshell了 老演员了 其实只是302跳转 所以我们无视 只有一个站 直接看就行了 扫出来了两个目录 但是没办法 都是要跳转 说明还是需要…

@Tag和@Operation标签失效问题。SpringDoc 2.2.0(OpenApi 3)和Spring Boot 3.1.1集成

问题 Tag和Operation标签失效 但是Schema标签有效 pom依赖 <!-- 接口文档--><!--引入openapi支持--><dependency><groupId>org.springdoc</groupId><artifactId>springdoc-openapi-starter-webmvc-ui</artifactId><vers…

51单片机电子钟闹钟温度LCD1602液晶显示设计( proteus仿真+程序+原理图+设计报告+讲解视频)

51单片机电子钟闹钟温度液晶显示设计( proteus仿真程序原理图设计报告讲解视频&#xff09; 1.主要功能&#xff1a;2.仿真3. 程序代码4. 原理图5. 设计报告6. 设计资料内容清单&&下载链接资料下载链接&#xff08;可点击&#xff09;&#xff1a; &#x1f31f;51单片…

Python+requests+exce接口自动化测试框架

一、接口自动化测试框架 二、工程目录 三、Excel测试用例设计 四、基础数据base 封装post/get&#xff1a;runmethod.py #!/usr/bin/env python3 # -*-coding:utf-8-*- # __author__: hunterimport requests import jsonclass RunMain:def send_get(self, url, data):res req…

linux安装Chrome跑web自动化

添加 Chrome 源&#xff1a; 打开终端并执行以下命令&#xff0c;将 Google Chrome 的 APT 源添加到系统&#xff1a; bashCopy code wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb 安装 Chrome&#xff1a; 执行以下命令来安装 Chrome&…

Hadoop YARN功能介绍--资源管理、调度任务

Hadoop YRAN介绍 YARN是一个通用资源管理系统平台和调度平台&#xff0c;可为上层应用提供统一的资源管理和 调度。 他的引入为集群在利用率、资源统一管理和数据共享等方面带来了好处。 1.资源管理系统 集群的硬件资源&#xff0c;和程序运行无关&#xff0c;比如内存、cu…

纯纯模拟的每日一题

环和杆 import java.util.HashMap; import java.util.HashSet; import java.util.Map; import java.util.Set;class Solution {public static void main(String[] args) {System.out.println(countPoints("B0R0G0R9R0B0G0"));}public static int countPoints(String…

Day 5 登录页及路由 (三) 基于axios的API调用

系列文章目录 本系列记录一下通过Abp搭建后端&#xff0c;VueElement UI Plus搭建前端&#xff0c;实现一个小型项目的过程。 Day 1 Vue 页面框架Day 2 Abp框架下&#xff0c;MySQL数据迁移时&#xff0c;添加表和字段注释Day 3 登录页以及路由 (一&#xff09;Day 4 登录页以…

Python——PyQt5以及Pycharm相关配置

PyQt5目录 常见的GUI框架一、安装pyqt5pip install pyqt5pip install pyqt5-tools二、Qt Designer三、在PyCharm中配置相关toolQtDisigner配置PyUIC配置PyRCC配置常见的GUI框架 Tkinter:Python内置的GUI框架,使用TCL实现,Python中内嵌了TCL解释器,使用它的时候不用安装额外…

viteePress搭建组件文档

目录 安装vitepress 目录结构 文档首页 Home Page Hero 部分 Features 部分 导航栏配置 logo 导航链接 socialLinks 侧边栏 基本使用 多个侧边栏 使用组件 在 markdown 中导入组件 在 theme 中注册全局组件 部署到Github Pages 前提 第一步 第二步 …