zoukankan      html  css  js  c++  java
  • spark编译

    为什么要对spark进行重新编译?

    由于我们所有的环境统一使用CDH软件版本,并且对应的CDH版本5.14.0这个版本,所以我们也直接下载使用对应的spark5.14.0版本即可。但是由于spark对应的5.14.0CDH版本的软件spark版本还停留在spark1.x,并且CDH版本的spark不支持sparkSQL的功能sparkSQL模块被阉割掉了)因为Cloudera公司认为有了impala就不需要再使用sparkSQL功能了,同时也是为了推广impala,所以直接阉割掉了sparkSQL模块。我们可以使用Apache的版本的spark来进行重新编译,使其对应我们的CDH5.14.0版本,并且将sparkSQL也能够支持

    spark编译官方文档说明

    http://spark.apache.org/docs/latest/building-spark.html#specifying-the-hadoop-version

    由于下载jar包太慢,如果需要自己编译,尽量使用资料当配套的maven仓库

    第一步:下载spark的源码

    我们这里选用spark2.2.0这个apache的版本,然后重新编译对应我们的CDH5.14.0版本

    https://archive.apache.org/dist/spark/spark-2.2.0/spark-2.2.0.tgz

    第二步:准备linux环境,安装必须软件

    linux安装maven-3.3.9及其以上版本

    maven必须使用3.3.9以上的版本进行编译我们这里选择使用3.5.0版本

    记得使用资料当中的maven仓库来进行编译

    配置settings.xml

    <localRepository>/export/servers/mvnrepository</localRepository>

    配置maven环境变量

    export MAVEN_HOME=/export/servers/apache-maven-3.5.0
    export MAVEN_OPTS="-Xms4096m -Xmx4096m"
    export PATH=:$MAVEN_HOME/bin:$PATH

    linux安装jdk1.8.141

    略.

    第三步解压spark源码,修改配置,准备编译

    上传源码压缩包并解压

    将spark的源码,上传到/export/softwares路径下面去

    解压源码到/export/servers路径下面去

    cd /export/softwares/
    
    tar -zxf spark-2.2.0.tgz  -C /export/servers/

    修改源码配置文件

    修改make-distribution.sh这个脚本

    cd /export/servers/spark-2.2.0/dev
    
    vim make-distribution.sh

    第三行添加以下内容

    VERSION=2.2.0
    
    SCALA_VERSION=2.11.8
    
    SPARK_HADOOP_VERSION=2.6.0-cdh5.14.0
    
    SPARK_HIVE=1

    注释掉以下这些内容

    #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 "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)

    添加maven编译库

    修改pom.xml

    cd /export/servers/spark-2.2.0
    vim pom.xml

    修改hadoopflume以及zookeeper的版本

    <hadoop.version>2.6.0-cdh5.14.0</hadoop.version>
    <flume.version>1.6.0-cdh5.14.0</flume.version>
    <zookeeper.version>3.4.5-cdh5.14.0</zookeeper.version>

    添加CDH以及阿里云的仓库地址

    <repository>
          <id>cloudera</id>
          <url>https://repository.cloudera.com/artifactory/cloudera-repos/</url>
        </repository>
     <repository>
                <id>aliyun</id>
                <name>aliyun</name>
                <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
                <layout>default</layout>
                <releases>
                    <enabled>true</enabled>
                    <updatePolicy>never</updatePolicy>
                </releases>
                <snapshots>
                    <enabled>true</enabled>
                    <updatePolicy>never</updatePolicy>
                </snapshots>
            </repository>

    添加pluginRepository

    <pluginRepository>
          <id>cloudera</id>
          <url>https://repository.cloudera.com/artifactory/cloudera-repos/</url>
         </pluginRepository>

    第四步:开始编译

    修改完成以上所有配置之后,执行以下命令准备开始编译

    cd /export/servers/spark-2.2.0/
    
    export MAVEN_OPTS="-Xmx4g -XX:ReservedCodeCacheSize=1024m"
    
    ./dev/make-distribution.sh --name 2.6.0-cdh5.14.0 --tgz  -Pyarn -Phadoop-2.6 -Phive -Phive-thriftserver -Dhadoop.version=2.6.0-cdh5.14.0 -DskipTests
    

      

  • 相关阅读:
    AngularJS入门教程
    mobile web retina 下 1px 边框解决方案
    Python字典猜解
    20145313exp9
    20145313张雪纯Exp8 Web基础
    20145313张雪纯exp7
    20145313张雪纯信息搜集与漏洞扫描
    计算机病毒静态分析2
    计算机病毒静态分析1
    20145313张雪纯MSF基础应用实验
  • 原文地址:https://www.cnblogs.com/alexzhang92/p/10952752.html
Copyright © 2011-2022 走看看