- 博客(14)
- 资源 (11)
- 收藏
- 关注
转载 Spark性能优化指南——高级篇(美团技术团队)
继基础篇讲解了每个Spark开发人员都必须熟知的开发调优与资源调优之后,本文作为《Spark性能优化指南》的高级篇,将深入分析数据倾斜调优与shuffle调优,以解决更加棘手的性能问题。调优概述有的时候,我们可能会遇到大数据计算中一个最棘手的问题——数据倾斜,此时Spark作业的性能会比期望差很多。数据倾斜调优,就是使用各种技术方案解决不同类型的数据倾斜问题,以保证Spark作业的性能。...
2019-09-25 16:16:22 393
转载 java中的notify和notifyAll有什么区别?(需先理解锁池和等待池)
今天正好碰到这个问题,也疑惑了好久。看了一圈知乎上的答案,感觉没说到根上。所以自己又好好Google了一下,终于找到了让自己信服的解释。先说两个概念:锁池和等待池锁池:假设线程A已经拥有了某个对象(注意:不是类)的锁,而其它的线程想要调用这个对象的某个synchronized方法(或者synchronized块),由于这些线程在进入对象的synchronized方法之前必须先获得该对象的锁...
2019-09-19 16:50:23 266
转载 理解java线程的中断(interrupt)
一个线程在未正常结束之前, 被强制终止是很危险的事情. 因为它可能带来完全预料不到的严重后果比如会带着自己所持有的锁而永远的休眠,迟迟不归还锁等。 所以你看到Thread.suspend, Thread.stop等方法都被Deprecated了那么不能直接把一个线程搞挂掉, 但有时候又有必要让一个线程死掉, 或者让它结束某种等待的状态 该怎么办呢?一个比较优雅而安全的做法是:使用等待/通知机制...
2019-09-18 18:10:25 803
转载 Java线程之 InterruptedException 异常
当一个方法后面声明可能会抛出InterruptedException 异常时,说明该方法是可能会花一点时间,但是可以取消的方法。抛InterruptedException的代表方法有:1. java.lang.Object 类的 wait 方法2. java.lang.Thread 类的 sleep 方法3. java.lang.Thread 类的 join 方法-...
2019-09-18 18:09:35 3619
转载 并发编程——详解 AQS CLH 锁
从 acquire 方法开始 —— 获取 为什么 AQS 需要一个虚拟 head 节点 reelase 方法如何释放锁 总结前言AQS 是 JUC 中的核心,其中封装了资源的获取和释放,在我们之前的并发编程之 AQS 源码剖析文章中,我们已经从 ReentranLock 那里分析了锁的获取和释放。但我有必要再次解释 AQS 的核心 CLH 锁。这里引用一下别人对于 CLH 的解...
2019-09-18 17:44:28 285
转载 J.U.C之AQS
此篇博客所有源码均来自JDK 1.8越是核心的东西越是要反复看,本文篇幅较长,希望各位细细品读,来回多读几遍理解下。AQS简介java的内置锁一直都是备受争议的,在JDK 1.6之前,synchronized这个重量级锁其性能一直都是较为低下,虽然在1.6后,进行大量的锁优化策略,但是与Lock相比synchronized还是存在一些缺陷的:虽然synchronized提供了便捷性...
2019-09-18 17:43:34 117
转载 SpringBoot集成Mybatis实现多数据源(Datasource)
总体来说多数据源配置有两种方式,一种是静态的,一种是动态的。静态的方式我们以两套配置方式为例,在项目中有两套配置文件,两套mapper,两套SqlSessionFactory,各自处理各自的业务,这个两套mapper都可以进行增删改查的操作,在这两个主MYSQL后也可以各自配置自己的slave,实现数据的备份。如果在增加一个数据源就得从头到尾的增加一遍。先看看两个配置文件:##...
2019-09-18 13:17:56 10093
转载 Spring结合Mybatis时出现Mybatis一级缓存失效问题
spring结合mybatis时一级缓存失效问题之前了解到mybatis的一级缓存是默认开启的,作用域是sqlSession,是基 HashMap的本地缓存。不同的SqlSession之间的缓存数据区域互不影响。当进行select、update、delete操作后并且commit事物到数据库之后,sqlSession中的Cache自动被清空<setting name="localC...
2019-09-18 13:02:00 3490
转载 基于Apache Curator的两种分布式Leader选举策略详解
在分布式环境中,一个应用通常都会部署在多个服务器节点上。如果这些应用节点的运行模式是一主多从或者多主多从,这时就需要用到Leader选举策略,从多个节点中选举出Master节点。另外,当某个Master节点意外宕机,这时也需要用到Leader选举策略从它的多个Slave节点中选举出新的Master节点对于Leader选举策略,Apache Curator框架提供了两种策略,开发者可以根据实际需...
2019-09-11 16:46:28 448
转载 hadoop fs -getmerge命令的使用
假设在你的hdfs集群上有一个/user/hadoop/output目录里面有作业执行的结果(多个文件组成)part-000000,part-000001,part-000002然后你想把所有的文件合拢来一起看 可以使用命令:hadoop fs -getmerge /user/hadoop/output local_file然后就可以在本地使用vi local_file查看内容了...
2019-09-04 16:53:12 779
转载 Spark中repartition和coalesce的用法(注意shuffle的值与重分区个数)
重分区函数: repartition(numPartitions:Int):RDD[T] coalesce(numPartitions:Int,shuffle:Boolean=false):RDD[T] 它们两个都是RDD的分区进行重新划分,repartition只是coalesce接口中shuffle为true的简易实现,(假设RDD有N个分区,需要重新划分成M个分...
2019-09-03 19:56:19 1780
转载 Spark之数据本地性(data locality)
一、什么是数据本地性(data locality)大数据中有一个很有名的概念就是“移动数据不如移动计算”,之所以有数据本地性就是因为数据在网络中传输会有不小的I/O消耗,如果能够想办法尽量减少这个I/O消耗就能够提升效率。那么如何减少I/O消耗呢,当然是尽量不让数据在网络上传输,即使无法避免数据在网络上传输,也要尽量缩短传输距离,这个数据需要传输多远的距离(实际意味着数据传输的代价)就是数据本...
2019-09-03 19:37:48 795
转载 Spark的fold和aggregate函数(注意aggregate中的y是对rdd各元素的遍历!!!)
最近在学习spark,理解这两个函数时候费了一些劲,现在记录一下。1. rdd.fold(value)(func)说到fold()函数,就不得不提一下reduce()函数,他俩的区别就在于一个初始值。reduce()函数是这样写的:rdd.reduce(func)参数是一个函数,这个函数的对rdd中的所有数据进行某种操作,比如:val l = List(1,2,3,4)...
2019-09-03 14:39:03 361
转载 Spark RDD的fold算子(注意最后合并各个分区的时候也要把初始值算进去!!!)
fold算子签名:def fold(zeroValue: T)(op: (T, T) => T): T ,算子其实就是先对rdd分区的每一个分区进行使用op函数,在调用op函数过程中将zeroValue参与计算,最后在对每一个分区的结果调用op函数,同理此处zeroValue再次参与计算!此处op函数为: val add = (x: Int, y: Int) => {...
2019-09-03 13:07:42 487
计算机网络(第7版)-谢希仁 pdf下载 高清完整版
2017-12-05
编译原理(龙书-中文第二版).pdf
2017-12-05
精通Python设计模式.pdf高清完整版下载
2017-12-04
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人