IDEA2022 配置spark开发环境

article/2025/10/9 3:00:18

本人强烈建议在 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开发之旅。

http://chatgpt.dhexx.cn/article/8EUSqErK.shtml

相关文章

spark开发教程

spark开发教程 目录 spark开发教程前言一、初始化spark二、获取数据源1.创建数据结构2.连接外部数据textfilejdbchive 3. 数据处理rdd算子transform算子action算子 dataframe操作dataset操作 4. 共享变量5.写入数据 总结 前言 spark开发主要的基于RDD、Datasets、DataFrame、s…

Spark 开发总结

Spark 开发总结 前言spark UISpark API FunctionWindow.partitionBy Spark udfSpark 中禁止使用returnSpark NullPointExceptionSpark Shuffle FetchFailedExceptionspark 数据倾斜 前言 大数据开发过程中把自己积累的关于Spark的使用方法记录下来&#xff0c;便于不断的回顾和…

Spark 开发入门

文章目录 Spark是什么DAG有向无环图 spark环境搭建Spark开发pyspark使用pythonSpark初始化创建RDD数据的读取和保存文本文件Json文件 RDD的转换操作RDD的行动操作集合操作mysql读取 Spark是什么 整个Hadoop生态圈分为分布式文件系统HDFS、计算框架MapReduce以及资源调度框架Ya…

Spark开发——Spark简介及入门

目录 什么是Spark&#xff1f; Spark有哪些特点和优势 1.计算速度 2.易用性 3.通用性 4.兼容性 Spark架构 Spark基本概念 Spark结构设计 使用Scala语言实现Spark本地词频统计 什么是Spark&#xff1f; Spark它是一个用于大规模数据处理的实时计算引擎。 Spark有哪些…

Spark开发指南

目 录 6 Spark开发指南 6.1 概述 6.2 开发环境准备 6.2.1 Java开发环境准备 6.2.2 Scala开发环境准备 6.3 开发指引 6.4 Java代码样例 6.5 Scala代码样例 6.6 对外接口 6.6.1 Java API 6.6.2 Scala API 6.6.3 Python API 6.6.4 Web UI 6.6.5 JDBC 6 Spark开发指南…

PIX飞控电流计设置

在 测量电池电压 一栏输入用电压表测得的电池电压&#xff0c;保存。

pixhawk飞控接口含义

官方文档&#xff1a;https://docs.px4.io/v1.9.0/en/flight_controller/pixhawk.html 1——spektrum DSM receiver2&#xff0c;3——远程通信口&#xff0c;接数传4——串口5——SPI6——电源口7——飞控的安全开关&#xff0c;长按启动解锁8——蜂鸣器9——串口10——GPS11—…

PIX飞控不能解锁问题总结

摘自&#xff1a;https://baijiahao.baidu.com/s?id1640767431717207814&wfrspider&forpc PIX飞控不能解锁问题总结 给力蹦小勇士 发布时间&#xff1a;19-08-0222:55 一、飞控故障或没校准 在地面站里飞行数据菜单查看报错。假如加速度计和地磁没校准&#xff0c;…

富斯i6航模遥控器配apm(pix)飞控mission planner疑难杂症解决策略(上)

提示&#xff1a;仅适用于新手入门参考。 目录 前言 在missionplanner调试遥控器出现信号异常&#xff0c;飞行调试出现操作异常如何处理&#xff0c;在硬件无损的前提下&#xff0c;如何进行简易调试&#xff0c;下文将介绍入门的处理办法。 一、切换飞行模式时突然出现油门…

Mission Planner初学者安装调试教程指南(APM或PIX飞控)3——连接与烧录

Mission Planner初学者安装调试教程指南&#xff08;APM或PIX飞控&#xff09;3——连接与烧录 目录 1.连接方式 2.烧录固件 1.连接方式 通常可以使用micro USB数据线直接连接APM&#xff08;pixhawk&#xff09;&#xff0c;将数据线一头接入电脑usb口&#xff0c;另一头接…

pixhawk飞控板的硬件构成

具体介绍 pixhawk是一款高性能的飞控板&#xff0c;它能用于固定翼&#xff0c;多旋翼&#xff0c;直升机&#xff0c;小车等多种应用。它能被用于研究用&#xff0c;玩耍用&#xff0c;甚至直接用于做产品。这款飞控其实是将PX4FMU和PX4IO做了一个封装&#xff0c;将两部分PC…

Mission Planner初学者安装调试教程指南(APM或PIX飞控)5——规划航点航线

目录 1.卫星地图上规划普通航点 2.曲线航点 3.规划多边形区域 4.环形航线 5. 曲线航线 6.设置网格 7.特殊航线 学习地面站&#xff0c;不可避免要触及英文指令。通过经常使用日常积累&#xff0c;可以熟练掌握各个指令的含义。serve the people heart and soul&#xff0…

OPENMV结合PIX飞控实现四轴定点 循迹 2017电赛

本文章代码已上传Github&#xff1a; https://github.com/Kevincoooool/2017_Follow 有兴趣的可以加个STAR 自从17年国赛之后&#xff0c;自己做了openmv&#xff0c;加了很多群&#xff0c;也了解到很多人都在想着这个题。 第一版 第二版 第三版 我们做国赛的时候实现了全…

飞行控制器Pixhawk简介

作者&#xff1a;华清远见讲师 Pixhawk是一款由PX4开源项目设计并由3DR公司制造生产的高级自动驾驶仪系统。其前身是APM&#xff0c;由于APM的处理器已经接近满负荷&#xff0c;没有办法满足更复杂的运算处理&#xff0c;所以硬件厂商采用了目前最新标准的32位ARM处理器&#x…

pixhawk飞控解锁方法

1. pixhawk飞控解锁方法是&#xff1a;油门(throttl)拉到最低,偏航角&#xff08;yaw&#xff09;拉到最右边。

如何用开源飞控PIXHAWK进行二次开发?

著作权归作者所有。 商业转载请联系作者获得授权&#xff0c;非商业转载请注明出处。 作者&#xff1a;我是肉包子 链接&#xff1a;http://www.zhihu.com/question/38874663/answer/84239995 来源&#xff1a;知乎 以下所描述的都是针对px4原生固件&#xff0c;此外&#xff0…

APM和PIX飞控日志分析入门贴

我们在飞行中&#xff0c;经常会碰到各种各样的问题&#xff0c;经常有模友很纳闷&#xff0c;为什么我的飞机会这样那样的问题&#xff0c;为什么我的飞机会炸机&#xff0c;各种问题得不到答案是一件非常不爽的问题&#xff0c;在APM和PIX飞控中&#xff0c;都有记录我们整个…

开源飞控APM与PIXHAWK

一 APM 官网地址&#xff1a;http://ardupilot.org/ APM&#xff08;ArduPilotMega&#xff09; 是在2007年由DIY无人机社区&#xff08;DIY Drones&#xff09;推出的飞控产品&#xff0c;是当今最为成熟的开源硬件项目。APM基于Arduino的开源平台&#xff0c;对多处硬件做出了…

Mission Planner初学者安装调试教程指南(APM或PIX飞控)1——下载与版本

目录 1.概述 2.下载与版本 3.关于 ArduPilot wquav 1.概述 Misson Planner简称MP&#xff0c;图标为黑底大写白色字体MP加一个绿色固定翼飞机&#xff0c;是可以调试APM或者PIX飞控的地面站软件&#xff0c;可以运行在windows系统和Linux系统&#xff08;非直接安装&#x…

Pix4飞控常见问题解决方法(二)

一、无法解锁&#xff08;黄灯闪烁&#xff09; 无法解锁的原因会有多种&#xff0c;请按照如下步骤进行检查&#xff1a; 1、初始设置是否全部完成 a、机架类型选择是否正确&#xff0c;或者你根本就没有选择&#xff1f; 注意&#xff0c;新版本的飞控固件在默认参数情况下&…