spark编译中的坑

spark编译中难免会遇到坑,现在总结下目前遇到的坑

前置要求:
1)Building Spark using Maven requires Maven 3.3.9 or newer and Java 7+
2)export MAVEN_OPTS="-Xmx2g -XX:ReservedCodeCacheSize=512m"

2种方式编译spark

1.mvn编译命令:
./build/mvn -Pyarn -Phadoop-2.4 -Dhadoop.version=2.4.0 -DskipTests clean package
前提:需要对maven有一定的了解(pom.xml)


    2.2.0
    2.5.0
    ${hadoop.version}



  hadoop-2.6
 
    2.6.4
    0.9.3
    3.4.6
    2.6.0
 




./build/mvn -Pyarn -Phadoop-2.6 -Phive -Phive-thriftserver -Dhadoop.version=2.6.0-cdh5.7.0 -DskipTests clean package

2.#推荐使用
./dev/make-distribution.sh --name 2.6.0-cdh5.7.0 --tgz  -Pyarn -Phadoop-2.6 -Phive -Phive-thriftserver -Dhadoop.version=2.6.0-cdh5.7.0


编译完成后:
根据查看源码:spark-$VERSION-bin-$NAME.tgz

最后得到spark-2.1.0-bin-2.6.0-cdh5.7.0.tgz


坑一:实际用2方法会编译失败,错误提示:

failed to excute goal on project spark-launch_2.11
Could not resove dependencies for project org.apache.spark-launche
Could not find artifact org.apache.hadoop:hadoop-client:jar:2.6.0-cdh5.7.
in central (https://repo1.maven.org/maven2) -> [Help 1]


解决方法:

pom.xml添加:

cloudera
https://repository.cloudera.com/artifactory/cloudera-repos/

然后重新执行

./dev/make-distribution.sh --name 2.6.0-cdh5.7.0 --tgz  -Pyarn -Phadoop-2.6 -Phive -Phive-thriftserver -Dhadoop.version=2.6.0-cdh5.7.0



坑2:

要使用 Scala 2.10 编译的 Spark 软件包,请使用 -Dscala-2.10 属性:

./dev/change-scala-version.sh 2.10
./build/mvn -Pyarn -Dscala-2.10 -DskipTests clean package

请注意,Scala 2.10 的支持已经不再适用于 Spark 2.1.0 ,并且可能在 Spark 2.2.0 中被删除。


建议挂上v/p/n,这样子编译的速度会快很多

最后在目录里面就有spark-2.1.0-bin-2.6.0-cdh5.7.0.tgz这个包了





你可能感兴趣的:(大数据)