自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

zhu's 专栏

积累点滴收获

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

原创 RocketMq

由于 metaq 是分布式结构,消费端和 生产端的对应关系可能会经常变动,offset 不能仅仅只是保存到本地,必须保存在一个共享的存储里, 比如 zookeeper,数据库,或共享的文件系统。实际上,采用队列选择器的方法不能保证消息的严格顺序,我们的目的是将消息发送到同一个队列中,如果某个broker挂了,那么队列就会减少一部分,如果采用取余的方式投递,将可能导致同一个业务中的不同消息被发送到不同的队列中,导致同一个业务的不同消息被存入不同的队列中,短暂的造成部分消息无序。

2024-04-17 14:36:17 573

原创 SpringMVC

1、@RequestMapping映射请求支持普通url,还支持?、*、**的字符和带{xxx}占位符的url,甚至支持使用请求方法、请求头参数及请求参数进行映射2、请求处理方法的签名@RequestParam(绑定请求参数值)、@CookieValue(绑定请求中的Cookie值)、@RequestHeader(绑定请求报文头中的属性值)、POJO绑定且支持级联属性servlet

2016-04-25 10:38:07 535

原创 Spring中的Mybatis基础

mybatis基础

2016-04-14 16:52:08 1340 3

原创 SpringMVC中添加Velocity的配置

SpringMVC中添加Velocity的配置

2016-04-12 16:38:24 3302

原创 Spring中的事务管理

1、使用XML配置声明式事务2、使用注解配置声明式事务

2016-04-11 11:10:53 564

原创 Spring中的AOP

Spring中的AOP基础及基于@AspectJ的配置

2016-04-08 14:35:10 792

原创 Spring中的Ioc

Ioc容器配置

2016-04-07 14:00:54 443

原创 Spring 入门配置实例

从登陆模块介绍spring最简单的配置

2016-04-06 11:04:28 1952

原创 jvm 常用配置

jvm常用参数配置

2016-03-17 13:53:11 711

转载 kafka入门:简介、使用场景、设计原理、主要配置及集群搭建(转)

Kafka is a distributed,partitioned,replicated commit logservice。它提供了类似于JMS的特性,但是在设计实现上完全不同,此外它并不是JMS规范的实现。kafka对消息保存时根据Topic进行归类,发送消息者成为Producer,消息接受者成为Consumer,此外kafka集群有多个kafka实例组成,每个实例(server)成为broker。无论是kafka集群,还是producer和consumer都依赖于zookeeper来保证系统可用性集

2016-02-18 10:58:47 507

转载 zookeeper 概要

Paxos,它是一个基于消息传递的一致性算法,Leslie Lamport在1990年提出,近几年被广泛应用于分布式计算中,Google的Chubby,Apache的Zookeeper都是基于它的理论来实现的,Paxos还被认为是到目前为止唯一的分布式一致性算法,其它的算法都是Paxos的改进或简化。有个问题要提一下,Paxos有一个前提:没有拜占庭将军问题。就是说Paxos只有在一个可信的计算环境中才能成立,这个环境是不会被入侵所破坏的。

2016-02-06 10:32:48 445

原创 redis常用数据结构解析

Redis是一个开源的Key-Value存储引擎,它支持string、hash、list、set和sorted set等多种值类型。由于其卓越的性能表现、丰富的数据类型及稳定性,广泛用于各种需要k/v存储的场景。甚至在一些分布式缓存系统中,也用它作为底层存储引擎。本文对redis最常用的数据类型进行剖析,从而让使用者在各自场景下选择合适的数据类型,从而发挥其最好的优势。

2016-01-17 16:48:48 4510

原创 akka 学习笔记

Actor模型为编写并发和分布式系统提供了一种更高的抽象级别。本文介绍akka 常用的方法

2016-01-17 16:42:31 1577

原创 Future与Promise in Scala

所谓Future,是一种用于指代某个尚未就绪的值的对象。而这个值,往往是某个计算过程的结果。

2016-01-14 19:26:01 2336

原创 akka概念 学习笔记

Actor模型为编写并发和分布式系统提供了一种更高的抽象级别。它将开发人员从显式地处理锁和线程管理的工作中解脱出来,使编写并发和并行系统更加容易。

2016-01-13 17:30:36 1116

原创 java.util.ServiceLoader使用

java.util.ServiceLoader这个类来从配置文件中加载子类或者接口的实现类

2015-12-18 09:39:04 531

原创 Jenkins 持续集成

Jenkins 是一个可扩展的持续集成引擎,用于持续、自动地构建/测试/发布软件项目。Jenkins的主要目标是监控软件开发流程,提高开发人员的工作效率。Jenkins通过插件扩展其功能,目前可用插件丰富,基本上可以满足用户个性化的需求。

2015-12-11 13:44:14 5091

原创 SparkSQL 相关API

一、SQLContext.scala中的接口说明大部分接口都是创建DataFrame1、构造:SQLContext的构造只需要一个SparkContext参数2、设置/获取 配置:setConf/getConf3、isCached/cacheTable/uncacheTable/clearCache:数据缓存相关,提高查询速度,需谨慎防止OOM

2015-11-03 20:51:14 2423

原创 SparkSQL 概述

Base on spark 1.5.1 overviewSQLContext默认解析器为"sql",用于解析sql语句。除了SQLContext之外,还有HiveContext,用了更加完善的解析器,默认解析器为spark.sql.dialect="hiveql"

2015-11-03 15:11:47 1314 1

原创 spark streaming源码分析5 checkpoint

spark streaming是一个7*24小时工作的实时处理系统,所以必须保证从故障中恢复的能力。由于streaming 实际上是以小batch数据周期性的执行类似spark core中RDD的计算,所以,其worker节点的容错也就天然的继承了。但是,spark core的数据来源一般存在于hdfs中,所以并没有做driver这一层的容错保证,出错时只要重跑就可以了。而spark streaming的数据来源一般为网络、kafka等,在driver异常时,需要有机制保证从哪里继续读取计算,未完成的job

2015-10-20 22:31:20 1047

原创 spark streaming源码分析4 DStream相关API

博客地址: http://blog.csdn.net/yueqian_zhu/一、InputDStream创建的操作(StreamingContext.scala二、DStream操作(DStream.scala)三、K/V类型RDD转换操作

2015-10-14 18:21:24 2687

原创 spark streaming源码分析3 调度及运行

博客地址: http://blog.csdn.net/yueqian_zhu/前面的两节内容介绍了StreamingContext的构造以及在此上的一系列操作。通过调用start方法,真正开始调度执行。首先校验状态是否是INITIALIZED,然后调用JobScheduler的start方法,并将状态设置为ACTIVE。1、首先构造一个事件类型为[JobSchedulerEvent]的循环器eventLoop(包含JobStarted,JobCompleted,ErrorReported三个事件),内

2015-10-13 18:59:41 942

原创 spark streaming源码分析2 从简单例子看DStream上的operation

博客地址: http://blog.csdn.net/yueqian_zhu/这一节学习一下Dstream上的operation部分1、调用socketTextStream方法,返回一个ReceiverInputDStream类型。它继承与InputDStream,InputDStream又继承于DStream (1)设置本身的InputDStream到DStreamGraph中 (2)获取streamId

2015-10-12 19:57:46 1676

原创 spark streaming源码分析1 StreamingContext

博客地址: http://blog.csdn.net/yueqian_zhu/一、API:二、StreamingContext主要的构造逻辑(checkpoint暂不讨论)1、构造一个graph: DStreamGraph作用于DStream上的operation分成两类 1. Transformation,2. Output 表示将输出结果。DStreamGraph 有输入就要有输出,如果没有输出,则前面所做的所有动作全部没有意义,那么如何将这些输入和输出绑定起来呢?这个问题的解决就依赖于DStr

2015-10-12 19:56:35 1680

原创 Spark Streaming基础概念介绍

有很多文章讲解storm与spark streaming的区别,都非常详细。本文就介绍一下spark streaming比较重要的概念Storm可以实现亚秒级时延的处理,而每次只处理一条event,而Spark Streaming可以在一个短暂的时间窗口里面处理多条(batches)Event。所以说Storm可以实现亚秒级时延的处理,而Spark Streaming则有一定的时延。在Storm中,每条记录在系统的移动过程中都需要被标记跟踪,所以Storm只能保证每条记录最少被处理一次(Triden

2015-09-29 09:19:05 1954

原创 spark core源码分析17 RDD相关API

一、RDD创建的操作(SparkContext.scala)二、RDD基本转换操作(RDD.scala)三、K/V类型RDD转换操作四、RDD行动操作

2015-09-22 21:48:08 2422

原创 spark core源码分析16 Shuffle详解-读流程

不管是sortShuffleManager还是hashShuffleManager,getReader方法返回的都是HashShuffleReader。首先调用了fetch方法,介绍一下1、在task运行那节介绍过,shuffleMapTask运行完成后,会将shuffleId及mapstatus的映射注册到mapOutputTracker中2、fetch方法首先尝试在本地mapstatuses中查找是否有该shuffleId的信息,有则本地取;否则想master的mapOutputTracker请求

2015-09-15 20:17:21 1345

原创 spark core源码分析15 Shuffle详解-写流程

Shuffle是一个比较复杂的过程,有必要详细剖析一下内部写的逻辑ShuffleManager分为SortShuffleManager和HashShuffleManager一、SortShuffleManager每个ShuffleMapTask不会为每个Reducer生成一个单独的文件;相反,它会将所有的结果写到一个本地文件里,同时会生成一个index文件,Reducer可以通过这个index文件取得它需要处理的数据。避免产生大量的文件的直接收益就是节省了内存的使用和顺序Disk IO带来的低延时。

2015-09-12 08:43:10 2413

原创 spark core源码分析14 参数配置

spark可配参数详解

2015-09-08 19:56:05 2148 1

原创 spark core源码分析13 异常情况下的容错保证

standalone模式下的框架图如下:异常分析1: worker异常退出worker异常退出,比如说有意识的通过kill指令将worker杀死worker在退出之前,会将自己所管控的所有小弟executor全干掉worker需要定期向master改善心跳消息的,现在worker进程都已经玩完了,哪有心跳消息,所以Master会在超时处理中意识到有一

2015-09-08 19:11:47 1426 1

原创 spark core源码分析12 spark缓存清理

spark缓存清理机制默认情况下,RDD是不缓存的,即计算完之后,下一次用需要重新计算。如果要避免重新计算的开销,就要将RDD缓存起来,这个道理谁都明白。但是,缓存的RDD什么时候去释放呢?这就用到了上面提到的弱引用。当我们调用persist缓存一个RDD时,会调用registerRDDForCleanup(this),这就是将本身的RDD注册到一个弱引用中。当这个RDD变为不可达时,会自动将该RDD对象插入到referenceQueue中,等到下次GC时就会走doCleanupRDD分支。RDD可能保存

2015-09-02 18:53:40 3444

原创 spark core源码分析11 RDD缓存及checkpoint

RDD有cache和persist方法,用于将RDD进行缓存。cache方法其实就是persist(MEMORY_ONLY)我们看一下这个方法干了什么事情def persist(newLevel: StorageLevel): this.type = { // TODO: Handle changes of StorageLevel if (storageLevel !

2015-09-02 18:38:07 1279

原创 spark core源码分析10 Task的运行

这一节介绍具体task的运行以及最终结果的处理看线程运行的run方法,见代码注释override def run(): Unit = { val taskMemoryManager = new TaskMemoryManager(env.executorMemoryManager) val deserializeStartTime = System.currentTim

2015-08-31 19:24:40 1232

原创 spark core源码分析9 从简单例子看action操作

上一节举例讲解了transformation操作,这一节以reduce为例讲解action操作首先看submitJob方法,它将我们reduce中写的处理函数随JobSubmitted消息传递出去,因为每个分区都需要调用它进行计算;而resultHandler是指最后合并的方法,在每个task完成后,需要调用resultHandler将最终结果合并。所以它不需要随JobSubmitted消

2015-08-29 15:51:53 1379

原创 spark core源码分析8 从简单例子看transformation

前面提到过spark自带的一个最简单的例子,也介绍了SparkContext的部分,这节介绍剩余的内容中的transformation。object SparkPi { def main(args: Array[String]) { val conf = new SparkConf().setAppName("Spark Pi") val spark = new Spa

2015-08-27 20:20:55 1190

原创 spark core源码分析7 Executor的运行

实际任务的运行,都是通过Executor类来执行的。这一节,我们只介绍Standalone模式。源码位置:org.apache.spark.executor.CoarseGrainedExecutorBackendprivate def run( driverUrl: String, executorId: String, hostname: String,

2015-08-27 20:20:14 1342

原创 spark core源码分析6 Spark job的提交

首先看一个spark自带的最简单的例子:object SparkPi { def main(args: Array[String]) { val conf = new SparkConf().setAppName("Spark Pi") val spark = new SparkContext(conf) val slices = if (args.length >

2015-08-26 19:47:09 1416

原创 spark core源码分析5 spark提交框架

源码位置:org.apache.spark.deploy.SparkSubmit.SparkSubmit.scala这里解析参数,包括提交jar包的mainclass,Executor、Driver的相关配置等等等等。。def main(args: Array[String]): Unit = { val appArgs = new SparkSubmitArgumen

2015-08-25 19:38:44 993

原创 spark core源码分析4 worker启动流程

源码位置:org.apache.spark.deploy.worker.Worker.scala首先查看worker的main方法,与master类似,创建sparkConf,参数解析,以及构造worker对象并创建ActorRef用于对外或者本身的信息交互。这里masters参数可以设置多个def main(argStrings: Array[String]) { Sig

2015-08-25 19:38:11 1113

原创 spark core源码分析3 Master HA

这一节讲解master 选举以及之后的处理流程上一节说到在Master启动过程中,首先调用了 Akka actor的preStart方法。

2015-08-24 19:08:43 1674

空空如也

空空如也

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

TA关注的人

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