zoukankan      html  css  js  c++  java
  • [Spark]-编译(2.3.1)&部署(YARN-Cluster)

    1.基础环境准备

      Spark 2.3.1 编译需要 Maven 3.3.9 和 Java 8+ (从官网我们得知Java7已经在Spark2.2.0开始就已经不支持了),这里已提前准备,跳过.

      另

        Maven需要将内存使用调高(防止编译过程内存超标报错)  

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

        Spark编译时最好把Git装上.(方便后面做部署包)

    2.Scala准备

      Spark本身使用Scala写的,也需要Scala语言的支持.Spark 2.3.1需要的Scala版本是 2.11+,这里我选择的是2.11.8

      官网下载: https://downloads.lightbend.com/scala/2.11.8/scala-2.11.8.tgz

      解压 # tar -xzvf ~/software/scala-2.11.8.tgz -C ~/app

      写入环境变量:

        export SCALA_HOME=/home/hadoop/app/scala-2.11.8

        export PATH=$SCALA_HOME/bin:$PATH

    3.编译    

      3.1 下载Spark源码

        这里选择的当前最新版  spark-2.3.1.tgz

        解压 # tar -xzvf ~/source/spark-2.3.1.tgz -C ~/source/

      3.2  修改Spark pom.xml 

        因为Hadoop我使用的CDH版,所以必须在pom.xml中加入该配置节才能正确下载Hadoop.CDH Jar包 

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

      3.3 调制版本参数 

        Spark本身使用Maven进行编译的,所以必然有一个pom.xml,详细描述了项目的组织过程   

        从Spark的pom.xml上看,它本身是与Hadoop2.6.5一起的.这里我需要修改下,因为我正在使用的Hadoop版本是 hadoop-2.6.0-cdh5.7.0

        这里就可以看出自己编译的好处了.紧密贴合自己需要的版本.

        我自己的实际情况如下:

          hadoop.version=hadoop-2.6.0-cdh5.7.0 (我的YARN与Hadoop版本相同)

          hive.version=hive-1.1.0-cdh5.7.0

        所以设置Maven编译命令应该如下:

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

        但更好是使用这个,Spark提供的打包Shell,这个Shell可以编译打包成彷如官网下载的部署包一样

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

        开始编译打包吧,第一次编译耗时比较久,建议科学上网,最后的结果如下:

          

    4.部署

      Spark有三种部署模式,这里Spark选择为YARN-cluster模式

      部署包拷贝到software,这里是我统一放安装的包的地方 # cp ./spark-2.3.1-bin-2.6.0-cdh5.7.0.tgz ~/software/

      解压: # tar -xzvf ~/software/spark-2.3.1-bin-2.6.0-cdh5.7.0.tgz -C ~/app

      配置环境变量

        export HADOOP_CONF_DIR=/home/hadoop/app/hadoop-2.6.0-cdh5.7.0/etc/hadoop

        export SPARK_HOME=/home/hadoop/app/spark-2.3.1-bin-2.6.0-cdh5.7.0

        export PATH=$SPARK_HOME/bin:$PATH

      拷贝Spark配置模板: # cp ~/app/spark-2.3.1-bin-2.6.0-cdh5.7.0/conf/spark-env.sh.template  ~/app/spark-2.3.1-bin-2.6.0-cdh5.7.0/conf/spark-env.sh

      编辑配置文件如下: vi ~/app/spark-2.3.1-bin-2.6.0-cdh5.7.0/conf/spark-env.sh

        export JAVA_HOME=/home/hadoop/app/jdk1.8.0_45

        export HADOOP_CONF_DIR=/home/hadoop/app/hadoop-2.6.0-cdh5.7.0/etc/hadoop

        export YARN_CONF_DIR=/home/hadoop/app/hadoop-2.6.0-cdh5.7.0/etc/hadoop

        export SPARK_EXECUTOR_CORES=1

        export SPARK_EXECUTOR_MEMORY=1G

        export SPARK_DRIVER_MEMORY=1G

      拷贝Slayer配置: # cp ~/app/spark-2.3.1-bin-2.6.0-cdh5.7.0/conf/slaves.template ~/app/spark-2.3.1-bin-2.6.0-cdh5.7.0/conf/slaves

      编辑如下: # vi ~/app/spark-2.3.1-bin-2.6.0-cdh5.7.0/conf/slaves

        hadoop000

    5. 启动  

      启动Spark-Shell:

        

        

      启动服务

        

        跑一个测试    

          ./bin/spark-submit --class org.apache.spark.examples.SparkPi
          --master yarn
          --deploy-mode cluster
          --driver-memory 1g
          --executor-memory 1g
          --executor-cores 1
          --queue thequeue
          examples/jars/spark-examples*.jar
          10

      成功在YARN上执行

        

      

        

          

  • 相关阅读:
    基于Java的地铁线路查询系统设计思路
    个人总结05
    构建之法读书笔记03
    Java 8 (二) 新的时间API
    MySql基础笔记(三)其他重要的事情
    MySql基础笔记(二)Mysql语句优化---索引
    JavaScript基础笔记(十四)最佳实践
    JavaScript基础笔记(十三)测试和调试
    MySql基础笔记(一)Mysql快速入门
    JavaScript基础笔记(十二)Ajax
  • 原文地址:https://www.cnblogs.com/NightPxy/p/9227073.html
Copyright © 2011-2022 走看看