zoukankan      html  css  js  c++  java
  • 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部署包中


    欲为大树,何与草争;心若不动,风又奈何。
  • 相关阅读:
    使用 RAISERROR
    简单计算 2个日期 相差的 天数 和 小时数
    一个 SQL 分段排序的问题(也可以理解为 段内汇总排序问题)
    清除数据库里面所有用户表的数据
    SQL for xml path 应用 很详细
    mybatis读取配置文件报错:Could not find resource configuration.xml
    Attribute "resource" must be declared for element type "mapper".
    Mac OS X Common Lisp环境配置
    【自己习惯太差】最近看书的总结(1),慢慢改正自己的习惯
    LMS权值更新法则
  • 原文地址:https://www.cnblogs.com/admln/p/compileSpark1-2-0.html
Copyright © 2011-2022 走看看