Windows下编译Spark2.3.3

目录

安装IDEA和Scala插件

IDEA中编译打包

IDEA中导入和编译

编译中报错

IDEA中编译打包

打包中报错

Git中编译打包

测试

本地调试脚本问题


IDEA编译:官网文档

编译打包:官网文档

 

安装IDEA和Scala插件

1. IDEA2019.01下载安装

2. 安装Scala插件

3. 安装Git并设置环境变量

 

IDEA中编译打包

IDEA中导入和编译

1. Spark源码下载:官网下载

2. 解压

3. 导入Spark源码

 

4. 选择Maven

 

5. 优选自动导包,选择自己安装的Java版本。环境设置里,选择Maven版本

 

 

6. 选择支持的组件,主要是Hadoop和Scala版本。这里的设置在后面编译时也可以修改。

 

7. 后面继续即可完成导入。

 

 

8. 导入后会自动下载依赖包。

 

9. 提示Python文件选择,确定就可以。

 

10. 下载完成后,Settings -> Build,Execution,Deployment -> Build Tools -> Maven -> Ranner -> VM option

填入Maven参数,可根据配置调高加快运行。

 -Xmx2g -XX:ReservedCodeCacheSize=512m 

注意:Spark2.4以上支持Scala2.12,所以如果编译Spark2.4以上版本,如果以前导入过Scala2.11,需要设置成2.12

 

11. 开始编译

选择Build -> Build Project即可开始编译,会报一堆过时信息,暂时忽略。

 

12. 编译完成,编译是为了方便阅读源码,要本地运行还需要打包。

 

编译中报错

1. 如果编译出错,基本都是jar没有更新完整。如:

Error:(34, 45) object SqlBaseParser is not a member of package org.apache.spark.sql.catalyst.parser

解决办法:

在Maven项目中,点击Generate Sources and Update Folders For All Projects 继续更新。

但是编译Spark2.4.3时,出现这个问题只是更新jar问题还是存在,解决是首先Maven里compile编译Spark Project Catalyst,再编译Spark。

 

2. 如果支持组件里加入了Hive-thriftserver,会报错:

Error:(52, 75) not found: value TCLIService

解决办法:

Project Structure - Modeules,将 hive-thriftserver 下的Java目录修改为Sources源文件夹。

 

3. 官网提示,如果选择支持Hive、Flume的这几个文件夹需要修改为Sources:

spark-hive:  v0.13.1/src/main/scala

spark-streaming-flume-sink:  target\scala-2.11\src_managed\main\compiled_avro

spark-catalyst:  target\scala-2.11\src_managed\main

 

IDEA中编译打包

按自己的需求更改源码后,或者要在本地运行Spark,需要编译打包。

Maven项目中,Spark Project Parent POM,Lifecycle - package,这里可以点击上面的图标跳过测试。

 

打包中报错

1. 刚运行就停止,出现以下错误

Process finished with exit code -1073741819 (0xC0000005)

可能是金山词霸开启了自动取词,关闭金山词霸重启IDEA。

还有另外可能,Settings - Build,Execution,Deployment - Python -Debugger - 取消PyQt compatible

2. 如果Git没有设置环境变量,会出现错误:

Cannot run program "bash" (in directory "D:\spark\spark-2.3.3\core"): CreateProcess error=2, 系统找不到指定的文件。

将Git环境变量设置好,重启IDEA。

 

Git中编译打包

Windows环境下,IDEA编译打包容易出错,所以很多时候会先在Git下编译打包,然后导入IDEA。

在Spark-2.3.3目录上启动Git Bash here,或者启动Git后切换到源码目录。

运行以下命令,内存可以根据配置调高,Hadoop版本按自己的版本修改。

export MAVEN_OPTS="-Xmx2g -XX:ReservedCodeCacheSize=512m"
./build/mvn -Pyarn -Phadoop-2.7 -Dhadoop.version=2.7.6 -DskipTests clean package

编译完成


测试

以SparkPageRank为例:

Menu -> Run -> Edit Configurations -> 选择 + -> Application

Main class搜索SparkPageRank

VM options: -Dspark.master=local 设置本地模式

classpath选择spark-examples

删除Build阶段,编译很慢

或者,可以从左边Project栏中 examples/src/main/scala/org/spark/examples/SparkPageRank 直接打开SparkPageRank代码,再设置只需要填入本地模式和参数、删除Build就可以。 

 

需要为spark-examples添加依赖包,即刚才编译的assembly下,target/scala2.11/jars,否则会报错:

Exception in thread "main" java.lang.NoClassDefFoundError: scala/collection/Seq

 

本地运行成功

 

本地调试Spark脚本问题

1. 本地运行spark启动脚本start-master。报错: Executable is not specified

1. 通过winutils.exe修改bin/sbin目录权限

2. 设置Configurations,可以通过快捷方式打开。设置解释器路径为 git 下 bash.exe。

 

2. windows下运行spark-shell报错问题

如果本地安装好Hadoop、java、scala、spark,配置好环境变量,windows的CMD下启动spark-sehll报错,检查D:\spark\spark-2.3.3\assembly\target\scala-2.11\jars\jline-2.12.1.jar,如果没有,到服务器Spark目录jars下或者下载放入即可。

jline-2.12.1.jar

3. 编译完pom.xml文件变量报红

<spark.test.home>${session.executionRootDirectory}</spark.test.home>
<SPARK_DIST_CLASSPATH>${test_classpath}</SPARK_DIST_CLASSPATH>

在<spark.test.home>${session.executionRootDirectory}</spark.test.home>上面加入参数即可

<session.executionRootDirectory>executionRootDirectory</session.executionRootDirectory>
<test_classpath>test_classpath</test_classpath>

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
首先,seatunnel2.3.3是一个用于构建和管理虚拟网络的解决方案,可以提供安全的远程访问和通信。以下是安装和部署Seatunnel2.3.3的步骤: 1. 确保您的系统满足要求:Seatunnel2.3.3支持的操作系统和硬件需求。请确保您的系统满足这些要求。 2. 下载Seatunnel2.3.3安装包:您可以从官方网站或其他可靠的来源下载Seatunnel2.3.3的安装包。 3. 解压安装包:将下载的安装包解压到您选择的目录。您可以使用命令行工具或压缩软件来完成这个步骤。 4. 配置Seatunnel2.3.3:打开Seatunnel2.3.3文件夹,找到配置文件。根据您的需求和网络环境,进行必要的配置,例如设置IP地址、端口号等。 5. 启动Seatunnel2.3.3:在命令行中进入Seatunnel2.3.3目录,运行启动命令。这将启动Seatunnel2.3.3并开始监听指定的端口。 6. 测试连接:使用其他设备或计算机,尝试远程连接到Seatunnel2.3.3提供的IP地址和端口。如果连接成功,您应该能够访问和管理虚拟网络。 7. 配置其他功能:根据您的需求,可以配置其他功能,如加密、认证和访问控制。 8. 管理和维护:根据需要进行管理和维护,例如添加、删除或修改虚拟网络的设置。 需要注意的是,这只是Seatunnel2.3.3的基本安装和部署步骤。具体的步骤可能因您的系统和环境而有所不同。在安装和部署过程中,确保详细阅读官方文档,并根据您的要求和需求进行相应的配置和操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

訾零

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值