-》》》配置参数优化
  SparkConf sc = new SparkConf().setAppName("com.sp.test.GroupTop3").setMaster("local")
.set("spark.shuffle.consolidateFiles", "true")//优化1:开启shuffleGroup,避免shuffleMapTask创建过多的bucket文件
//优化2:设置并行度(rdd的同时partition的数量,每个partition都会被一个task执行,那么在不同节点的不同executor中同时执行的task为5)
//如果这个时候cpu core=6的话,那么资源就有一个core浪费了;
//如果cpu core为6的话,那么这个值可以设置成12 ~ 18(spark官方推荐task数量大约是core的3倍左右是比较合适的)这样可以充分的利用cpu资源,因为不知道task什么时间之行结束
.set("spark.default.parallelism", "5")
.set("spark.serializer", "org.apache.spark.serializer.KryoSerializer")//优化3:使用kyro序列化机制,默认的jdk序列化占用内存空间大,并且速度慢
//.registerKryoClasses(Array(classOf[MyClass1], classOf[MyClass2]));//kyro需要设置序列化自定义类型
.set("spark.kryoserializer.buffer.mb", "10")//优化4:如果遇到非常大的java对象需要增加kryoserializer的缓存(默认为:2m,这里设置为10m)
.set("spark.storage.memoryFraction", "0.3")//优化5:jvm的内存控制,让RDD partition cache 所占用的内存数量仅仅站用20%,更多内存留给task执行时的需要
//shuffle级别的优化
.set("spark.shuffle.file.buffer", "128k")//优化6:将数据写入磁盘的缓冲区大小 (默认值:32k)
.set("spark.reducer.maxSizeInFlight", "96m")//优化7:resultTask从bucket缓冲区拉取数据的最大大小,值过小会导致多次网络通信(默认值:48m)
.set("spark.shuffle.io.maxRetries", "6")//优化9:拉取数据失败后的重试次数;默认3次
.set("spark.shuffle.io.retryWait", "10s")//优化10:拉去数据失败时的重试间隔;默认5秒
.set("spark.shuffle.memoryFraction", "0.5")//优化11:Executor内存中,分配给shuffle read task进行聚合操作的内存比例,默认是0.2
;
JavaSparkContext javaSparkContext = new JavaSparkContext(sc);
eden区域分配的大小(-Xmx)是: 单独数据块的大小(如果为hdfs压缩的文件的话,那么解压后大概为压缩的3倍,这样需要在乘以3) * task的数量 * 3/4

JavaSparkContext javaSparkContext = new JavaSparkContext(sc);
-》》》数据结构优化
     在数据结构上也可以进行优化!如果你的spark应用程序对内存及其敏感,那么需要你使用更为轻量级的类型,在数据结构上进行优化,如1:Map类型使用特定格式的字符串代替,2:使用int类型代替UUID等。

-》》》持久化RDD
JavaPairRDD<String, Iterable<Integer>> rdd_group = rdd_tuple.groupByKey().cache();//直接持久化到内存
rdd_group.persist(StorageLevel.MEMORY_ONLY_SER());//虽然存在于内存,但是将其序列化,减小空间
rdd_group.persist(StorageLevel.MEMORY_AND_DISK_SER());//也可以序列化到内存和磁盘(会对数据进行分区,不适合放在内存的将要放入硬盘)

spark优化设置的更多相关文章

  1. 小记---------spark优化之更优分配资源

      spark优化:在一定范围之内,增加资源与性能的提升是成正比的. 因此,       一个cpu core  执行一个task线程. task数: 若有 cpu core 2个.num-execu ...

  2. spark优化项

    一.Shuffle优化项 1.Shuffle优化配置 - spark.shuffle.file.buffer 默认值:32k 参数说明:该参数用于设置shuffle write task的Buffer ...

  3. MyEclipse 2014各种优化设置

    各种优化大整合,陆续更新使用中的问题,也欢迎大家提问. 1.通用优化设置:字体,UTF-8编码格式设置: http://jingyan.baidu.com/article/b907e627d2c5da ...

  4. MongoDB在Linux下常用优化设置

    MongoDB在Linux下常用优化设置 以下是一些MongoDB推荐的常用优化设置.在生产环境下选取合适的参数值,例如预读值和默认文件描述符数目等,会对系统性能有很大的影响. 1.关闭数据库文件的 ...

  5. NUMA的取舍与优化设置【转】

    NUMA的取舍与优化设置 在os层numa关闭时,打开bios层的numa会影响性能,QPS会下降15-30%; 在bios层面numa关闭时,无论os层面的numa是否打开,都不会影响性能. 安装n ...

  6. Win10传递优化设置技巧

    什么是“传递优化缓存” “传递优化”是微软为了加快Windows更新和Microsoft Store应用更新的下载速度,而在Windows10中引入的一种“自组织分布式本地化缓存”设计,可以在用户电脑 ...

  7. MyEclipse优化设置(最详细版本)

    MyEclipse优化设置由于自己需要,在网上查了相关资料,现在总结如下: 本优化方法较全,希望能帮助到需要的人... 第一步: 取消自动validation validation有一堆,什么xml. ...

  8. mySQL内存及虚拟内存优化设置[转]

    mySQL内存及虚拟内存优化设置 . 数据库mySQL内存优化G-LB  为了装mysql环境测试,装上后发现启动后mysql占用了很大的虚拟内存,达8百多兆.网上搜索了一下,得到高人指点my.ini ...

  9. ASP.NET在IIS的启动优化设置

    ASP.NET在IIS的启动优化设置 约定: IIS=Internet Information Services Manager 概要 因为ASP.NET 程序在第一次启动的时候需要等待太长时间,至少 ...

随机推荐

  1. ###My SQL Date相关函数

    ###My SQL Date相关函数 #获得当前日期时间 select now(); #date_format(date,format) select date_format('2008-08-08 ...

  2. CSS-2

    day 39 学习链接:https://www.cnblogs.com/yuanchenqi/articles/5977825.html 4  文本属性 font-size: 10px; text-a ...

  3. 每天进步一点点——mysql——mysqlbinlog

    一.        简单介绍 mysqlbinlog:用于查看server生成的二进制日志的工具. 二.       命令格式 mysqlbinlog 选项日志文件1 三.       经常使用參数 ...

  4. 移动开发常用meta设置

    <!-- 视图窗口,移动端特属的标签. --> <meta name="viewport" content="width=device-width,in ...

  5. SQL Server 2016新特性:数据库级别配置

    新的  ALTER DATABASE SCOPED CONFIGURATION (Transact-SQL) 用来配置数据库级别配置. 这个语句可以配置每个数据库的配置: 清理过程cache 设置MA ...

  6. java 查看SOAP请求报文

    log.info("ESB 请求URL = " + cachedEndpoint.toString());//打印SOAP请求报文 add by LinJC on 20170120 ...

  7. 【iCore4 双核心板_uC/OS-II】例程十一:内存管理

    一.实验说明: 应用程序在运行中为了某种特殊需要,经常需要临时获得一些内存空间.而作为比较完善的操作系统uC/OS-II,也具有动态分配内存的能力. uC/OS-II对内存进行两级管理:把连续内存分成 ...

  8. R语言:recommenderlab包的总结与应用案例

    R语言:recommenderlab包的总结与应用案例   1. 推荐系统:recommenderlab包整体思路 recommenderlab包提供了一个可以用评分数据和0-1数据来发展和测试推荐算 ...

  9. sqlyog一些快捷键

    http://zhidao.baidu.com/link?url=q5GI6myyUENGkDKfGsz-4P01kbdkJBeSgPFvV3HeNjTTvh9QhTXYx5W0xdcS1P7qxmA ...

  10. php curl post josn + header

    <meta charset="utf8"> <?php ini_set("max_execution_time",1800000); $arr ...