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

IDEA2022 配置spark开发环境

本人强烈建议在 linux环境下 学习 spark!!!

Introduction

  • Apache Spark是一个快速且通用的分布式计算引擎,可以在大规模数据集上进行高效的数据处理,包括数据转换、数据清洗、机器学习等。在本文中,我们将讨论如何在Windows上配置Spark开发环境,以及如何进行开发和测试等。

安装 Java 和 Spark

  • 为了在Windows上使用Spark开发环境,你需要先安装JavaSpark,并配置环境变量。你可以从Oracle官网下载最新版本的Java Development Kit(JDK),然后安装它。在安装完成后,你需要将Java的安装目录添加到系统环境变量中,以便Spark可以找到Java。接下来,你可以从Apache Spark官网下载适用于Windows的二进制文件,并解压到本地目录。
    env
    spark-shell

使用 Pyspark 或 Spark shell

  • 在下载Spark二进制文件后,你可以使用PysparkSpark shell在本地或集群上进行开发。Pyspark是一个Python API,可以使开发者用Python编写Spark应用程序。Spark shell是一个交互式环境,可以允许你使用ScalaJavaPython来调试和测试Spark代码。你可以在命令行中输入“pyspark”或“spark-shell”命令来启动相应的环境。

安装 Winutils 工具

  • Winutils是一个用于在Windows上运行Hadoop的工具,它提供了一些必要的组件和环境变量,以便Spark可以在Windows上运行。你需要从Apache官网下载Winutils二进制文件,并解压到本地目录。接下来,你需要将Winutils的安装目录添加到系统环境变量中,以便Spark可以找到它。
  • 切记:下载与自己hadoop对应的版本,并将原本hadoop/bin替换掉!

Conclusion

  • 在开发和部署Spark应用程序时,确保你了解Spark的最佳实践和安全性措施,以避免潜在的安全漏洞和性能问题。你可以使用一些第三方的库来扩展你的Spark开发环境,例如PyroliteSparkR。此外,你还可以考虑使用一些数据可视化工具来帮助你更好地了解和展示你的数据,例如TableauPowerBI等。最后,要时刻注意更新你的环境和依赖库,以保持最新的功能和性能优化。

使用集成开发环境(IDE)

  • 除了使用PysparkSpark shell,你还可以考虑使用一些集成开发环境(IDE)来提高开发效率,例如PyCharmIntelliJ IDEA等。这些IDE提供了更强大的代码编辑、自动补全和调试功能,可以帮助你更快地开发和测试Spark应用程序。此外,一些IDE还提供了一些有用的插件,可以帮助你更好地管理你的项目和依赖库。
    idea

安装下列插件:

datascala
maven

在集群上运行 Spark 应用程序

  • 在使用集群时,确保你有足够的资源来支持你的开发和测试,例如足够的内存和处理器。你可以使用一些集群管理工具,例如Apache HadoopApache Mesos或者Apache YARN等来管理和分配资源。在部署Spark应用程序时,你需要将你的应用程序打包成一个jar文件,并将其提交到集群中运行。你可以使用一些工具,例如Apache MavenSBT等来打包和管理你的应用程序。
  • 如果你已经在Windows上配置了Spark开发环境,可以考虑使用sbt来打包和管理你的应用程序,而不是使用maven打包和管理。这可以帮助你更好地管理你的依赖库和构建过程,并提高你的开发效率。另外,你还需要时刻注意更新你的环境和依赖库,以保持最新的功能和性能优化。
    附上:SBT的使用教程

创建mvn项目:

create

扩展你的 Spark 开发环境

  • 你可以使用一些第三方的库来扩展你的Spark开发环境,例如PyroliteSparkRPyrolite是一个Python库,可以让你在Python中使用Java类和对象,从而方便你与Java代码进行交互。SparkR是一个R语言的API,可以让你用R语言编写Spark应用程序。此外,你还可以使用一些数据可视化工具来帮助你更好地了解和展示你的数据,例如Tableau和PowerBI等。
    noticenotice

更新你的环境和依赖库

  • 最后,在开发Spark应用程序时,你需要时刻注意更新你的环境和依赖库,以保持最新的功能和性能优化。你可以使用一些工具,例如Apache Maven或SBT等来管理你的依赖库,并定期更新它们。此外,你还需要定期更新你的Spark版本和相关组件,以获得最新的功能和修复潜在的漏洞。

Bugs 修复

scalac: Error: Error compiling the sbt component 'compiler-interface-2.11.8-61.0'
sbt.internal.inc.CompileFailed: Error compiling the sbt component 'compiler-interface-2.11.8-61.0'at sbt.internal.inc.AnalyzingCompiler$.handleCompilationError$1(AnalyzingCompiler.scala:436)at sbt.internal.inc.AnalyzingCompiler$.$anonfun$compileSources$5(AnalyzingCompiler.scala:453)at sbt.internal.inc.AnalyzingCompiler$.$anonfun$compileSources$5$adapted(AnalyzingCompiler.scala:448)at sbt.io.IO$.withTemporaryDirectory(IO.scala:490)at sbt.io.IO$.withTemporaryDirectory(IO.scala:500)at sbt.internal.inc.AnalyzingCompiler$.$anonfun$compileSources$2(AnalyzingCompiler.scala:448)at sbt.internal.inc.AnalyzingCompiler$.$anonfun$compileSources$2$adapted(AnalyzingCompiler.scala:440)at sbt.io.IO$.withTemporaryDirectory(IO.scala:490)at sbt.io.IO$.withTemporaryDirectory(IO.scala:500)at sbt.internal.inc.AnalyzingCompiler$.compileSources(AnalyzingCompiler.scala:440)at org.jetbrains.jps.incremental.scala.local.CompilerFactoryImpl$.org$jetbrains$jps$incremental$scala$local$CompilerFactoryImpl$$getOrCompileInterfaceJar(CompilerFactoryImpl.scala:162)at org.jetbrains.jps.incremental.scala.local.CompilerFactoryImpl.$anonfun$getScalac$1(CompilerFactoryImpl.scala:58)at scala.Option.map(Option.scala:242)at org.jetbrains.jps.incremental.scala.local.CompilerFactoryImpl.getScalac(CompilerFactoryImpl.scala:51)at org.jetbrains.jps.incremental.scala.local.CompilerFactoryImpl.createCompiler(CompilerFactoryImpl.scala:20)at org.jetbrains.jps.incremental.scala.local.CachingFactory.$anonfun$createCompiler$3(CachingFactory.scala:21)at org.jetbrains.jps.incremental.scala.local.Cache.$anonfun$getOrUpdate$2(Cache.scala:17)at scala.Option.getOrElse(Option.scala:201)at org.jetbrains.jps.incremental.scala.local.Cache.getOrUpdate(Cache.scala:16)at org.jetbrains.jps.incremental.scala.local.CachingFactory.createCompiler(CachingFactory.scala:21)at org.jetbrains.jps.incremental.scala.local.LocalServer.doCompile(LocalServer.scala:40)at org.jetbrains.jps.incremental.scala.local.LocalServer.compile(LocalServer.scala:27)at org.jetbrains.jps.incremental.scala.remote.Main$.compileLogic(Main.scala:206)at org.jetbrains.jps.incremental.scala.remote.Main$.$anonfun$handleCommand$1(Main.scala:193)at org.jetbrains.jps.incremental.scala.remote.Main$.decorated$1(Main.scala:183)at org.jetbrains.jps.incremental.scala.remote.Main$.handleCommand(Main.scala:190)at org.jetbrains.jps.incremental.scala.remote.Main$.serverLogic(Main.scala:166)at org.jetbrains.jps.incremental.scala.remote.Main$.nailMain(Main.scala:106)at org.jetbrains.jps.incremental.scala.remote.Main.nailMain(Main.scala)at jdk.internal.reflect.GeneratedMethodAccessor3.invoke(Unknown Source)at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java.base/java.lang.reflect.Method.invoke(Method.java:568)at com.facebook.nailgun.NGSession.runImpl(NGSession.java:312)at com.facebook.nailgun.NGSession.run(NGSession.java:198)

解决办法
fix
检查此处配置!


Using Spark's default log4j profile: org/apache/spark/log4j-defaults.properties

SPARK_HOME/conf 目录下的 log4j.properties.template 重命名为 log4j.properties


23/03/02 18:29:33 INFO SparkContext: Created broadcast 0 from textFile at FrameDemo.scala:13
23/03/02 18:29:34 ERROR Shell: Failed to locate the winutils binary in the hadoop binary path
java.io.IOException: Could not locate executable null\bin\winutils.exe in the Hadoop binaries.at org.apache.hadoop.util.Shell.getQualifiedBinPath(Shell.java:278)at org.apache.hadoop.util.Shell.getWinUtilsPath(Shell.java:300)at org.apache.hadoop.util.Shell.<clinit>(Shell.java:293)at org.apache.hadoop.util.StringUtils.<clinit>(StringUtils.java:76)at org.apache.hadoop.mapred.FileInputFormat.setInputPaths(FileInputFormat.java:362)at <br>org.apache.spark.SparkContext$$anonfun$hadoopFile$1$$anonfun$33.apply(SparkContext.scala:1015)at org.apache.spark.SparkContext$$anonfun$hadoopFile$1$$anonfun$33.apply(SparkContext.scala:1015)at <br>org.apache.spark.rdd.HadoopRDD$$anonfun$getJobConf$6.apply(HadoopRDD.scala:176)at <br>org.apache.spark.rdd.HadoopRDD$$anonfun$getJobConf$6.apply(HadoopRDD.scala:176)<br>at scala.Option.map(Option.scala:145)<br>at org.apache.spark.rdd.HadoopRDD.getJobConf(HadoopRDD.scala:176)<br>at org.apache.spark.rdd.HadoopRDD.getPartitions(HadoopRDD.scala:195)<br>at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:239)<br>at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:237)<br>at scala.Option.getOrElse(Option.scala:120)<br>at org.apache.spark.rdd.RDD.partitions(RDD.scala:237)<br>at org.apache.spark.rdd.MapPartitionsRDD.getPartitions(MapPartitionsRDD.scala:35)<br>at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:239)<br>at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:237)<br>at scala.Option.getOrElse(Option.scala:120)<br>at org.apache.spark.rdd.RDD.partitions(RDD.scala:237)<br>at org.apache.spark.SparkContext.runJob(SparkContext.scala:1929)<br>at org.apache.spark.rdd.RDD.count(RDD.scala:1143)<br>at com.org.SparkDF.FrameDemo$.main(FrameDemo.scala:14)<br>at com.org.SparkDF.FrameDemo.main(FrameDemo.scala)<br>

以编程方式设置 HADOOP_HOME 环境变量:

System.setProperty(“hadoop.home.dir”, “full path to the folder with winutils”);

总结

  • 在本文中,我们讨论了如何在Windows上配置Spark开发环境,并介绍了如何使用PysparkSpark shell进行开发和测试。此外,我们还讨论了如何使用集成开发环境(IDE)和扩展你的Spark开发环境。最后,我们提醒你时刻注意更新你的环境和依赖库,以保持最新的功能和性能优化。如果你正在学习Spark开发,希望这篇文章能够帮助你更好地开始你的Spark开发之旅。

相关文章:

IDEA2022 配置spark开发环境

本人强烈建议在 linux环境下 学习 spark&#xff01;&#xff01;&#xff01; Introduction Apache Spark是一个快速且通用的分布式计算引擎&#xff0c;可以在大规模数据集上进行高效的数据处理&#xff0c;包括数据转换、数据清洗、机器学习等。在本文中&#xff0c;我们将…...

趣味答题竞赛小程序开发功能的详细介绍

随着人们对知识学习的要求越来越高&#xff0c;答题已经成为了一项重要的学习和考核方式。而为了让答题变得更加有趣和富有挑战性&#xff0c;我们推出了趣味答题竞赛小程序。下面&#xff0c;我们将详细介绍这个小程序的开发功能。 1.个人淘汰赛 在个人淘汰赛中&#xff0c;…...

【独家】华为OD机试提供C语言题解 - 获取最大软件版本号

最近更新的博客 华为od 2023 | 什么是华为od,od 薪资待遇,od机试题清单华为OD机试真题大全,用 Python 解华为机试题 | 机试宝典【华为OD机试】全流程解析+经验分享,题型分享,防作弊指南)华为od机试,独家整理 已参加机试人员的实战技巧文章目录 最近更新的博客使用说明获取…...

k8s编程operator实战之云编码平台——⑤项目完成、部署

文章目录1、效果展示2、保存用户状态和访问用户服务实现方案2.1 如何保存用户的状态2.1.1 解决保留安装的插件问题2.2 如何访问到用户在工作空间中启动的http服务2.2.1 code-server如何帮我们实现了用户程序的代理3、Operator功能实现3.1 使用KubeBuilder创建项目3.1.1 完善kin…...

C语言杂记(指针篇)

指针篇 指针就是地址&#xff0c;地址就是指针 指针变量就是存放地址的变量 *号只有定义的时候表示定义指针变量&#xff0c;其他表示从地址里面取内容 通过指针的方法使main函数中的data1和data2发生数据交换。 #include <stdio.h> void chang_data(int *data1,int *da…...

ES window 系统环境下连接问题

环境问题&#xff1a;&#xff08;我采用的版本是 elasticsearch-7.9.3&#xff09;注意 开始修正之前的配置&#xff1a;前提&#xff1a;elasticsearch.yml增加或者修正一下配置&#xff1a;xpack.security.enabled: truexpack.license.self_generated.type: basicxpack.secu…...

hexo部署github搭建个人博客 完整详细带图版(更新中)

文章目录0. 前置内容1. hexo创建个人博客2. GitHub创建仓库3. hexo部署到GitHub4. 常用命令newcleangenerateserverdeploy5. 添加插件5.1 主题5.2 博客基本信息5.3 创建新的菜单5.4 添加搜索功能5.5 添加阅读时间字数提示5.6 打赏功能5.7 切换主题5.8 添加不蒜子统计5.9 添加百…...

SpringBoot集成DruidDataSource实现监控 SQL 性能

一、快速入门 1.1 基本概念 我们都使用过连接池&#xff0c;比如C3P0、DBCP、hikari、Druid&#xff0c;虽然 HikariCP 的速度稍快&#xff0c;但 Druid 能够提供强大的监控和扩展功能。Druid DataSource 是阿里巴巴开发的号称为监控而生的数据库连接池&#xff0c;它不仅可以…...

maven镜像源及代理配置

在公司使用网络一般需要设置代理&#xff0c; 我在idea中创建springboot工程时&#xff0c;发现依赖下载不了&#xff0c;原以为只要浏览器设置代理&#xff0c;其他的网络访问都会走代理&#xff0c;经过查资料设置了以下几个地方后工程创建正常&#xff0c;在此记录给大家参考…...

【Java面试篇】Spring中@Transactional注解事务失效的常见场景

文章目录Transactional注解的失效场景☁️前言&#x1f340;前置知识&#x1f341;场景一&#xff1a;Transactional应用在非 public 修饰的方法上&#x1f341;场景二&#xff1a; propagation 属性设置错误&#x1f341;场景三&#xff1a;rollbackFor属性设置错误&#x1f3…...

【C】分配内存的函数

#include <stdlib.h>//分配所需的内存空间&#xff0c;并返回一个指向它的指针。 void *malloc(size_t size);//分配所需的内存空间&#xff0c;并返回一个指向它的指针。并且calloc负责把这块内存空间用字节0填//充&#xff0c;而malloc并不负责把分配的内存空间清零 vo…...

IDEA 断点总是进入class文件没有进入源文件解决

前言 idea 断点总是进入class文件没有进入源文件解决 问题 在源文件里打了断点&#xff0c;断点模式启动时却进入了class文件里的断点&#xff0c;而没有进入到java源文件里的断点。 比如&#xff1a;我在 A.java 里打了断点&#xff0c;调试时却进入到了 jar 包里的 A.clas…...

【flink】 flink入门教程demo 初识flink

文章目录通俗解释什么是flink及其应用场景flink处理流程及核心APIflink代码快速入门flink重要概念什么是flink&#xff1f; 刚接触这个词的同学 可能会觉得比较难懂&#xff0c;网上搜教程 也是一套一套的官话&#xff0c; 如果大家熟悉stream流&#xff0c;那或许会比较好理解…...

LeetCode 1487. 保证文件名唯一

【LetMeFly】1487.保证文件名唯一 力扣题目链接&#xff1a;https://leetcode.cn/problems/making-file-names-unique/ 给你一个长度为 n 的字符串数组 names 。你将会在文件系统中创建 n 个文件夹&#xff1a;在第 i 分钟&#xff0c;新建名为 names[i] 的文件夹。 由于两个…...

详细剖析|袋鼠云数栈前端框架Antd 3.x 升级 4.x 的踩坑之路

袋鼠云数栈从2016年发布第⼀个版本开始&#xff0c;就始终坚持着以技术为核⼼、安全为底线、提效为⽬标、中台为战略的思想&#xff0c;坚定不移地⾛国产化信创路线&#xff0c;不断推进产品功能迭代、技术创新、服务细化和性能升级。 在数栈过去的产品迭代中受限于当前组件的…...

【C++PrimerPlus】第三章 处理数据

文章目录前言内容目录3.1 简单变量3.1.2 变量名3.1.2 整形3.1.3 整形short,int,long,long long3.1.4 无符号类型3.1.5 选择整形类型3.1.6 整形字面值3.1.7 C如何确定常量的类型3.1.8 char类型&#xff1a;字符和小整数3.1.9 bool类型3.2 const修饰符3.3浮点数3.3.1 书写浮点数3…...

【基础算法】单链表的OJ练习(1) # 反转链表 # 合并两个有序链表 #

文章目录前言反转链表合并两个有序链表写在最后前言 上一章讲解了单链表 -> 传送门 <- &#xff0c;后面几章就对单链表进行一些简单的题目练习&#xff0c;目的是为了更好的理解单链表的实现以及加深对某些函数接口的熟练度。 本章带来了两个题目。一是反转链表&#x…...

离散数学笔记(1)命题逻辑

文章目录1.命题符号化及联结词基本概念本节题型2.命题公式及分类基本概念本节题型1.命题符号化及联结词 基本概念 命题的定义&#xff1a;能够判断真假的陈述句称为命题。 备注&#xff1a;感叹句、疑问句、祈使句和类似于xy>5之类真值不唯一的句子都不是命题。 真值的真假…...

IDEA Android 网格布局(GridLayout)示例(计算器界面布局)

网格布局(GridLayout&#xff09; 示例程序效果&#xff08;实现类似vivo手机自带计算器UI&#xff09; 真机和模拟器运行效果&#xff1a; 简述&#xff1a; GridLayout(网格布局)和TableLayout&#xff08;表格布局&#xff09;有类似的地方&#xff0c;通俗来讲可以理解为…...

【蓝桥杯嵌入式】拓展板之数码管显示

文章目录硬件电路连接方式函数实现文章福利硬件电路 通过上述原理图&#xff0c;可知拓展板上的数码管是一个共阴数码管&#xff0c;也就是说某段数码管接上高电平时&#xff0c;就会点亮。   上述原理图还给出一个提示&#xff0c;即&#xff1a;三个数码管分别与三个74HC59…...

基于Spring Boot的金融级钱包与支付系统设计与实现

1. 项目概述与核心价值 最近在折腾一个需要集成支付功能的项目&#xff0c;后台管理、用户体系都搭好了&#xff0c;就差一个稳定、灵活且能快速上线的钱包与支付模块。找了一圈开源方案&#xff0c;要么太重&#xff0c;耦合了太多业务逻辑&#xff1b;要么太轻&#xff0c;连…...

R语言数据导入全指南:从CSV到SPSS的底层原理与工程实践

1. 项目概述&#xff1a;为什么数据导入是R语言真正的第一道门槛刚接触R的人&#xff0c;十有八九会在读取第一个文件时卡住。不是报错“cannot open the connection”&#xff0c;就是加载出来全是NA&#xff0c;再或者干脆卡死在进度条不动——这根本不是你手生&#xff0c;而…...

ROFL Player终极指南:英雄联盟回放分析工具完整使用教程

ROFL Player终极指南&#xff1a;英雄联盟回放分析工具完整使用教程 【免费下载链接】ROFL-Player (No longer supported) One stop shop utility for viewing League of Legends replays! 项目地址: https://gitcode.com/gh_mirrors/ro/ROFL-Player 还在为英雄联盟回放…...

环境配置与基础教程:多机多卡分布式训练实战:基于 SLURM 集群调度 YOLOv11,大幅缩短训练周期

一、为什么分布式训练是 YOLOv11 落地的“必经之路” 1.1 单卡训练的困境 如果你正在使用 YOLOv11 做目标检测,那么你一定遇到过这个场景:数据集有十万张以上的图片,模型选的是 YOLOv11x,单张 A100 跑一个 epoch 要 40 分钟,完整训练 300 个 epoch 需要整整 8 天。更让人…...

AwesomeQRCode源码阅读笔记:深入理解二维码渲染核心技术

AwesomeQRCode源码阅读笔记&#xff1a;深入理解二维码渲染核心技术 【免费下载链接】AwesomeQRCode An awesome QR code generator for Android. 项目地址: https://gitcode.com/gh_mirrors/aw/AwesomeQRCode 想要为你的Android应用添加炫酷的二维码生成功能吗&#xf…...

Stryker.NET在CI/CD中的应用:如何在DevOps流水线中集成变异测试

Stryker.NET在CI/CD中的应用&#xff1a;如何在DevOps流水线中集成变异测试 【免费下载链接】stryker-net Mutation testing for .NET core and .NET framework! 项目地址: https://gitcode.com/gh_mirrors/st/stryker-net Stryker.NET是一款强大的.NET变异测试工具&…...

PCI、PCIe与InfiniBand接口技术对比与应用解析

1. 计算机接口技术演进背景在服务器和PC硬件架构中&#xff0c;I/O接口技术始终是决定系统性能的关键因素之一。作为从业15年的系统架构师&#xff0c;我见证了从传统PCI总线到现代高速互连技术的完整演进历程。这种演进并非简单的替代关系&#xff0c;而是针对不同应用场景的技…...

基于h2oGPT构建本地私有化知识库:从RAG原理到实战部署

1. 项目概述&#xff1a;一个真正私密的本地文档智能助手 如果你和我一样&#xff0c;对把敏感的工作文档、个人笔记或者内部资料上传到云端总有些提心吊胆&#xff0c;但又眼馋ChatGPT那种强大的文档理解和对话能力&#xff0c;那么h2oGPT的出现&#xff0c;可以说是解了我们…...

如何快速掌握FunClip:阿里开源AI视频剪辑的完整指南

如何快速掌握FunClip&#xff1a;阿里开源AI视频剪辑的完整指南 【免费下载链接】FunClip Open-source, accurate and easy-to-use video speech recognition & clipping tool, LLM based AI clipping intergrated. 项目地址: https://gitcode.com/GitHub_Trending/fu/Fu…...

AI新闻链接汇总(2026-05-10)

AI新闻链接汇总&#xff08;2026-05-10&#xff09; 一、斯坦福大学发布《2026年人工智能指数报告》&#xff1a;美国领跑模型开发&#xff0c;中国主导机器人部署 斯坦福大学以人为本人工智能研究院于2026年4月13日正式发布《2026年人工智能指数报告》&#xff0c;这份长达4…...