自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

吃货先生的博客

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

  • 博客(20)
  • 收藏
  • 关注

原创 特质与自身类型

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

2018-03-14 15:21:16 481

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

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

2018-03-07 00:41:58 924

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

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

2018-03-04 21:06:04 559

原创 设计模式-Visitor

引子1.方法重载class FirstTest { static class Person{ } static class Man extends Person{ } static class Test { void run(Person person) { System.out.println("this is person fun"); ...

2018-03-04 13:53:44 198

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

spark core源码阅读-Storage shuffle(八)本节主要介绍RDD.aggregateByKey导致的shuffle,分两部分map shuffle,reduce shuffle一 map shuffleShuffleMapTask中Task如何处理rdd.iterator,shuffle中Map端如何根据根据分区把数据写入文件.主要类简述Shuff...

2018-02-28 13:07:02 574

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

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

2018-02-26 19:19:33 442

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

Task一个执行单位, Spark中有两种Task: Spark工作由一个或多个阶段组成, 作业的最后一个阶段由多个ResultTasks组成,而早期的阶段由ShuffleMapTasks组成ShuffleMapTask ShuffleMapTask执行任务并将任务输出分为多个桶(基于任务的分区程序)ResultTask ResultTask执行任务并将任务输出发送回驱动程序应用...

2018-02-13 17:49:08 338

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

我们之前说过RDD只是抽象概念,RDD会被转换成Stage,进而被转换成Task,在Executor上执行,今天我们跟一下源码看spark是 如何转换的Stagestage是一组并行任务,被作为Spark任务的一部分运行,并且这些任务持有相同的shuffle依赖.每个任务的DAG根据哪边发生 shuffle为边界划stages,并在调度器中执行有序的stages拓扑图,具体分为:...

2018-02-12 18:36:57 429

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

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

2018-02-11 18:57:33 4802

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

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

2018-02-07 19:42:29 513

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

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

2018-02-07 19:42:08 612

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

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

2018-02-06 19:07:45 2037 1

原创 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 26379 sentinel 2 192.168.0.195 26379一、

2018-02-06 12:20:27 776

原创 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 secondary 192.168.0.194 26051 应该单独配置一台机器

2018-02-06 12:17:58 436

原创 scala中val与def定义的区别

scala中val与def定义的区别变量val定义一个不可改变的变量, def则是一个方法://scala中定义:def main(args: Array[String]): Unit = { def a = "hello" val b = "hello" println(a) println(b)}//编译之后的class文件private fina

2018-02-06 12:06:00 8450

原创 协变与逆变

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

2018-02-06 11:02:46 229

原创 WeakReference(弱引用)与WeakHashMap

WeakReference(弱引用)与WeakHashMap是什么?Java中4种引用,强度依次是(S > S >W > P)强引用 java中创建对象默认是强引用,只要引用被持有,不会被GC软引用(SoftReference) 只有内存不足的时候才会被GC弱引用(WeakReference) 只要发生GC,对象就会被销毁...

2018-02-05 12:29:57 1392

原创 Java ThreadLocal源码分析

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

2018-02-04 16:43:17 174

原创 JVM编译优化

JVM编译优化JVM编译优化编译器与解释器解释器编译器触发条件热点代码编译优化技术表达式优化方法内联逃逸分析编译器与解释器解释器 省去编译时间,立即执行编译器how?3阶段 1.高级中间代码 方法内联,常量替换2.低级中间代码 控制检查消除,范围检查消除3.机器代码

2018-02-04 15:27:51 254

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

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

2018-02-04 13:46:04 4730 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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