05 2020 档案
Activity6.0集成springboot2.0
摘要:1、添加依赖 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 阅读全文
posted @ 2020-05-26 18:47 清浊 阅读(622) 评论(0) 推荐(0)
工作流
摘要:1、审批业务场景,模型化 StartEvent,开始 UserTask,任务 ExclusiveGateway,人事审批 EndEvent,结束 SequenceFlow,顺序流 购物工作流程模型化 2、工作流是对工作流程及其个操作步骤之间业务规则的抽象,概括描述 工作流建模即将工作流程中的工作如何 阅读全文
posted @ 2020-05-23 15:37 清浊 阅读(462) 评论(0) 推荐(0)
CPU多级缓存-缓存一致性(MESI)
摘要:1、用于保证多个CPU cache之间缓存共享数据的一致性,M代表Modified,E代表 cache之间缓存共享数据的一致性,M代表Modified,E代表exclusive独享的,S表示Share共享,I表示Invalid 2、多级缓存-乱序执行优化 阅读全文
posted @ 2020-05-22 15:56 清浊 阅读(548) 评论(0) 推荐(0)
Spark性能优化一
摘要:由于Spark的计算本质是基于内存的,所以Spark性能程序的性能可能因为集群中的任何因素出现瓶颈:CPU、网络带宽、或者是内存。如果内存能够容纳得下所有的数据,那么网络传输和通信就会导致性能出现瓶颈。但是如果内存比较紧张,不足以放下所有的数据(比如在针对10亿以上的数据量进行计算时),还是需要对内 阅读全文
posted @ 2020-05-19 20:31 清浊 阅读(431) 评论(0) 推荐(0)
Spark内核源码解析十四:checkpoint原理剖析
摘要:Checkpoint,是Spark提供的一个比较高级的功能。有的时候啊,比如说,我们的Spark应用程序,特别的复杂,然后呢,从初始的RDD开始,到最后整个应用程序完成,有非常多的步骤,比如超过20个transformation操作。而且呢,整个应用运行的时间也特别长,比如通常要运行1~5个小时。在 阅读全文
posted @ 2020-05-19 01:02 清浊 阅读(277) 评论(0) 推荐(0)
Spark内核源码解析十三:cacheManager原理解析和源码解析
摘要:CacheManager原理图 入口RDD的iterator方法 final def iterator(split: Partition, context: TaskContext): Iterator[T] = { // 如果持久化级别不是none,之前持久化过RDD,那么就不要直接去执行父RDD 阅读全文
posted @ 2020-05-19 00:28 清浊 阅读(268) 评论(0) 推荐(0)
Spark内核源码解析十一:BlockManager解析
摘要:BlockManager负责数据存储管理,原理图如下 相关代码在org.apache.spark.storage,BlockManagerMaster,BlockManagerMasterActor,主要是负责管理blockManager的映射 /* * Licensed to the Apache 阅读全文
posted @ 2020-05-18 22:45 清浊 阅读(375) 评论(0) 推荐(0)
Spark内核源码解析十二:shuffle原理解析
摘要:第一个特点, 在Spark早期版本中,那个bucket缓存是非常非常重要的,因为需要将一个ShuffleMapTask所有的数据都写入内存缓存之后,才会刷新到磁盘。但是这就有一个问题,如果map side数据过多,那么很容易造成内存溢出。所以spark在新版本中,优化了,默认那个内存缓存是100kb 阅读全文
posted @ 2020-05-18 22:12 清浊 阅读(521) 评论(0) 推荐(0)
Spark内核源码解析十:task原理解析和源码解析
摘要:入口函数如下,Executor // 对于每一个task都会创建一个taskRunner,继承了java的Runnable接口可以作为一个线程任务进行调用,后面会放入线程池中进行执行 def launchTask( context: ExecutorBackend, taskId: Long, at 阅读全文
posted @ 2020-05-14 19:02 清浊 阅读(394) 评论(0) 推荐(0)
TortoiseGit简单使用
摘要:一直采用sourcetree来作为git图形化界面,由于sourcetree特别卡顿,每次提交代码浪费大量时间,开始切换toroiseGit 1、首先生成秘钥 采用PuTTYgen生成公钥和私钥,然后保存公钥和私钥,因为不能截图请大家脑补 2、传递公钥到gitlab或者gitee上然后配置好 3、P 阅读全文
posted @ 2020-05-13 13:43 清浊 阅读(291) 评论(0) 推荐(0)
Spark内核源码解析九:executor原理解析和源码解析
摘要:1、executor注册机制 executor启动的是一个CoarseGrainedExecutorBackend这样一个进程, // Make fake resource offers on just one executor def makeOffers(executorId: String) 阅读全文
posted @ 2020-05-12 18:23 清浊 阅读(367) 评论(0) 推荐(0)
Spark内核源码解析九:TaskScheduler原理解析和源码解析
摘要:1、DAGScheduler submitMissingTasks taskScheduler.submitTasks TaskSchedulerImpl.submitTasks createTaskSetManager backend.reviveOffers() DriverActor Revi 阅读全文
posted @ 2020-05-12 17:54 清浊 阅读(281) 评论(0) 推荐(0)
Spark内核源码解析八:DAGScheduler原理解析和源码解析
摘要:原理图如下 重点DAGScheduler会从触发Action操作的RDD划分stage,然后往前倒退,如果之前依赖的RDD是窄依赖就会放入同一个stage,如果是宽依赖就会就会重新划分一个stage DAGScheduler runJob submitJob eventProcessLoop.pos 阅读全文
posted @ 2020-05-11 22:37 清浊 阅读(361) 评论(0) 推荐(0)
Spark内核源码解析七:job触发流程原理解析和源码解析
摘要:1、一个action就会触发一个job, package cn.spark.study.core import org.apache.spark.{SparkConf, SparkContext} /** * @author: yangchun * @description: * @date: Cr 阅读全文
posted @ 2020-05-11 18:25 清浊 阅读(247) 评论(0) 推荐(0)
Spark内核源码解析六:worker原理解析和源码解析
摘要:1、worker里面先找到launchDriver case LaunchDriver(driverId, driverDesc) => { logInfo(s"Asked to launch driver $driverId") // 创建DriverRunner线程,包括在driver失败时自动 阅读全文
posted @ 2020-05-11 15:58 清浊 阅读(268) 评论(0) 推荐(0)
Spark内核源码继续五:Master原理解析和源码解析
摘要:上篇已经降到AppClient找Master进行注册,本章主要解析Master的原理和源码解析 1、Master的主备切换原理 package org.apache.spark.deploy.master completeRecovery,过滤没有响应的worker,app,drivers,从内存缓 阅读全文
posted @ 2020-05-11 14:26 清浊 阅读(373) 评论(0) 推荐(0)
Spark内核源码解析四:SparkContext原理解析和源码解析
摘要:源码解析 主构造函数代码 private[spark] var (schedulerBackend, taskScheduler) = SparkContext.createTaskScheduler(this, master) createTaskScheduler,创建TaskScheduler 阅读全文
posted @ 2020-05-10 22:32 清浊 阅读(242) 评论(0) 推荐(0)
Spark内核源码解析三:三种提交模式
摘要:1、基于Spark内核架构也就是standalone提交,基于自己的Master-worker集群。Driver在本地启动, 2、基于yarn的yarn-cluster模式,要先分配container,然后在yarn进群的一个nodeManager上启动Driver。 3、基于yarn的yarn-c 阅读全文
posted @ 2020-05-09 17:34 清浊 阅读(266) 评论(0) 推荐(0)
spark内核源码解析一
摘要:1、Application,自己编写的spark程序。2、spark-submit,利用shell来提交自己的spark程序3、Driver,standalone提交方式,会通过反射构造出一个Driver进程。Driver进程会执行application程序。4、SparkContext,Drive 阅读全文
posted @ 2020-05-09 17:05 清浊 阅读(191) 评论(0) 推荐(0)
Spark-wordcount排序开发,二次排序和取top n
摘要:package cn.spark.study.core; import org.apache.spark.SparkConf; import org.apache.spark.api.java.JavaPairRDD; import org.apache.spark.api.java.JavaRDD 阅读全文
posted @ 2020-05-08 13:30 清浊 阅读(300) 评论(0) 推荐(0)
Spark-共享变量工作原理
摘要:Spark一个非常重要的特性就是共享变量。 默认情况下,如果在一个算子的函数中使用到了某个外部的变量,那么这个变量的值会被拷贝到每个task中。此时每个task只能操作自己的那份变量副本。如果多个task想要共享某个变量,那么这种方式是做不到的。 Spark为此提供了两种共享变量,一种是Broadc 阅读全文
posted @ 2020-05-08 12:49 清浊 阅读(345) 评论(0) 推荐(0)
Spark-RDD持久化
摘要:多次对某个RDD进行transformation或者action,如果没有做RDD持久化,那么每次都要重新计算一个RDD,会消耗大量时间,降低Spark性能。 Spark非常重要的一个功能特性就是可以将RDD持久化在内存中。当对RDD执行持久化操作时,每个节点都会将自己操作的RDD的partitio 阅读全文
posted @ 2020-05-07 13:36 清浊 阅读(865) 评论(0) 推荐(0)
Spark-Spark RDD操作
摘要:Spark只支持两种RDD操作,transformation和action操作,transformation针对已有的RDD创建一个新的RDD文件,action主要是对RDD进行最后操作,比如遍历和reduce、保存到文件等,并可以返回结果到Driver程序 transformation,都具有la 阅读全文
posted @ 2020-05-04 22:31 清浊 阅读(517) 评论(0) 推荐(0)
spark-spark RDD的创建
摘要:进行Spark核心编程时,首先要做的第一件事,就是创建一个初始的RDD。该RDD中,通常就代表和包含了Spark应用程序的输入源数据。然后在创建了初始的RDD之后,才可以通过Spark Core提供的transformation算子,对该RDD进行转换,来获取其他的RDD。 Spark Core提供 阅读全文
posted @ 2020-05-04 21:31 清浊 阅读(789) 评论(0) 推荐(0)
spark-spark架构原理
摘要:1、Driver,启动之后执行一些初始化操作,然后向Master进行注册,让master知道有一个spark应用程序要执行。在Executor反向注册以后,就可以开始正式执行spark程序,首先第一步创建初始RDD,读取数据源。从HDFS文件内容中读取数据,分布到work节点上,形成内存中的分布式数 阅读全文
posted @ 2020-05-04 21:04 清浊 阅读(161) 评论(0) 推荐(0)
spark大数据-wordcount原理剖析
摘要:1、代码如下 package cn.spark.study.core import org.apache.spark.{SparkConf, SparkContext} /** * @author: yangchun * @description: * @date: Created in 2020- 阅读全文
posted @ 2020-05-04 17:35 清浊 阅读(602) 评论(0) 推荐(0)
spark-wordcount
摘要:package cn.spark.study.core; import org.apache.spark.SparkConf; import org.apache.spark.api.java.JavaPairRDD; import org.apache.spark.api.java.JavaRDD 阅读全文
posted @ 2020-05-03 22:16 清浊 阅读(240) 评论(0) 推荐(0)
spark工作原理
摘要:1、分布式 2、基于内存 3、迭代式计算 每一批节点上的每一批数据就是一个RDD RDD是spark的核心抽象 1、RDD是Spark提供的核心抽象,全称为Resillient Distributed Dataset,即弹性分布式数据集。2、RDD在抽象上来说是一种元素集合,包含了数据。它是被分区的 阅读全文
posted @ 2020-05-03 18:43 清浊 阅读(1496) 评论(0) 推荐(0)
大数据集群搭建
摘要:1、virtualbox 1、关闭虚拟机选择第一个休眠,会记录各种进程的状态。如果直接关掉虚拟机会关闭各种进程,导致环境崩溃。 2、Centos7 1、修改网络 网卡桥接,配置主机和虚拟机相互pingtong vim /etc/sysconfig/network-scripts/ifcfj-enp0 阅读全文
posted @ 2020-05-01 22:47 清浊 阅读(1264) 评论(0) 推荐(0)