zoukankan      html  css  js  c++  java
  • Spark编译及spark开发环境搭建

    最近需要将生产环境的spark1.3版本升级到spark1.6(尽管spark2.0已经发布一段时间了,稳定可靠起见,还是选择了spark1.6),同时需要基于spark开发一些中间件,因此需要搭建一套windows下的spark的开发环境,方便代码的编写和调试。中间遇到了比较多的问题,在此也做一个记录/总结。

    Spark编译

    编译条件:

    • 官方给出的spark预编译版本是不支持spark on hive的,同时也不能将spark作为hive的执行引擎。如果需要获得这些支持,则需要自己对spark进行编译之后再安装使用。编译spark前,确保系统已经正确安装maven且maven版本最好在3.3.9或更高的版本。
    • 设定maven编译内存参数,避免outofmemory错误。set MAVEN_OPTS= -Xms2048m -Xmx2048m -XX:MaxPermSize=1024m 
    • windows/linux环境都可以编译。

    编译步骤:

    • 进入spark官方网址,选定spark版本后,在选定源码包,开始下载。
    • 解压后进入对应目录,执行下列命令开始编译
    windows下执行:
    mvn --tgz -Pyarn -Phadoop-2.6 -Dhadoop.version=2.6.0 -Phive -Phive-thriftserver -DskipTests clean package
    linux下除了可执行上面的命令外,还可以执行:
    ./make-distribution.sh --tgz --name 2.6.0 -Pyarn -Phadoop-2.6 -Dhadoop.version=2.6.0 -Phive -Phive-thriftserver -Pspark-ganglia-lgpl -Pkinesis-asl
    其中 -Phadoop-2.6 -Dhadoop.version=2.6.0  指定安装spark时hadoop版本,一定要对应。 -Phive -Phive-thriftserver让其支持Hive。 -DskipTests能避免测试不通过时发生的错误。

    Spark安装:

    安装前,确保Hadoop集群、Mysql、hive已经安装且能正常使用。

    解压安装,按照网上通用的方法安装后,还需要:
    • 将hive/conf/hive-site.xml、hadoop/conf/core-site.xml、hdfs-site.xml拷入spark/conf目录下。
    • 如果hive元数据库配置的为mysql数据库,需要将mysql-driver(mysql-connector-java-5.1.38-bin.jar)拷贝至spark安装目录的lib目录下。
    验证安装:
    进入spark安装目录的bin目录下,进入spark-shell交互式环境:
    ./spark-shell --driver-class-path /home/hadoop/spark-1.6.0-bin-hadoop2.6/lib/mysql-connector-java-5.1.38-bin.jar 
    假设hive中存在testDb数据库且存在表testDb.test,执行下列命令,spark将连接Hive的元数据库并查询对于的数据:
    val hiveContext = new org.apache.spark.sql.hive.HiveContext(sc);
    hiveContext.sql("use testDb");
    hiveContext.sql("show tables").collect().foreach(println);
    hiveContext.sql("select * from testDb.test limit 10").collect().foreach(println);

    没报错且输出数据正常,则说明spark的编译、安装正确。


    Windows下Spark开发环境的搭建:

    通常在推荐系统、报表系统等项目中,还是需要基于spark做一些迭代计算,搭建一个可用的spark开发环境对开发、代码调试还是非常有用的。
    下面简要记录写该过程中的关键步骤:

    1. 下载winutils及hadoop.dll,其中-Dhadoop.home.dir指向winutils所在目录,hadoop.dll放入系统盘下。
    2. IDE增加以下运行参数:-Dhadoop.home.dir="D:\hadoop" -Xms128m -Xmx1024m -XX:PermSize=256m -XX:MaxPermSize=512m
    3. 将hive/conf/hive-site.xml、hadoop/conf/core-site.xml、hdfs-site.xml拷入项目resources目录下。
    4. 如果是spark1.6及以上版本版本需将Jackson 版本改为 2.4.4,否则报错:NoSuchMethodError: com.fasterxml.jackson.module.scala.deser.BigDecimalDeserializer
    这样子差不多就可以正常使用spark做开发了。


  • 相关阅读:
    LeetCode "Jump Game"
    LeetCode "Pow(x,n)"
    LeetCode "Reverse Linked List II"
    LeetCode "Unique Binary Search Trees II"
    LeetCode "Combination Sum II"
    LeetCode "Divide Two Integers"
    LeetCode "First Missing Positive"
    LeetCode "Clone Graph"
    LeetCode "Decode Ways"
    LeetCode "Combinations"
  • 原文地址:https://www.cnblogs.com/cl1024cl/p/6205022.html
Copyright © 2011-2022 走看看