Spark基础

官方文档:spark.apache.org/docs/latest

Spark背景


    MapReduce局限性:
    1>) 繁杂
            map/reduce (mapjoin没有reduce)
            low_level
            constained
            需求 测试 每次改代码再测试
    2>) 技术效率低
        进程几百:MapTask ReduceTask    JVM复用
        IO: chain  网络+磁盘
        排序:都要排序 :面试题:key类型是实现什么接口?
        Memory:
        ...
        不适合迭代处理
        不适合实时流式处理
       
    很多框架各自为战
   

Spark概述和特点

spark.apache.org

    Speed
        memory
        thread
        sort (可设置)
       
        DAG rdd.map.filter....collect
       
    Ease of use
        high-level operators: join、 group 、 count。。。
       
   
    generality
   
    Runs Everywhere
   
   
小结:
    fast + general engine
        write code: java/Scala/Python/R  interactive shell
        run:memory/ADG/thread model/.....
       

版本介绍和选择依据参考:


    如何学习Spark
        mail list
        [email protected]
        apache-spark-user-list/
        meetup/峰会
        源码样例
        github.com/apache/spark
        source code
       

       
       
       
环境:
centos6
    
     hadoop000(hadoop) hadoop001 hadoop002
     app 存放安装软件的目录
     software 存放软件包的tar
     data 存放测试数据
     lib存放我们自己的jar
     source 存放源码的位置
    
    
    

Spark安装

官网下载源码解压
    
    
     编译Spark源码的前置要求
     java 8+, Python 2.7+/3.4+   Spark 2.3.0  Scala 2.11.xx
     安装jdk
    
  apache-maven安装
     解压配置.bash_proile
     export MAVEN_HOME/home/hadoop/app/apache-maven-3.3.9
     export PATH=$MAVE_HOME/bin:$PATH
    
     建议:修改maven本地仓库的地址 $MAVE_HOME/conf/setting.xml
     <lcoalRepository>/home/hadoop/mave_repo</lcoalRepository>
    
  安装scala-2.11.9.tgz
     解压配置.bash_proile
     export MAVEN_HOME/home/hadoop/app/scala-2.11.9
     export PATH=$MAVE_HOME/bin:$PATH
    
     source ~.bash_proile
     验证:mvn -v
    
     git安装下 yum install git
    
    


编译安装
    export MAVEN_OPTS="-Xmx2g -XX:ReservedCodeCacheSize=512m"
    ./build/mvn -DskipTests clean package
    
    
     修改源码编码默认hadoop版本
     pom.xml
     <hadoop.version2.6.5</hadoop.version>
     <protobuf.version>2.5.0</protobuf.version>

     profile
     Apache Hadoop 2.7.x and later
    ./build/mvn -pyarn -Phadoop-2.7 -Dhadoop.version=2.7.3 -DskipTests clean package
     Hive 1.2.1 support
     ./build/mvn -Pyarn -Phive -Phive -thriftserver -DskipTests clean package
  
        
       
      开发环境编译 
      ./build/mvn -pyarn -Phive -Phive -Phadoop-2.6 -Dhadoop.version=2.6.3 -DskipTests clean


     生产环境
      ./dev/make-distribution.sh \
      --name hadoop-2.6.0-cdh5.7.0 --(就填写hadoop版本号) \
      --tgz \
      --Dhadoop.version=2.6.3 \
      --Phadoop-2.6  \
      --Phive -Phive-thriftserver \
      --Pyarn
       
     根据报错配置仓库源  
       
       
     修改脚本 加快编译速度
    vim make-distribution.zh  注释点下面几个编译检查参数
    VERSION=2.2.0
    SCALA_VERSION=2.11
    SPARK_HADOOP_VERSION=2.6.0-cdh5.7.0
    SPARK_HIVE=1
        
       
       
编译文档
http://spark.apache.org/docs/2.3.0/building-spark.html
more  --- building spark
       
       
Spark安装包目录结构说明
    bin 存放客户端相关脚本
    conf 配置文件模板
    data 存放测试数据
    examples Spark 自带的测试用例  重点查看自带的代码样例
    jars     jar包
    sbin  存放服务端相关脚本
    yarn   存放yarn相关jar包
       

源码
github.com/apache/spark       

猜你喜欢

转载自blog.51cto.com/chaorenyong/2113522