- 博客(46)
- 资源 (5)
- 问答 (2)
- 收藏
- 关注
原创 10.BlockManager源码分析
先来张原理图吧 !上面的BlockManagerWorker是在1.3之前的版本中才有的 , 从1.3开始BlockManagerWorker由BlockTransferService替代 . 其实BlockManagerMaster的主要工作是交于BlockManagerMasterActor来处理的:/** * BlockManagerMa
2017-06-22 19:03:52
818
原创 9.Shuffle读写源码分析
先直接上原理图吧 !ShuffleMapTask在计算数据之后会为每一个ResultTask创建一份bucket缓存 , 以及对应的ShuffleBlockFIle磁盘文件进行储存 , 在计算完之后会将计算过的相应信息放入MapStatus , 最后发送给Driver中的DAGScheduler的MapOutputTracker , 每个ResultTask会用BlockStoreSh
2017-06-22 18:59:36
843
原创 7.DAGScheduler的stage算法划分和TaskScheduler的task算法划分
先来一张图描述整个stage算法划分的由来:先从DAGScheduler的入口开始 , 源码如下 :/** * DAGScheduler的job调度的核心入口函数 */ private[scheduler] def handleJobSubmitted(jobId: Int, finalRDD: RDD[_], func:
2017-06-22 18:57:43
981
原创 8.Executor源码分析与Task源码分析
先来一张分析图:CoarseGrainedExecutorBackend是在worker上启动的 , 是一个worker上的后台进程 , 启动之后会获取Driver的actor立即向Driver发送注册Executor的消息 , 注册成功之后Driver又会向CoarseGrainedExecutorBackend返回注册成功的RegisterExecutor消息 , 此时就会正式
2017-06-22 18:57:04
591
原创 6.job触发流程原理剖析与源码分析
从我们编写的一个小的spark demo程序开始 :val lines = sparkContext.textFile("")val words = lines.flatMap(line => line.split("\t"))val pairs = words.map(word => (word,1))val counts = pairs.reduceByKey(_+_)count
2017-06-22 18:54:01
533
原创 5.Worker源码分析
worker的源码分析代码就比较少了 , 整个worker.scala的代码只有不到600行 , 但是还得研究一下DriverRunner和ExecutorRunner的代码1. Worker中的代码主要集中在 receiveWithLogging方法中 , 该方法接收别的组件发送过来的消息 , 就像master源码中发送过来的launchDriver()消息
2017-06-22 18:53:27
561
原创 4.master资源调度源码分析(Driver调度和Application调度(两种))
master资源调度中 , 分为Driver调度和Application调度 1.Driver调度 : 首先会对在master上注册过的worker进行随机打乱 , 利用Random.shuffle 方法就可以实现 , 同时将状态为ALIVE的worker放进一个hashmap 中 , driver调度机制 , driver是程序员编写
2017-06-22 18:52:05
635
原创 3.Master注册机制源码分析和状态改变机制源码分析
master注册机制原理图如下 , 说明了就是将Application信息 , Driver信息和所有的Worker信息加入缓存队列中1. Application的注册其实在master.scala的代码中就一段代码 : /** * 处理Application注册请求信息 */ case RegisterApplication(desc
2017-06-22 18:50:59
463
原创 2.Master主备机制切换源码分析
先看下原理图:从Master的 completeRecovery方法开始分析 , 代码如下:/** * 完成主备机切换 , 当主Master挂掉的时候完成StandByMaster的启动 */ def completeRecovery() { // Ensure "only-once" recovery semantics using a sho
2017-06-22 18:45:40
882
原创 1.SparkContext源码分析
先来章整个SparkContext的架构图:1.通过SparkContext的createTaskScheduler获取TaskSchedulerImpl和SparkDeploySchedulerBackendprivate[spark] var (schedulerBackend, taskScheduler) = SparkContext.createTas
2017-06-22 18:38:53
519
原创 spark+hadoop (yarn模式)
最近毕设需要用到 Spark 集群,所以就记录下了部署的过程。我们知道 Spark 官方提供了三种集群部署方案: Standalone, Mesos, YARN。其中 Standalone 最为方便,本文主要讲述结合 YARN 的部署方案。软件环境:Ubuntu 14.04.1 LTS (GNU/Linux 3.13.0-32-generic x86_64)Hadoop: 2.
2016-10-23 20:31:50
4559
原创 spark+hadoop Standalone模式 搭建
spark安装与使用(Standalone模式)分类:Hadoop (1315) (0)安装环境: Ubuntu sever版 ,java ,scala,一:在linux下安装java环境(自行安装jdk)二:安装Scala2.9.3$ tar -zxf scala-2.9.3.tgz$ sudo mv scala-2.9.3 /
2016-10-23 20:28:53
2263
原创 法人和其他组织统一社会信用代码编码规则,附有源代码
第18位校验码生成标准链接如下:http://qyj.saic.gov.cn/wjfb/201509/t20150929_162430.html第17位效验码生成文档链接如下:http://www.doc88.com/p-334768906907.html代码算法如下:传递一个16位的字符串即可:import java
2016-10-12 17:36:29
9539
原创 百度地图开发
1.准备工作: 1.1在http://developer.baidu.com/map/android-mobile-apply-key.htm申请key,前提是要有百度开发者账号,这里已经申请了一个秘钥:6563200A658F689A0E72C67AD26E1E8F51FBC488 1.2将地图开发的jar包导入到工程目录下的libs目录下2.
2015-04-27 21:56:40
783
原创 自定义ScollerView,理解滑动动画与自定义view的原理
package com.itheima.myscrollview28; import android.content.Context;import android.util.AttributeSet;import android.view.GestureDetector;import android.view.GestureDetector.OnGestureListener;import and
2015-04-13 16:06:38
1470
原创 QQ5.0新特效
在QQ5.0 的新特性中主要是在两个页面中进行动画特效的显示,如图所示要实现这个效果,就得用一个叫做ViewDragHelper来操作了,该类是在比较高版本的V4包中才有,里面封装了Scroller,关于Scroller请访问我的另一篇博客好了,现在来讲一讲ViewDragHelper这个类吧!!创建ViewDragHelper的代码如下:
2015-04-13 15:44:16
1156
原创 JNI使用(1)
什么是JNI: JNI java本地开发接口 JNI 是一个协议 这个协议用来沟通java代码和外部的本地代码(c/c++). 通过这个协议,java代码就可以调用外部的c/c++代码 外部的c/c++代码也可以调用java代码步奏: 1.配置ndk环境,windows -->P
2015-01-27 16:11:17
468
原创 c语言笔记
jni开发什么是jni java native interface(java本机接口)为什么要使用jni 需求 特殊设备 机顶盒 执行效率 安全 物联网怎么使用jni java基础好 c功底好c语言编程java数据类型 byte 1byte short 2byte int
2015-01-27 15:51:47
719
原创 银行业务调度系统
------http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
2014-09-05 12:30:41
836
原创 交通灯管理系统
模拟实现十字路口的交通灯管理系统逻辑,具体需求如下:异步随机生成按照各个路线行驶的车辆。例如: 由南向而来去往北向的车辆---- 直行车辆 由西向而来去往南向的车辆---- 右转车辆 由东向而来去往南向的车辆---- 左转车辆 。。。 信号灯忽略黄灯,只考
2014-09-04 22:55:44
978
原创 JavaSE之代理和线程基础
一:代理 1.代理的概念与作用 1.1.生活中的代理: 买电脑时可以从实体店买,也可以从电脑的本部去买,有区别吗? 当然有,你买电脑时会跑去电脑的本部买吗?你得先知道地点还得自己来回跑,多麻烦。 1.2.程序中的代理:
2014-09-04 16:48:19
795
原创 Java之泛型和类加载器
一:泛型:jdk1.5版本以后出现的一个安全机制 1.概述: 只要带有中传递一个 具体的引用数据类型。 2.好处: 2.1.将运行时期的问题ClassCastException问题转换成了编译失败,体现在编译时期,程序员就可以解
2014-09-02 21:32:34
1759
原创 Java之反射、枚举、内省、注解
一:反射技术: 1.概述:其实就是动态加载一个指定的类,并获取该类中的所有的内容。而且将字节码文件封装成对象, 并将字节码文件中的内容都封装成对象,这样便于操作这些成员。简单说:反射技术可以对一个 类进行解剖,解剖后的属性、方法都为对象 2.反射的好处:大大的
2014-09-02 00:49:50
2946
原创 正则表达式和Java常用对象
一:正则表达式:其实是用来操作字符串的一些规则。 1.描述: 1.1.好处:正则的出现,对字符串的复杂操作变得更为简单。 1.2.特点:将对字符串操作的代码用一些符号来表示。只要使用了指定符号,就可以调用底层的代码对字符串进
2014-08-31 19:02:02
1032
原创 网络编程:Socket与JavaSE线程高级
一Socket:套接字,通信的端点。就是为网络服务提供的一种机制,通信的两端都有Socket,网络通信其实就是Socket间的通信,数据在两个Socket间通过IO传输。 UDP传输:1,只要是网络传输,必须有socket。2,数据一定要封装到数据包中,数据包中包括目的地址、端口、数据等信息。 直接操作udp不可能,对于java语言应该将udp封装成对象,易于我们的使用
2014-08-30 23:34:03
1715
原创 IO流
一:IO(Input Output)流1.作用: 1.1.IO流用来处理设备之间的数据传输。 1.2.Java对数据的操作是通过流的方式。 1.3.Java用于操作流的对象都在IO包中。 1.4.流按操作数据分为两种:字节流与字符流。 1.5.流按流向分为:输入流,输出流。2.什么是字符流? 其实就是L字节流流读取文字字节数据后不直接操作而是先查指定的编
2014-08-30 01:02:15
594
原创 String和数据类型
---- String字符串:★★★☆java中用String类进行描述。对字符串进行了对象的封装。这样的好处是可以对字符串这种常见数据进行方便的操作。对象封装后,可以定义N多属性和行为。 如何定义字符串对象呢?String s = "abc";只要是双引号引起的数据都是字符串对象。 特点:字符串一旦被初始化,就不可以被改变,存放在方法区中的常量池中。-----------
2014-08-28 12:02:07
805
原创 集合框架
集合1.集合的由来: 对象用于封装特有数据,对象多了需要存储,如果对象的个数不确定就使用集合容器进行存储。2.集合特点: (1)用于存储对象的容器。 (2)集合的长度是可变的。 (3)集合中不可以存储基本数据类型值。3.集合容器因为内部的数据不同,有多种容器,不断的向上抽取就形成了集合框架。 框架的顶层Collection接口: (1
2014-08-27 18:43:33
837
原创 万物鼻祖Object和Java异常
一:万物鼻祖Object1.概述: 类 Object是类层次结构的根类。每个类都使用Object 作为超类。所有对象(包括数组)都实现这个类的方法。 Object是不断抽取出来的,具备着所有对象都具备的共性内容2.方法介绍: (1) Object.equals()方法比较的是保存在内存中的地址,新定义的类可以重写equ
2014-08-27 00:02:14
879
TA创建的收藏夹 TA关注的收藏夹
TA关注的人