自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

AlanHand的专栏

用自己的笔记分享自己的快乐

  • 博客(46)
  • 资源 (5)
  • 问答 (2)
  • 收藏
  • 关注

原创 将博客搬至CSDN

关于Spark的相关文章已搬迁至简书!

2017-06-23 09:48:52 351

原创 11.CacheManager源码分析

先来张原理图:

2017-06-22 19:05:27 449

原创 10.BlockManager源码分析

先来张原理图吧 !上面的BlockManagerWorker是在1.3之前的版本中才有的 , 从1.3开始BlockManagerWorker由BlockTransferService替代 .  其实BlockManagerMaster的主要工作是交于BlockManagerMasterActor来处理的:/** * BlockManagerMa

2017-06-22 19:03:52 687

原创 9.Shuffle读写源码分析

先直接上原理图吧 !ShuffleMapTask在计算数据之后会为每一个ResultTask创建一份bucket缓存 , 以及对应的ShuffleBlockFIle磁盘文件进行储存 , 在计算完之后会将计算过的相应信息放入MapStatus , 最后发送给Driver中的DAGScheduler的MapOutputTracker , 每个ResultTask会用BlockStoreSh

2017-06-22 18:59:36 753

原创 7.DAGScheduler的stage算法划分和TaskScheduler的task算法划分

先来一张图描述整个stage算法划分的由来:先从DAGScheduler的入口开始 , 源码如下 :/** * DAGScheduler的job调度的核心入口函数 */ private[scheduler] def handleJobSubmitted(jobId: Int, finalRDD: RDD[_], func:

2017-06-22 18:57:43 873

原创 8.Executor源码分析与Task源码分析

先来一张分析图:CoarseGrainedExecutorBackend是在worker上启动的 , 是一个worker上的后台进程 , 启动之后会获取Driver的actor立即向Driver发送注册Executor的消息 , 注册成功之后Driver又会向CoarseGrainedExecutorBackend返回注册成功的RegisterExecutor消息 , 此时就会正式

2017-06-22 18:57:04 501

原创 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 476

原创 5.Worker源码分析

worker的源码分析代码就比较少了 , 整个worker.scala的代码只有不到600行 , 但是还得研究一下DriverRunner和ExecutorRunner的代码1. Worker中的代码主要集中在 receiveWithLogging方法中 , 该方法接收别的组件发送过来的消息 , 就像master源码中发送过来的launchDriver()消息

2017-06-22 18:53:27 505

原创 4.master资源调度源码分析(Driver调度和Application调度(两种))

master资源调度中  , 分为Driver调度和Application调度    1.Driver调度 :        首先会对在master上注册过的worker进行随机打乱 , 利用Random.shuffle 方法就可以实现 , 同时将状态为ALIVE的worker放进一个hashmap 中 ,         driver调度机制 , driver是程序员编写

2017-06-22 18:52:05 568

原创 3.Master注册机制源码分析和状态改变机制源码分析

master注册机制原理图如下 , 说明了就是将Application信息 , Driver信息和所有的Worker信息加入缓存队列中1. Application的注册其实在master.scala的代码中就一段代码 : /** * 处理Application注册请求信息 */ case RegisterApplication(desc

2017-06-22 18:50:59 407

原创 2.Master主备机制切换源码分析

先看下原理图:从Master的 completeRecovery方法开始分析 , 代码如下:/** * 完成主备机切换 , 当主Master挂掉的时候完成StandByMaster的启动 */ def completeRecovery() { // Ensure "only-once" recovery semantics using a sho

2017-06-22 18:45:40 796

原创 1.SparkContext源码分析

先来章整个SparkContext的架构图:1.通过SparkContext的createTaskScheduler获取TaskSchedulerImpl和SparkDeploySchedulerBackendprivate[spark] var (schedulerBackend, taskScheduler) = SparkContext.createTas

2017-06-22 18:38:53 464

原创 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 4380

原创 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 2145

原创 法人和其他组织统一社会信用代码编码规则,附有源代码

第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 9199 1

原创 XMPP协议_smack源码分析(一)

其实基于XMPP协议的smack开源框架

2015-09-24 18:14:05 2901 1

原创 百度地图开发

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 678

原创 自定义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 1405

原创 QQ5.0新特效

​在QQ5.0 的新特性中主要是在两个页面中进行动画特效的显示,如图所示要实现这个效果,就得用一个叫做ViewDragHelper来操作了,该类是在比较高版本的V4包中才有,里面封装了Scroller,关于Scroller请访问我的另一篇博客好了,现在来讲一讲ViewDragHelper这个类吧!!创建ViewDragHelper的代码如下:

2015-04-13 15:44:16 1075

原创 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 408

原创 c语言笔记

jni开发什么是jni java native interface(java本机接口)为什么要使用jni 需求 特殊设备 机顶盒 执行效率 安全 物联网怎么使用jni java基础好 c功底好c语言编程java数据类型 byte 1byte short 2byte int

2015-01-27 15:51:47 668

原创 Qrcode的二维码

关于二维码的知识我就不用说了,该篇文章仅仅是笔者的笔记而已,方面

2014-10-12 16:14:45 502

原创 银行业务调度系统

------http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

2014-09-05 12:30:41 785

原创 交通灯管理系统

模拟实现十字路口的交通灯管理系统逻辑,具体需求如下:异步随机生成按照各个路线行驶的车辆。例如:       由南向而来去往北向的车辆---- 直行车辆       由西向而来去往南向的车辆---- 右转车辆       由东向而来去往南向的车辆---- 左转车辆       。。。       信号灯忽略黄灯,只考

2014-09-04 22:55:44 910

原创 JavaSE之代理和线程基础

一:代理     1.代理的概念与作用           1.1.生活中的代理:                     买电脑时可以从实体店买,也可以从电脑的本部去买,有区别吗?                 当然有,你买电脑时会跑去电脑的本部买吗?你得先知道地点还得自己来回跑,多麻烦。           1.2.程序中的代理:           

2014-09-04 16:48:19 737

原创 Java之泛型和类加载器

一:泛型:jdk1.5版本以后出现的一个安全机制        1.概述:                   只要带有中传递一个                      具体的引用数据类型。        2.好处:                    2.1.将运行时期的问题ClassCastException问题转换成了编译失败,体现在编译时期,程序员就可以解

2014-09-02 21:32:34 1649

原创 Java之反射、枚举、内省、注解

一:反射技术:         1.概述:其实就是动态加载一个指定的类,并获取该类中的所有的内容。而且将字节码文件封装成对象,                        并将字节码文件中的内容都封装成对象,这样便于操作这些成员。简单说:反射技术可以对一个                        类进行解剖,解剖后的属性、方法都为对象           2.反射的好处:大大的

2014-09-02 00:49:50 2883

原创 正则表达式和Java常用对象

一:正则表达式:其实是用来操作字符串的一些规则。     1.描述:                          1.1.好处:正则的出现,对字符串的复杂操作变得更为简单。                    1.2.特点:将对字符串操作的代码用一些符号来表示。只要使用了指定符号,就可以调用底层的代码对字符串进                                

2014-08-31 19:02:02 967

原创 网络编程:Socket与JavaSE线程高级

一Socket:套接字,通信的端点。就是为网络服务提供的一种机制,通信的两端都有Socket,网络通信其实就是Socket间的通信,数据在两个Socket间通过IO传输。 UDP传输:1,只要是网络传输,必须有socket。2,数据一定要封装到数据包中,数据包中包括目的地址、端口、数据等信息。 直接操作udp不可能,对于java语言应该将udp封装成对象,易于我们的使用

2014-08-30 23:34:03 1568

原创 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 541

原创 String和数据类型

---- String字符串:★★★☆java中用String类进行描述。对字符串进行了对象的封装。这样的好处是可以对字符串这种常见数据进行方便的操作。对象封装后,可以定义N多属性和行为。 如何定义字符串对象呢?String s = "abc";只要是双引号引起的数据都是字符串对象。 特点:字符串一旦被初始化,就不可以被改变,存放在方法区中的常量池中。-----------

2014-08-28 12:02:07 731

原创 集合框架

集合1.集合的由来:    对象用于封装特有数据,对象多了需要存储,如果对象的个数不确定就使用集合容器进行存储。2.集合特点:    (1)用于存储对象的容器。    (2)集合的长度是可变的。    (3)集合中不可以存储基本数据类型值。3.集合容器因为内部的数据不同,有多种容器,不断的向上抽取就形成了集合框架。  框架的顶层Collection接口:  (1

2014-08-27 18:43:33 782

原创 万物鼻祖Object和Java异常

一:万物鼻祖Object1.概述:         类 Object是类层次结构的根类。每个类都使用Object 作为超类。所有对象(包括数组)都实现这个类的方法。          Object是不断抽取出来的,具备着所有对象都具备的共性内容2.方法介绍:          (1) Object.equals()方法比较的是保存在内存中的地址,新定义的类可以重写equ

2014-08-27 00:02:14 826

原创 中介者模式

用一个中介者对象来封装一系列的对象交互。中介者使各个对象不需要显示的xianghu

2014-05-16 18:49:14 488

原创 迭代器模式

提供一种方法顺序访问一个聚合对象中的各个元素,而又bux

2014-05-16 18:42:56 510

原创 适配器模式

讲一个类的接口转换成客户希望的另外一个接口。Adapter

2014-05-16 18:34:56 591

原创 策略模式

定义一系列算法,把他们一个个封装起来,并且使他们可huxiang

2014-05-16 18:29:46 508

原创 装饰模式

装饰模式是动态的给对象添加一些额外的职责。就功能来说

2014-05-16 18:24:43 604

原创 观察者模式

主题:主题是一个接口,该接口规定了具体主题需要实现的方法观察者:guanchazhe

2014-05-16 18:13:03 694

原创 命令模式

接收者(Receiver):接收者是yig

2014-05-16 17:23:37 540

XMPP_Smack_Demo_Source

关于XMPP协议的smack开源框架源码分析,附带demo,注释,写的不是很好,有待完善,后期会上传

2015-09-24

设计模式中文版

概述深入的讲解了JAva23中设计模式,利用图解文字和代码实例进行全面介绍

2015-01-16

linux安装后的基本命令

linux安装上的基本命令,不是很多但很有用

2014-08-11

linux笔记之基本操作

仅仅是个人的笔记,可以不用参造,希望大家不要见怪

2014-08-11

C++Api.chm文档

灰常不错的api文档,包括各种函数的详解

2014-03-02

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

TA关注的人

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