- 博客(11)
- 资源 (3)
- 收藏
- 关注
原创 java虚拟机
一. java虚拟机 系统虚拟机和程序虚拟机,java虚拟机是一种程序虚拟机,jvm的基本结构有:类加载器,方法区,堆,直接内存,栈,本地方法栈,pc寄存器,垃圾收集系统,执行引擎。 类加载器:负责从文件和网络中加载class信息,加载的信息存放在方法区。 方法区:存放类信息,常量信息,常量池信息,包括字符串字面量,数字常量。 java堆:java虚拟机启动时,建立java堆,他是java内
2017-06-22 15:07:07
247
原创 spark性能调优
Spark的性能优化,主要手段包括: 1、使用高性能序列化类库(kyro序列化,自定义类需注册) 2、优化数据结构(优先使用数组和字符串,而不是集合类,也就是使用array,少使用ArrayList, HashMap, LinkedList;使用原始数据类型int等,避免使用多层嵌套对象,可用json串代替) 3、对多次使用的RDD进行持久化 / Checkpoint 4、使用序列化的持久化
2017-06-20 20:14:03
223
原创 spark存储,缓存,断点模块
一. blockManager 1. driver上有BlockmanagerMaster, 负责维护各个节点上blockManager的元数据,比如block增删改等操作。 driver->DAGScheduler->blockManagerMaster->blockManagerInfo->blockStatus blockManager创建后,先向blockManagerMaster进行
2017-06-20 10:34:51
291
原创 saprk 核心组件总结
DAGScheduler的stage划分算法 执行action时,会通过sparkContext的runJob()触发job(DAGScheduler),从触发action的那个rdd开始,首先为最后一个rdd创建一个stage,然后向前推,如果发现某个RDD是款依赖,那么将宽依赖的那个RDD穿件一个新的stage,那个rdd就是新的stage的最后一个rdd。以此类推。DAGScheduler
2017-06-19 15:46:03
328
原创 Work深度剖析
Master要求worker启动Driver和Executor worker启动driver原理是,worker内部会启动一个线程-driverRunner,driverRunner负责启动driver进程并管理driver进程。 worker启动executor原理是,worker内部启动一个线程-executorRunner,executorRunner负责启动executor并对execu
2017-06-18 10:53:59
271
原创 Master深度剖析
一. Master注册机制 driver启动后,执行application代码,sparkcontext初始化时,底层的sparkdeployschedulerbackend,通过appclient的内部现场clientactor发送registerapplication到Master注册application 将application,driver,最新的可用的worker信息分别加入相应缓存
2017-06-15 20:16:07
428
原创 两种yarn集群提交方式
yarn yarn是一种新的hadoop资源管理器,包括 一个全局的资源管理器ResourceManager,ResourceManager的每个节点代理NodeManager, 每个应用的APplicationMaster, 每个ApplicationMaster拥有多个Container在NodeManager上运行yarn-client提交模式 一般用于测试,在本地启动driver
2017-06-15 14:15:02
978
原创 spark架构原理(一)
spark内核架构由一下几部分组成 1、Application 自己的spark程序2、spark-submit 提交任务, standalone模式下会创建一个DriverActor进程3、Driver(进程) 执行application程序,初始化sparkcontext,4、SparkContext 构造DAGschedule和TaskSchedule8、Job 每执行一个acti
2017-06-15 10:45:55
1137
原创 RDD的持久化
为什么要持久化 action操作时,触发之前的transform算子,action执行完,只保留了最后的结果,之前的RDD会被丢掉,如果后面又要进行action操作,则需要从最初的RDD重新计算。rdd持久化后,只在第一次计算时,进行计算,之后再使用该RDD直接读取缓存,无需计算。持久化方式 persist()或cache(),二者的区别是,cache() 方法其实调用的就是persist()
2017-06-14 18:17:11
328
原创 spark常用的transformation
spark支持两种RDD操作,transformation操作对当前的RDD进行转换形成新的RDD;action是指对RDD的最后操作,返回结果给driver。 transformation是lazy的,即只有action操作时,才执行transformation,也就是说如果程序中只有transformation操作,即使运行程序,该程序也不会执行。这样做的目的是优化执行过程,避免产生过多中间结
2017-04-22 15:11:30
333
原创 spark架构总结
spark架构可分为:driver(进程),executor(进程),task(进程) 1. driver(进程) 主要功能:初始化操作,发送请求给集群master,注册spark应用程序。master在接受spark应用程序注册申请后,发送请求给worker,进行资源(executor)调度和分配。driver运行在提交spark任务的机器上。执行action之前transformation和
2017-04-22 14:29:33
297
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人