• spark1.2.0编译



     spark 有三种编译方式:SBT、MAVEN、make-distribution.sh。SBT、MAVEN两种方式打出来的包比较大,不适合部署使用。因此我们通常使用第三种方式打包。

    ./make-distribution.sh --tgz --skip-java-test --with-tachyon -Dyarn.version=2.2.0 -Dhadoop.version=2.2.0 -Djava.version=1.7 -Dprotobuf.version=2.5.0 -Pyarn -Phive -Phive-thriftserver

    这条命令可以简化为:

    ./make-distribution.sh --tgz --skip-java-test --with-tachyon -Dhadoop.version=2.2.0 -Djava.version=1.7 -Dprotobuf.version=2.5.0 -Pyarn -Phive -Phive-thriftserver

    因为yarn的版本用的是hadoop版本变量,即hadoop是什么版本,yarn就是什么版本。

    1.使用这种方式不用单独修改maven配置,因为脚本里面会在编译之前执行这条命令

    2.--tgz 生成部署包;

    3.--skip-java-test 滤过测试阶段;

    4.--with-tachyon 感觉tachyon是趋势,所以加上tachyon的支持;

    5.-Dhadoop.version 指定hadoop的版本,默认为1.0.4;

    6.-Djava.version 指定java版本,默认是1.6;

    7.-Dprotobuf.version 指定protobuf的版本,默认是2.4.1;这里指定是因为hadoop使用的2.5.0,不修改的话搭配的时候会出问题;

    8.-Pyarn -Phive -Pthriftserver 分别加入yarn、hive的支持。

    在根目录下面生成了一个binary包


    解压部署包后或者直接在编译过的目录,通过配置conf下的文件,就可以使用spark了


     关于编译的时候scala版本问题,我遇到过,它默认的是2.10.4,现在最新的2.11.x,如果不指定直接编译,外部编写scala程序的时候需要引用编译好的jar包,会产生scala版本冲突

    但是如果编译的时候指定,就需要注意,如果指定过新的版本,比如

    ./make-distribution.sh --tgz --skip-java-test -Dyarn.version=2.2.0 -Dhadoop.version=2.2.0 -Pyarn -Phive -Phive-thriftserver -Dscala-2.11

    编译的时候就会出现类似

    我也去网上找了,assembly包最新更新到了scala2.10的版本,所以不会编译成功,除非自己再去编译assembly的jar包,比较麻烦

    我采取的是降低自己的使用的scala版本,和spark保持一致,反正没什么区别


    如果编译的时候指定了--with-tachyon,那么会在出现编译成功后任务不停止,继续下载tachyon的binary包,然后拆解加入即将生成的spark部署包中


    欲为大树,何与草争;心若不动,风又奈何。
  • 相关阅读:
    函数的定义
    函数名的本质
    函数进阶
    三元运算
    数据类型 补充
    安装python问题
    neo4j nosql图数据库学习
    ubutun lunix 64安装neo4j 图形数据库
    git error: object file .git/objects/b9/e269f50db2a3415cc8ad5ba40b82b9b6a13d45 is empty
    django orm 时间处理
  • 原文地址:https://www.cnblogs.com/admln/p/compileSpark1-2-0.html
Copyright © 2020-2023  润新知