自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 收藏
  • 关注

原创 spark学习-Spark性能调优手段

Spark性能调优手段:判断内存消耗:设置RDD并行度,将RDD cache到内存,通过BlockManagerMasterActor添加RDD到memory中的日志查看每个partition占了多少内存,最后乘以partition数量,即是RDD内存占用量。1.Shuffle调优(核心)a.consolidation机制,使shuffleMapTask端写磁盘的文件数量减少,resultTask...

2018-04-23 18:00:21 875

原创 spark学习-checkpoint和持久化的区别

checkpoint和持久化的区别:1.持久化只是将数据保存在BlockManager中,而RDD的lineage是不变的。但是checkpoint执行完后,RDD已经没有之前所谓的依赖RDD了,而只有一个强行为其设置的checkpointRDD,RDD的lineage改变了。2.持久化的数据丢失可能性更大,磁盘、内存都可能会存在数据丢失的情况。但是checkpoint的数据通常是存储在如HDFS...

2018-03-15 11:14:08 2396

原创 spark学习-CheckPoint原理

CheckPoint原理:1.对于一个复杂的RDD chain,如果中间某些关键的,在后面会多次使用的RDD因节点故障导致持久化数据丢失,可以针对该RDD启动checkpoint机制,实现容错和高可用。2.checkpoint,先调用SparkContext的setCheckpointDir()方法,设置一个容错的文件系统目录。3.对RDD调用checkpoint()方法后,在RDD所处的job运...

2018-03-13 17:52:36 630

原创 spark学习-CacheManager原理

CacheManager原理:1.RDD调用Iterator()方法,计算当前task要计算出来的partition。2.如果RDD之前持久化过,StorageLevel就不为NONE,就会用CacheManager读取持久化过的数据。3.如果RDD没有持久化过,就会从RDD的父RDD,来执行自定义的算子计算新的RDD的partition数据。4.BlockManager尝试从本地读取数据(get...

2018-03-13 17:28:17 314

原创 spark学习-BlockManager原理

BlockManager原理:1.Driver上有BlockManagerMaster,负责对各个节点上的BlockManager内部管理的元数据进行维护。2.每个节点的BlockManager有几个关键组件,DiskStore负责对磁盘上的数据进行读写,MemoryStore负责对内存中的数据进行读写,ConnectionManager负责建立BlockManager到远程其他节点的BlockM...

2018-03-13 17:03:31 1024

原创 spark学习-spark shuffle操作的两个特点

spark shuffle操作的两个特点:1.spark中bucket缓存默认是100KB,写入数据达到刷新到磁盘的阈值后,就会将数据一点一点刷新到磁盘。如果内存缓存过小,会发生过多的磁盘IO操作,需要根据实际的业务情况进行优化。2.MapReduce必须将所有的数据都写入本地磁盘文件后,才能启动reduce操作,来拉取数据,因为MapReduce要实现默认的根据key的排序,需要写完所有的数据才...

2018-03-07 16:59:47 692

原创 spark学习-Task原理

Task原理:1.Executor接收到了LaunchTask请求,将task封装成TaskRunner运行。2.反序列化task,并通过网络拉取需要的文件、jar包等,然后运行task的run()方法。3.调用RDD的iterator()方法,会针对task所对应的RDD的partition,执行我们自定义的function函数(算子)。4.ShuffleMapTask阶段,计算完partiti...

2018-03-07 16:35:40 239

原创 spark学习-Task调度算法

Task调度算法:对每个Task,依据本地化算法从最好的一种本地化级别开始遍历,直到task被分配到executor执行。1.PROCESS_LOCAL,进程本地化,RDD的partition和task进入一个executor内,执行速度快。2.NODE_LOCAL,节点本地化,RDD的partition和task不在一个executor中,不在一个进程内,在一个worker上。3.NO_PREF...

2018-03-07 16:16:41 537

原创 spark学习-DAGScheduler的stage划分算法

DAGScheduler的stage划分算法:1.从触发action操作的那个RDD开始往前倒推,为最后一个RDD创建一个stage。2.往前倒推时,如果发现对某个RDD是宽依赖,就将宽依赖的RDD创建一个stage,该RDD就是新stage的最后一个RDD。3.依次类推,使用递归,最后优先提交父stage。(注:ReduceByKey为例,shuffle操作对应3个RDD,MapPartitio...

2018-03-07 12:31:59 278

原创 spark学习-worker工作原理

worker工作原理:1.Master要求Worker启动Driver和Executor。(LaunchDriver和LaunchExecutor)2.worker内部会启动一个线程DriverRunner,它会去负责启动Driver进程并进行管理。3.worker内部会启动一个线程ExecutorRunner,它会去负责启动Executor进程并进行管理。4.Executor找到对应Driver...

2018-03-07 12:19:03 420

原创 spark学习-Master资源调度分配算法

Master资源调度分配算法:1.Application的调度算法有两种,一种是spreadOutApps,另一种是非spreadOutApps。2.spreadOutApps,会将每个Application要启动的executor都平均分配到各个worker上去。(比如有10个worker,20个cpu core要分配,那么实际会循环两遍worker,每个worker分配一个core,最后每个w...

2018-03-07 12:02:35 784

原创 spark学习-Master主备切换机制

Master主备切换机制:1.主备切换基于两种机制,一种基于文件系统,一种是基于zookeeper。2.基于文件系统主备切换需要在ActiveMaster挂掉后,由我们手动切换到Standby Master上。基于zookeeper的主备切换机制,可以实现自动切换Master。3.使用持久化引擎读取持久化的storeApps、storeDrivers、storedWorkers。4.读取的持久化内...

2018-03-05 17:51:07 690

原创 spark学习-Application、Driver和Worker向Master注册工作流程

Application向Master注册工作流程:1.Driver启动后,执行Application注册,SparkContext初始化时,SparkDeploySchedulerBackend会通过AppClient内部线程ClientActor发送RegisterApplication到Master进行注册。2.将Application信息放入内存缓存(HashMap)3.将Applicati...

2018-03-05 17:23:48 1909

原创 Spark学习-Yarn的两种提交模式

Yarn-cluster提交模式:用于生产环境,driver运行在nodemanager,没有单机网卡流量激增的问题。工作流程如下:1.spark-submit客户端发送请求到ResourceManager,请求启动Application。2.ResourceManager分配一批container在nodemanager上,启动ApplicationMaster(相当于Driver)。3.App...

2018-03-05 14:45:18 792

原创 Spark学习-窄依赖和宽依赖的概念

窄依赖:Narrow Dependency,父RDD和子RDD的partition之间的对应关系是一对一的。RDD的每个partition,仅仅依赖父RDD中的一个partition。宽依赖:Shuffle Dependency,每一个父RDD的partition中的数据,都可能会传输一部分到下一个RDD的每个partition中。他们之间发生的操作就是shuffle。二者的特性主要基于以下两点:...

2018-03-05 12:14:23 460

原创 Spark学习-Standlone提交模式

Spark内核架构包括:Application、spark-submit、Driver、SparkContext、Master、Worker、Executor、Job、DAGScheduler、TaskScheduler、ShuffleMapTaskand ResultTask等部分。Standalone client提交模式:1.Standalone会通过反射的方式,创建和构造一个DriverA...

2018-03-05 12:04:56 522

转载 一篇文帮助理解什么是互联网产品运营

一、什么是运营一、运营的定义从广义的角度上说,一切围绕着网站产品进行的人工干预都叫运营。所以某种程度上,我认为互联网产品公司只有3个业务部门:产品,技术,运营。产品运营这个概念就=运营,只不过可能你的公司或者产品是以产品为主,运营为辅,所以这时候没必要单拆一大堆人马出来做运营,所以就统称为产品运营。二、运营的划分细一点的我把运营分为市场运营,用户运营,内容运营,社区运营以及

2017-07-17 09:45:52 1279

原创 虚拟化技术中KVM,Xen,Qemu的区别和联系

虚拟化类型全虚拟化(Full Virtualization)全虚拟化也成为原始虚拟化技术,该模型使用虚拟机协调guest操作系统和原始硬件,VMM在guest操作系统和裸硬件之间用于工作协调,一些受保护指令必须由Hypervisor(虚拟机管理程序)来捕获处理。 图1 全虚拟化模型全虚拟化的运行速度要快于硬件模拟,但是性能方面不如裸机,因为Hypervisor需

2017-07-15 22:31:46 1031

原创 机器学习的理解

机器学习是一门研究机器获取新知识和新技能,并识别现有知识的学问。这里所说的“机器”,指的就是各种类型的计算机。机器学习已经有了十分广泛的应用,例如:数据挖掘、计算机视觉、自然语言处理、生物特征识别、搜索引擎、医学诊断、检测信用卡欺诈、证券市场分析、DNA序列测序、语音和手写识别、战略游戏和机器人运用。机器学习的三个部分:环境、知识库、执行部分。1.影响学习系统设计的最重要的因素是环

2017-02-09 10:40:41 1731

转载 JMS消息服务器(二)——点对点消息传送模型

一、点对点模型概览当你只需要将消息发布送给唯一的一个消息消费者是,就应该使用点对点模型。虽然可能或有多个消费者在队列中侦听统一消息,但是,只有一个且仅有一个消费者线程会接受到该消息。在p2p模型中,生产者称为发送者,而消费者则称为接受者。点对点模型最重要的特性如下:消息通过称为队列的一个虚拟通道来进行交换。队列是生产者发送消息的目的地和接受者消费消息的消息源。每条消息通仅会

2017-01-17 11:44:41 571

转载 JMS消息服务器(一)——基础知识

1、概述异构集成(heterogeneous integration)是消息传送机制在其中起关键作用的一个领域。无论它的成因是合并、并购、业务需求,或者仅仅是技术方向上的一个变化,越来越多的公司都正面临着在企业内部、跨企业集成异构系统和应用程序的问题。消息传送机制还具有异步处理请求的能力,它为系统体系机构师和开发者提供的解决方案,能够减轻或消除系统瓶颈,并提高最终用户的生产率和系统的整

2017-01-17 11:11:48 800

空空如也

空空如也

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

TA关注的人

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