您的位置:首页 > 其它

如何源码编译对应CDH版本的Spark2.X

2017-10-10 19:52 337 查看
前置要求:

1)Building Spark using Maven requires Maven 3.3.9 or newer and Java 7+

2)export MAVEN_OPTS="-Xmx2g -XX:ReservedCodeCacheSize=512m"

mvn编译命令:

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

<properties>

    <hadoop.version>2.2.0</hadoop.version>

    <yarn.version>${hadoop.version}</yarn.version>

</properties>

<profile>

  <id>hadoop-2.6</id>

  <properties>

    <hadoop.version>2.6.4</hadoop.version>

    <jets3t.version>0.9.3</jets3t.version>

    <zookeeper.version>3.4.6</zookeeper.version>

    <curator.version>2.6.0</curator.version>

  </properties>

</profile>

###分析 -D表示version -P 表示profile 

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

#推荐使用

    <protobuf.version>2.5.0</protobuf.version>

./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

注释:编译的时候修改make-distribution.sh 在120行  注释掉这些代码 这样可以加快编译速度

#VERSION=$("$MVN" help:evaluate -Dexpression=project.version $@ 2>/dev/null | grep -v "INFO" | tail -n 1)

#SCALA_VERSION=$("$MVN" help:evaluate -Dexpression=scala.binary.version $@ 2>/dev/null\

#    | grep -v "I#iNFO"\

#    | tail -n 1)

#SPARK_HADOOP_VERSION=$("$MVN" help:evaluate -Dexpression=hadoop.version $@ 2>/dev/null\

#    | grep -v "INFO"\

#    | tail -n 1)

#SPARK_HIVE=$("$MVN" help:evaluate -Dexpression=project.activeProfiles -pl sql/hive $@ 2>/dev/null\

#    | grep -v "INFO"\

#    | fgrep --count "<id>hive</id>";\

    # Reset exit status to 0, otherwise the script stops here if the last grep finds nothing\

    # because we use "set -o pipefail"

#    echo -n)

#

编译完成后:

spark-$VERSION-bin-$NAME.tgz

spark-2.1.0-bin-2.6.0-cdh5.7.0.tgz

编译常见的问题:

1。创建失败 修改pom.xml添加clouder仓库,搜索repo修改

2.如果jdk是7的话需要修改MAVEN_OPTS

3.编译Scala是2.10之前 ./dev/change-scala-version.sh 2.10

4.如果已经被缓存了 删除报错的JAR包,xxx.lastUpdated 或者编译命令加一个参数 -U

编译线上对应版本的spark:

./dev/make-distribution.sh --name 2.6.0-cdh5.11.0 --tgz  -Pyarn -Phadoop-2.6 -Phive -Phive-thriftserver -Dhadoop.version=2.6.0-cdh5.11.0 -Phbase-1.2 -Dhbase.version=1.2.0-cdh5.11.0

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

./dev/make-distribution.sh --name 2.6.0-cdh5.11.0 --tgz  -Pyarn -Phadoop-2.6 -Phive -Phive-thriftserver -Dhadoop.version=2.6.0-cdh5.11.0 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: