吃货先生的博客

拥抱开源,共同成长,共同进步

特质与自身类型

特质与自身类型 特质 scala中的特质trait是一种特殊 没有多重继承 可以作为接口使用特质,特质可以有实现方法 class Account { var balance = 10d } trait ConsoleLogger { def log(...

2018-03-14 15:21:16

阅读数 123

评论数 0

spark-core源码阅读-累加器(十)

spark-core源码阅读-累加器(十) 使用场景 累加器是一种支持并行只能added的特殊变量,常用来计次/求和,我们也可以自行定义新数据类型支持added 基本原理 累加器变量在每个task任务中依次added,把结果传到Driver端进行合并,所以这是分布式计算,只有dri...

2018-03-07 00:41:58

阅读数 491

评论数 0

spark core源码阅读-广播(九)

spark-core源码阅读-广播 前言 (spark core源码阅读-Task介绍(六))我们讨论过submitMissingTasks,期间谈到broadcast,当时只是说把序列化过得taskBytes 广播到出去,这里详细讨论广播实现原理 BroadcastManager在S...

2018-03-04 21:06:04

阅读数 287

评论数 0

设计模式-Visitor

引子 1.方法重载 class FirstTest { static class Person{ } static class Man extends Person{ } static class Test { void run(Person person) {...

2018-03-04 13:53:44

阅读数 70

评论数 0

spark core源码阅读-Storage shuffle(八)

spark core源码阅读-Storage shuffle(八) 本节主要介绍RDD.aggregateByKey导致的shuffle,分两部分map shuffle,reduce shuffle 一 map shuffle ShuffleMapTask中Task如何处理rdd.ite...

2018-02-28 13:07:02

阅读数 306

评论数 0

spark core源码阅读-内存管理(七)

spark core源码阅读-内存管理(七) 存储级别 每个StorageLevel都会记录是否使用内存或ExternalBlockStore, 如果内存或ExternalBlockStore内存不足,是否将RDD丢弃到磁盘, 是否以串行化格式保存内存中的数据以及是否在多个节点上复制R...

2018-02-26 19:19:33

阅读数 135

评论数 0

spark core源码阅读-Task介绍(六)

Task 一个执行单位, Spark中有两种Task: Spark工作由一个或多个阶段组成, 作业的最后一个阶段由多个ResultTasks组成,而早期的阶段由ShuffleMapTasks组成 ShuffleMapTask ShuffleMapTask执行任务并将任务输出分为多个桶(基...

2018-02-13 17:49:08

阅读数 178

评论数 0

spark core源码阅读-RDD与Stage(五)

我们之前说过RDD只是抽象概念,RDD会被转换成Stage,进而被转换成Task,在Executor上执行,今天我们跟一下源码看spark是 如何转换的 Stage stage是一组并行任务,被作为Spark任务的一部分运行,并且这些任务持有相同的shuffle依赖.每个任务的DAG根据...

2018-02-12 18:36:57

阅读数 185

评论数 0

spark core源码阅读-RDD详细介绍(四)

之前对RDD有一个大体概念了解,这一节我们需要深入了解它,了解在源码中到底是什么, 怎么产生的,给个rdd之间怎么依赖的,最后又怎么生成spark job 我们还是先从一个例子下手: val sc = new SparkContext(sparkConf) val res = sc ...

2018-02-11 18:57:33

阅读数 3923

评论数 0

spark core源码阅读-提交作业(三)

spark core源码阅读-提交作业(三) 通过例子了解spark提交执行流程 下面是spark计算PI,通过蒙特卡洛算法: 在一个边长为a的正方形内一均匀概率随机投点,该点落在此正方形的内切圆中的概率即为内切圆与正方形的面积比值 即:Pi * (a / 2)^2 : a^2 = P...

2018-02-07 19:42:29

阅读数 297

评论数 0

spark core源码阅读-基本架构(二)

spark core源码阅读-基本架构(二) Spark基本框架 基本组件 首先有一个大体感知,下图是spark standalone模型的架构图 几种模式 local:本地测试使用 YARN: 基于hadoop资源管理器 Mesos: 一种比Yarn管理更细的资源管理...

2018-02-07 19:42:08

阅读数 320

评论数 0

spark core源码阅读-环境准备(一)

spark源码阅读-环境准备(一) 基于1.6.0版本结合源码理解spark on yarn 环境准备 下载代码: https://github.com/juntaozhang/spark/tree/my.v1.6.0 git clone https://github.com/jun...

2018-02-06 19:07:45

阅读数 501

评论数 0

Redis Sentinel(哨兵)部署

redis版本3.2.3 role ip port redis slave 192.168.0.194 6379 redis master 192.168.0.195 6379 sentinel 1 192.168.0.194 ...

2018-02-06 12:20:27

阅读数 427

评论数 0

Mongo Replica Set集群搭建

Mongo Replica Set集群搭建 MongoDB version: 3.2.8 role ip port note config server primary 192.168.0.194 26050 - config server ...

2018-02-06 12:17:58

阅读数 95

评论数 0

scala中val与def定义的区别

scala中val与def定义的区别 变量 val定义一个不可改变的变量, def则是一个方法: //scala中定义: def main(args: Array[String]): Unit = { def a = "hello" val b = &qu...

2018-02-06 12:06:00

阅读数 1359

评论数 0

协变与逆变

型变(协变与逆变) 今天理清了一下关于java与scala中的型变这个概念, 比较一下这两个JVM语言是如何对待这个问题的 Java中的协变与逆变 static class Person { public void hi() { System.out.println(&q...

2018-02-06 11:02:46

阅读数 75

评论数 0

WeakReference(弱引用)与WeakHashMap

WeakReference(弱引用)与WeakHashMap 是什么? Java中4种引用,强度依次是(S > S >W > P) 强引用 java中创建对象默认是强引用,只要引用被持有,不会被GC 软引用...

2018-02-05 12:29:57

阅读数 437

评论数 0

Java ThreadLocal源码分析

Java ThreadLocal源码分析 1.首先举一个栗子 public static class MyExample { private static ThreadLocal age = ThreadLocal.withInitial(() -> 0); pri...

2018-02-04 16:43:17

阅读数 81

评论数 0

JVM编译优化

JVM编译优化 JVM编译优化 编译器与解释器 解释器 编译器 触发条件热点代码 编译优化技术 表达式优化 方法内联 逃逸分析 编译器与解释器 解释器 省去编译时间,立即执行 编译器 how?3阶段 1.高级中间代码 方...

2018-02-04 15:27:51

阅读数 78

评论数 0

Java volatile 怎么保证不被指令重排序优化

内存间交互操作lock: 作用主内存unlock: 作用主内存read/load:这两个操作顺序执行,不能单独出现;主内存的变量=>工作内存的变量use: 作用工作内存,把工作内存变量传给执行引擎assign: 作用工作内存,把执行引擎收到的值赋给工作内存变量store/wr...

2018-02-04 13:46:04

阅读数 1430

评论数 1

提示
确定要删除当前文章?
取消 删除
关闭
关闭