转自:http://blog.csdn.net/asongoficeandfire/article/details/23223561
系统环境:
windows 7
apache maven 3.1.0
scala 2.10
jdk 1.7.0_40
spark 0.9.0-incubating
引言
如今JVM系的开源项目均引入了使用maven进行版本管理,Spark也不例外,今天就使用maven来对Spark进行构建。
Spark建议使用Maven3系列进行编译,并且要求Java版本最低为1.6。
编译
Maven内存配置
Spark编译可能比其他项目更耗内存,建议为maven配置较大内存,推荐的内存为2g,最大永久区内存为512m,可以使用一下命令来配置:
-
exportMAVEN_OPTS="-Xmx2g-XX:MaxPermSize=512M-XX:ReservedCodeCacheSize=512m"
如果你使用的是windows系统,也可以在mvn.bat中找到:
-
@REMsetMAVEN_OPTS=-Xdebug-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
在其后添加 :
-
-Xmx2g-XX:MaxPermSize=512M-XX:ReservedCodeCacheSize=512m
如果内存配置不够大,可能在构建时报如下错误:
-
[INFO]Compiling203Scalasourcesand9Javasourcesto/Users/me/Development/spark/core/target/scala-2.10/classes...
-
[ERROR]PermGenspace->[Help1]
-
-
[INFO]Compiling203Scalasourcesand9Javasourcesto/Users/me/Development/spark/core/target/scala-2.10/classes...
-
[ERROR]Javaheapspace->[Help1]
指定Hadoop版本
Spark依赖于HDFS存储数据,而HDFS使用的protobuf版本又不一致,所以应该为我们所构建的Spark指定对应的HDFS版本,这个版本需要和你集群中所使用的HDFS版本一致。Spark默认对应的Hadoop版本为1.0.4,你可以在maven命令中使用-Dhadoop.version=${your.version}来指定你的版本号。
如果你使用的是Hadoop2.x,0.23.x版本或者Cloudera的CDH MRv2,那么需要在编译命令中使用-Pyarn-alpha或者-Pyarn来指定。另外,还需要指定yarn的版本,同样使用-Dyarn.version=${your.version}完成。
注意:以上配置也可以通过修改pom.xml文件实现,方法是在pom.xml文件里找到-P之后对应的profile标签,修改hadoop.version和yarn.version对应的value即可。
命令行配置的一个完整示例如下:
-
mvn-Pyarn-Dhadoop.version=2.2.0-Dyarn.version=2.2.0-DskipTestscleanpackage
指定SCALA_HOME
Spark编译需要调用scalac,你需要在命令行中引入SCALA_HOME变量,或者将其添加系统变量中(添加方法再次不赘述)。
如果编译完毕,前台输出如下字样,说明编译成功。
-
[INFO]------------------------------------------------------------------------
-
[INFO]ReactorSummary:
-
[INFO]
-
[INFO]SparkProjectParentPOM..........................SUCCESS[9.014s]
-
[INFO]SparkProjectCore................................SUCCESS[10:12.198s]
-
[INFO]SparkProjectBagel...............................SUCCESS[7:22.175s]
-
[INFO]SparkProjectGraphX..............................SUCCESS[2:20.119s]
-
[INFO]SparkProjectMLLibrary..........................SUCCESS[3:22.775s]
-
[INFO]SparkProjectStreaming...........................SUCCESS[2:35.244s]
-
[INFO]SparkProjectTools...............................SUCCESS[23.091s]
-
[INFO]SparkProjectREPL................................SUCCESS[1:06.345s]
-
[INFO]SparkProjectYARNParentPOM.....................SUCCESS[4:01.606s]
-
[INFO]SparkProjectYARNStableAPI.....................SUCCESS[1:01.500s]
-
[INFO]SparkProjectAssembly............................SUCCESS[3:24.366s]
-
[INFO]SparkProjectExternalTwitter....................SUCCESS[37.682s]
-
[INFO]SparkProjectExternalKafka......................SUCCESS[44.005s]
-
[INFO]SparkProjectExternalFlume......................SUCCESS[37.477s]
-
[INFO]SparkProjectExternalZeroMQ.....................SUCCESS[41.711s]
-
[INFO]SparkProjectExternalMQTT.......................SUCCESS[34.665s]
-
[INFO]SparkProjectExamples............................SUCCESS[2:48.186s]
-
[INFO]------------------------------------------------------------------------
-
[INFO]BUILDSUCCESS
-
[INFO]------------------------------------------------------------------------
-
[INFO]Totaltime:42:03.562s
-
[INFO]Finishedat:TueApr0823:57:31CST2014
-
[INFO]FinalMemory:60M/247M
-
[INFO]------------------------------------------------------------------------
纯净版编译
使用-Pyarn或者-Pyarn-alpha编译出来的是一个完整的包,存放在./assembly/target/scala-2.10下,这个包包含了Spark编译得到的jar包,以及编译过程中所依赖的包。
如果你只想得到Spark的包,而不需要其依赖的Hadoop等,那么可以使用-Pbigtop-dist这个选项指定纯净版的profile(在./assembly/pom.xml中标识)。
编译得到Spark的jar包之后,你就可以调用其API进行二次开发啦!
参考:
http://spark.apache.org/docs/latest/building-with-maven.html
http://hi.baidu.com/startgo123/item/9b95dc0af3ae8c3ca3332aa4
分享到:
相关推荐
自己学习并应用Spark一段时间后,由于需要改源代码,就研究了下怎么编译源码,成功编译后,记录下了编译...另外编译使用的工具可以是maven,也可以是sbt,我都研究过了,两种编译方法都予以描述,可根据自身喜好选用。
Spark是使用构建的。 要构建Spark及其示例程序,请运行: build/mvn -DskipTests clean package (如果您下载了预构建的包,则无需执行此操作。)可从项目站点的处获得更多详细的文档。 交互式Scala外壳 开始使用...
cdh环境中的spark不支持sparksql,现必须用到sparksql编译spark源码获取spark-assembly包替换即可完成
doris-1.1.3源码编译broker-maven依赖包repository
该项目可直接导入eclipse使用,编译后无错误,是学习java+spark编程的快速方法
windows环境编译spark2.4.4源码环境要求环境安装源码下载源码编译注意事项后记 环境要求 操作系统环境:Windows 10(Windows7、Windows8亦可) Java版本: jdk1.8 Scala版本:2.11.0 Maven版本:3.5.4 Git版本:版本...
Spark1.6.1源码包,maven工程导入
Eclipse+Maven+Scala Project+Spark | 编译并打包wordcount程序 学习用Eclipse+Maven来构建并打包一个简单的单词统计的例程。 第一步 在EclipseIDE中安装Scala插件 在Eclipse中安装Scala插件 第二步 创建Scala ...
则在运行转换之前删除输出文件夹作者使用maven编译: mvn package跑步: java -cp "HdfsCsvConverter.jar:/path/to/spark-assembly-1.1.1-hadoop2.4.0.jar" \ hdfs.csvconvert.Converter \ [-master spark://xxxxx:...
spark的底层源码,版本2.1.1,可以解压后直接使用idea打开,特别注意:里面包含大量的maven依赖,初始加载时,时间较长。
内容概要:由于cdh6.3.2的spark版本为2.4.0,并且spark-sql被阉割,现基于cdh6.3.2,scala2.12.0,java1.8,maven3.6.3,,对spark-3.2.2源码进行编译 应用:该资源可用于cdh6.3.2集群配置spark客户端,用于spark-sql
修改“MainExample.scala”类编写您的 Spark 代码,然后使用以下命令编译项目: mvn clean package 在/target文件夹中,您将找到名为spark-scala-maven-project-0.0.1-SNAPSHOT-jar-with-depencencies.jar的结果...
使用maven重新编译spark2.3.1源码,用以实现hive on spark
在centos7中编译成功,废了九牛二虎之力,里面加入了阿里云的maven仓库,无需向别人一样需要编译好几天。jar包下载特别快,编译环境需要maven3.3.9,scala2.10,...maven编译需要的jar包,直接解压的mavenrepository目录
带编译所需的maven库,spark2.3.3源码基于hadoop2.6.0-cdh-5.15.2进行重新编译
2)使用 1、git clone --depth=1 https://github.com/mabin001/spark.git 2、cd spark 3、git fetch --unshallow 2、编译 mvn -DskipTests clean package 遇到问题1: 编译失败如下,Failed to execute goal org....
centos7编译spark2.3v2生成安装包,需要hadoop、java8、maven环境
用Maven编译项目。 $ mvn clean package -Dspark.version=1.4.0 -Dhadoop.version=2.2.0 跑步 笔记本 这些说明是临时的,直到下一版Spark Notebook为止。 1。 打开示例笔记本。 dl4j-spark-ml软件包将自动加载。 ...
使用maven重新编译spark2.3.1源码,用以实现hive on spark
用Maven编译项目。 $ mvn clean package -Dspark.version=1.4.0 -Dhadoop.version=2.2.0 跑步 笔记本 这些说明是临时的,直到下一版Spark Notebook为止。 1。 打开示例笔记本。 dl4j-spark-ml软件包将自动加载。 ...