A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 不二晨 于 2018-10-9 11:00 编辑

1. 概述
    (1) 在Spark中,支持4种运行模式:
    1)local:开发时使用
    2)standalone:是Spark自带的,如果一个集群是Standalone的话,那就需要在多台机器上同时部署Spark环境(不推荐)
    3)YARN:建议使用,统一使用YARN进行整个集群作业(MR,Spark)的资源调度
    4)Mesos:国内用的少
不管使用什么模式,Spark应用程序的代码是一模一样的,只需要使用--master来指定就好
    spark-submit --master   具体解析:http://spark.apache.org/docs/latest/submitting-applications.html

    (2)Spark支持可插拔的集群管理模式,对于YARN而言,Spark Application相当于客户端
    1)Client:Driver运行在客户端上(提交Spark作业的机器)
        Client会和请求到的Container进行通信来完成作业的调度和执行,Client是不能退出的
        日志信息在控制台输出,便于测试
        --master yarn
    2)Cluster:Driver运行在ApplicationMaster中(跑在YARN上)
        Client只要提交完作业就可以关掉,因为作业已经在YARN上运行了
        日志在终端是看不到的,因为日志在driver上,只能通过yarn -logs application 命令进行查看
        --master yarn cluster
    3)两种模式对比:
        前者YARN只需要申请资源,后者需要申请执行和执行
    4)Spark on YARN的使用
        设置HADOOP_CONF_DIR
        spark-shell/spark-submit运行在YARN上

2. 将程序运行在YARN之上
    (1)使用Spark完成数据清洗操作:运行在YARN上
        1. 打包时要注意,pom.xml中需要添加如下plugin

注意--files 在Spark中的使用

(2)TopN统计Spark作业:运行在YARN上
    1)设置参数从外界传入
    2)程序编译及打包
    3)在linux表上创建mysql

3. 项目性能调优
    1)集群优化
        1.存储格式的选择:行存储,列存储:www.infoq.com/cn/articles/bigdata-store-choose/
            杭存储写入是一次完成的,列是多次
    2)压缩格式选择:https://www.ibm.com/developerworks/cn/opensource/os-cn-hadoop-compression-analysis/
    3)选择高性能的算子(主要体现在统计操作)
        先通过list把记录构建好,然后一起插入
        设置手工提交: connection.setAutoCommit(false)//设置手动提交
                pstmt.addBatch()
                pstmt.executeBatch()//统一批量处理
                connection.commit() //手动提交
    4)复用已有的数据
    5)参数优化:
        并行度:spark.sql.shuffle.partitions 默认是200
        分区字段类型推测:spark.sql.sources.partitionColumnTypeInference.enabled(默认开启)

【转载】https://blog.csdn.net/canglan211 ... 575?utm_source=copy

2 个回复

正序浏览
回复 使用道具 举报
奈斯
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马