李林超博客
首页
归档
留言
友链
动态
关于
归档
留言
友链
动态
关于
首页
大数据
正文
IDEA编译运行Spark源码
Leefs
2023-04-04 PM
6166℃
2条
### 前言 **环境准备** + IDEA 2022.3 + Scala 2.12.15 + maven 3.6.3 + JDK 1.8 ### 一、下载Spark源码 **1.1 官网地址** + Spark官网地址:https://spark.apache.org/downloads.html + 本次下载的源码版本为:Spark 3.2.3 **1.2 下载之前版本Spark**  **1.3 选择Spark 3.2.3版本**  + 下载地址:https://archive.apache.org/dist/spark/ **1.4 下载源码文件** + 选择下载的源码文件**spark-3.2.3.tgz**  **1.5 将源码文件解压到对应目录** ### 二、IDEA插件安装 编译Spark源码需要安装Scala和antlr两个插件,如果在IDEA中没有搜索到antlr插件,需要从网上下载一个插件包,导入到idea中。 + **antlr4插件地址** ``` https://plugins.jetbrains.com/plugin/7358-antlr-v4/versions ```  ### 三、编译源码 **3.1 将源码导入到IDEA中** > File --> Open --> {spark dir}/pom.xml --> Open File or Project **3.2 修改Maven数据源为maven 3.6.3** **3.3 项目中引入Scala SDK** > File --> Project Structure...  > 选择Global Libraries --> 点击【+】 --> 选择 Scala SDK  > 选择 2.12.15版本的SDK  > 选择Choose Modules  此处如果本地安装有该版本的可以选择本地安装的。 **3.4 配置`ANTLR V4`插件** **(1)搜索文件** > 快捷键Ctrl + N --> 搜索【SqlBase.g4】  **(2)配置ANTLR**  **(3)设置Language为Java**  **(4)生成gen目录**  **(5)配置gen目录** > 选择gen目录 --> Mark Directory as --> Sources Root  **3.5 修改Scala Compile Server** > Settings --> Build,Execution,Deployment --> Compiler --> Scala Compiler --> Scala Compile Server  在编译之前这个配置一定要记得改,不然编译后在运行代码时会报错JDK兼容问题。 **3.6 修改编码格式** > 将编码格式修改为UTF-8  **3.7 编译代码**  ### 四、运行JavaWordCount **4.1 Spark示例代码中WordCount地址** ``` org.apache.spark.examples.JavaWordCount ``` **4.2 运行JavaWordCount** + VM options传参: ``` -Dspark.master=local ```  在Program arguments中传入要统计数据地址 **4.3 报错一** ``` object SqlBaseParser is not a member of package org.apache.spark.sql.catalyst.parser import org.apache.spark.sql.catalyst.parser.SqlBaseParser._ ```  **解决方法** 因为没有下载到antlr相关的包,尝试通过手动指定刷新进行下载   **4.4 报错二** ``` org.apache.spark.SparkException: Could not find spark-version-info.properties ``` **解决方法** + 本地编译不会生成该文件,自行在对应路径的resources中创建,并写入version参数 ``` version=3.2.3 ``` **4.5 报错三** ``` [ERROR] Failed to execute goal org.apache.maven.plugins:maven-antrun-plugin:1.8:run (default) on project spark-core_2.12: An Ant BuildException has occured: Execute failed: java.io.IOException: Cannot run program "bash" (in directory "D:\Codes\idea2023\spark-3.2.3-src\core"): CreateProcess error=2, 系统找不到指定的文件。 [ERROR] around Ant part ...
... @ 4:27 in D:\Codes\idea2023\spark-3.2.3-src\core\target\antrun\build-main.xml ``` Spark需要在bash中执行命令,可以借助git bash 进行编译。 **解决方法** 配置git环境变量,配置完环境变量后重启IDEA。重新打包就可以了。  **4.6 报错四** ``` Exception in thread “main” java.lang.NoSuchMethodError: java.nio.ByteBuffer.flip()Ljava/nio/ByteBuffer ``` 因为在高版本JDK上打包后放在低版本JRE环境上进行使用。 **解决方法** 修改Scala Compile Server中的JDK版本。
标签:
Spark
非特殊说明,本博所有文章均为博主原创。
如若转载,请注明出处:
https://www.lilinchao.com/archives/2847.html
上一篇
05.Sentinel热点key限流和系统规则
下一篇
Hbase之JavaAPI详细介绍
评论已关闭
栏目分类
随笔
2
Java
326
大数据
229
工具
31
其它
25
GO
47
NLP
8
标签云
nginx
RSA加解密
Spark
设计模式
人工智能
SpringCloudAlibaba
Spark Streaming
微服务
Elasticsearch
Livy
递归
队列
Scala
Azkaban
Git
DataWarehouse
Tomcat
数学
前端
Sentinel
并发线程
JavaSE
Http
锁
Docker
MySQL
Kibana
Spark RDD
Kafka
Zookeeper
友情链接
申请
范明明
庄严博客
Mx
陶小桃Blog
虫洞
评论已关闭