IDEA编译Spark源码

Git bash
进入Spark根目录

mvn -DskipTests clean package

打开IDEA,导入Spark源码

1. IDEA导入Spark源码
导入源码之后,在编译之前需要做一些工作:

  • 设定JDK
    File-》Project Structure -》SDKs, 选择jdk1.8

  • 设定scala
    File-》Setting -》Plugins,输入scala ,单击install即可。
    在这里插入图片描述

  • pom.xml
    将不关注的module进行注释掉
    provided改成

<scope>compile</scope>
  • Build project

2. 运行demo
进入example目录,执行sparkPi.scala,.
如果执行以下错误: Error while locating file spark-version-info.properties.

解决办法如下:
File -> Project Structure -> Modules -> spark-examples_2.11 -> Dependencies 添加依赖 jars -> {spark dir}/spark/assembly/target/scala-2.11/jars/

3. 扩展

1)通常运行应用时,报下列错误:

java.lang.NoClassDefFoundError: org/apache/spark/sql/hive/HiveContext

这是因为spark源码没有下载对hive组件的支持,如果需要spark 支持hive的应用,编译的时候需要添加以下命令:

mvn -Pyarn -Phadoop-2.7 -Dhadoop.version=2.7.5 -Phive -Phive-thriftserver -DskipTests

需要对其重新编译。如果是集群模式,成功编译后的spark源码发送到其他节点上。

scp -r -q ./spark-2.2.3-src slave1:~/spark-2.2.3-src & scp -r -q ./spark-2.2.3-src slave2:~/spark-2.2.3-src & scp -r -q ./spark-2.2.3-src slave3:~/apps/spark-2.2.3-src

接着重新运行应用即可。

  1. 设置spark cache操作的内存占比,除了配置文件中设置,IDEA中可以通过set方法来操作,具体如下:
SparkConf SparkConf = new SparkConf()						.set(“Spark.storage.memoryFraction”, “0.7”)  // 默认是0.6(60%)

3)运行spark example报错如下:
Caused by: java.lang.ClassNotFoundException: scala.collection.Seq
解决办法如下:
在这里插入图片描述
详细修改如下:
在这里插入图片描述

参考:
【1】https://blog.csdn.net/ggz631047367/article/details/53811213

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值