自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(33)
  • 资源 (2)
  • 收藏
  • 关注

原创 GraphX【算法实现】 同配性算法:平均相邻度算法

GraphX 实现平均相邻度算法

2023-02-18 16:11:32 227

原创 GraphX【算法实现】同配性算法:平均连通性算法

GraphX实现平均连通性算法

2023-02-18 14:53:40 269

原创 【Feign】Feign重写Client,从服务注册中心动态获取服务,实现请求动态转发

Spring Cloud Feign实现动态服务转发

2023-01-07 10:48:07 1615

原创 【Spark GraphX】分区策略源码解析

GraphX采用点切割(Vertex cut)策略,这样可以减少通信和存储开销。在逻辑上,这种方式相当于将边分配到机器上并且点跨越多个机器。边分配的确切方式依赖PartitionStrategy中定义的分区策略。在PartitionStrategy中定义了四种分区策略:2D分区策略(EdgePartition2D);1D分区策(EdgePartiition1D);随机点切割(RandomVertexCut),正则随机点切割(CanonicalRandomVertexCut)。...

2022-08-08 15:07:30 751

原创 【问题处理】Quartz事务不生效

quartz事务无法生效问题定位处理

2022-07-19 17:32:45 2193 1

原创 【JanusGraph】点属性删除流程源码解析

JanusGraph顶点属性删除流程源码剖析

2022-07-11 16:22:40 321

原创 【JanusGraph】点数据操作源码解析

Janusgraph 点操作

2022-07-10 10:00:09 280

原创 【JanusGraph】OLAP以spark为引擎,实现数据检索-(数据以RDD缓存内存)

实现思路:检索hbase数据–》构建graphRDD --》 缓存rdd到内存 --》 获取缓存rdd数据(sc.getPersistendRdd) --》其他操作;1 配置文件:配置信息管理类:org.apache.tinkerpop.gremlin.hadoop.Constants######################################################## Gremlin hadoop configuration #####

2022-05-23 21:31:10 309

原创 [设计模式8]组合模式

目录1,基本介绍:2,组合模式的注意事项和细节2.1 优点2.2 缺点3,模式的结构3.1 透明方式3.2 安全方式4,模式实现:4.1 透明组合模式4.2 安全组合模式5,组合模式应用实例:6,组合模式在java HashMap源码中的应用1,基本介绍:1) 组合模式(Composite Pattern),又叫部分整体模式,它是一种将对象组合成树状的层次结构的模式,将对象组合成树状结构以表示“整体-部分”的层次关系。2) 组合模式依据树...

2022-01-21 15:53:58 121

原创 【设计模式7】装饰者模式

装饰器模式的定义与特点装饰器(Decorator)模式的定义:指在不改变现有对象结构的情况下,动态地给该对象增加一些职责(即增加其额外功能)的模式,它属于对象结构型模式。通常情况下,扩展一个类的功能会使用继承方式来实现。但继承具有静态特征,耦合度高,并且随着扩展功能的增多,子类会很膨胀。如果使用组合关系来创建一个包装对象(即装饰对象)来包裹真实对象,并在保持真实对象的类结构不变的前提下,为其提供额外的功能,这就是装饰器模式的目标。优点装饰器是继承的有力补充,比继承灵活,在不改变原有对象的情况下,动态

2022-01-20 21:14:07 334

原创 【设计模式6】桥接模式

基本介绍桥接模式(Bridge模式)是指:将实现与抽象放在两个不同的类层次中,使两个层次可以独立改变。是一种结构型设计模式。Bridge模式基于类的最小设计原则,通过使用封装、聚合及继承等行为让不同的类承担不同的职责。它的主要特点是把抽象(Abstraction)与行为实现(Implementation)分离开来,从而可以保持各部分的独立性以及应对他们的功能扩展。意图:将抽象部分与实现部分分离,使它们都可以独立的变化。主要解决:在有多种可能会变化的情况下,用继承会造成类爆炸问题,扩展起来不灵活

2022-01-19 18:06:48 331

原创 【设计模式5】适配器模式

基本介绍适配器模式(Adapter Pattern)将某个类的接口转换成客户端期望的另一个接口表示,主的目的是兼容性,让原本因接口不匹配不能一起工作的两个类可以协同工作。其别名为包装器(Wrapper)适配器模式属于结构型模式主要分为三类:类适配器模式、对象适配器模式、接口适配器模式原理适配器模式:将一个类的接口转换成另一种接口.让原本接口不兼容的类可以兼容从用户的角度看不到被适配者,是解耦的用户调用适配器转化出来的目标接口方法,适配器再调用被适配者的相关接口方法用户收到反馈结果,感觉

2022-01-18 18:08:24 126

原创 【设计模式4】建造者模式

介绍建造者模式(Builder Pattern) 又叫生成器模式,是一种对象构建模式。它可以将复杂对象的建造过程抽象出来(抽象类别),使这个抽象过程的不同实现方法可以构造出不同表现(属性)的对象。建造者模式 是一步一步创建一个复杂的对象,它允许用户只通过指定复杂对象的类型和内容就可以构建它们,用户不需要知道内部的具体构建细节。建造者模式 使用多个简单的对象一步一步构建成一个复杂的对象。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。一个 Builder 类会一步一步构造最终的对象。

2022-01-17 11:51:57 99

原创 【Spark程序执行3】任务划分

【Spark程序执行3】任务划分承接【Spark程序执行2】阶段划分,在划分好阶段之后,会提交stage:如下: private[scheduler] def handleJobSubmitted(jobId: Int, finalRDD: RDD[_], func: (TaskContext, Iterator[_]) => _, partitions: Array[Int], callSite: CallSite, listener

2022-01-16 22:47:25 826

原创 【设计模式3】原型模式

基本介绍原型模式(Prototype模式)是指:用原型实例指定创建对象的种类,并且通过拷贝这些原型,创建新的对象;原型模式是一种创建型设计模式,允许一个对象再创建另外一个可定制的对象,无需知道如何创建的细节;工作原理是:通过将一个原型对象传给那个要发动创建的对象,这个要发动创建的对象通过请求原型对象拷贝它们自己来实施创建,即 对象.clone();形象的理解:孙大圣拔出猴毛, 变出其它孙大圣。这种模式是实现了一个原型接口,该接口用于创建当前对象的克隆。当直接创建对象的代价比较大时,则采用这种模

2022-01-16 20:35:36 253

原创 【设计模式2】工厂模式

简单工厂模式基本介绍简单工厂模式是属于创建型模式,是工厂模式的一种。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式:定义一个创建对象的接口,将对象的创建和本身的业务逻辑分离,降低系统的耦合度,使得两个修改起来相对容易些,当以后实现改变时,只需要修改工厂类即可。在软件开发中,当我们会用到大量的创建某种、某类或者某批对象时,就会使用到工厂模式。定义一个可以实例化的Pizza类,封装创建对象的类,UML类图如下:示例代码:1,构建Pizza抽象类:public abs

2022-01-16 17:05:38 196

原创 【设计模式1】单例模式

1,懒汉模式:延迟加载,只有在真正使用的时候,才开始实例化;线程安全问题double check 枷锁优化编译器(JIT),CPU可能会对指令进行重重新排序,导致使用到尚未初始化的实力,可以通过添加volatile关键字机进行修饰,对于volatile修饰的字段,可以防止指令重排序以及内存立马可见;推荐使用的代码示例:public class SingletonDemo { private volatile static SingletonDemo instance; p

2022-01-12 22:58:37 205

原创 【Spark程序执行2】阶段划分(dagScheduler)

【Spark程序执行1】SparkContext对象构建以及RDD依赖解析【Spark程序执行2】阶段划分(dagScheduler)Spark任务阶段划分主要是DagScheduler控制,那么底层源码是如何呢?我们以rdd.collect()方法入手分析:1,runJob()方法最后会调用dagScheduler.runJob()方法;2,DagScheduler的runJob方法中,会有submitJob()方法3,submitJob方法会将JobSubmitted放入到事件队列中,

2022-01-05 22:25:23 1130

原创 【Spark程序执行1】SparkContext对象构建以及RDD依赖解析

【Spark程序执行1】SparkContext对象构建1,构建SparkContext对象,以及该对象核心属性介绍:class SparkContext(config: SparkConf) extends Logging { ...... //spark配置信息:基础配置 | 环境配置 private var _conf: SparkConf = _ private var _eventLogDir: Option[URI] = None private var _even

2022-01-03 22:37:42 1513

原创 【Tinkerpop整理】以Spark为引擎全量检索图库数据流程源码解析-part3

【Tinkerpop整理】以Spark为引擎全量检索图库数据流程源码解析-part1【Tinkerpop整理】以Spark为引擎全量检索图库数据流程源码解析-part2【Tinkerpop整理】以Spark为引擎全量检索图库数据流程源码解析-part311:Backend/** * These are the names for the edge store and property index databases, respectively. * The edge store contains

2022-01-02 21:38:46 255

原创 【Tinkerpop整理】以Spark为引擎全量检索图库数据流程源码解析-part2

【Tinkerpop整理】以Spark为引擎全量检索图库数据流程源码解析-part16,HadoopInputFormat//静态块,构建JanusGraphVertex反序列化对象,构建JanusGraphHadoopSetupImpl对象时,会打开图static { refCounter = new RefCountedCloseable<>((conf) -> new JanusGraphVertexDeserializer(new JanusGraph

2022-01-02 21:31:10 326

原创 【Tinkerpop整理】以Spark为引擎全量检索图库数据流程源码解析-part1

1,SparkGraphComputer1,driver端执行,并构建sparkContext;2,,构建spark任务执行相关配置信息;3,构建inputRdd,并启动executor任务执行;源码如下:// create a message-passing friendly rdd from the input rddboolean partitioned = false;//读取数据,并构建RDD,JavaPairRDD<Object, VertexWritable> lo

2022-01-02 21:07:25 936

原创 【Tinkerpop整理】Spark引擎检索JanusGraph图数据

TinkerPop提供以Spark为引擎批量检索图数据:实现思路:检索hbase数据–》构建graphRDD --》 缓存rdd到内存 --》 获取缓存rdd数据(sc.getPersistendRdd) --》其他操作;1,配置文件:配置信息管理类:org.apache.tinkerpop.gremlin.hadoop.Constants######################################################## Gremlin hadoop c

2022-01-02 20:58:12 450

原创 Spark整理:任务提交源码解析-part2

Inbox 结构:private[netty] class Inbox(val endpointName: String, val endpoint: RpcEndpoint) extends Logging { inbox => // Give this an alias so we can use it more clearly in closures. //消息体 @GuardedBy("this") protected val messages = new java

2021-12-27 22:18:11 944

原创 Spark整理:任务提交源码解析-part1

1,Spark任务提交入口:在脚本提交与java类提交,都会调用 org.apache.spark.deploy.SparkSubmit 类 main方法:2,调用doSubmit方法:3,构建SparkSubmitArguments对象(Spark任务提交的参数解析)Spark运行时的参数:参数属性:在这里插入代码片var master: String = null var deployMode: String = null var executorMemory: String

2021-12-19 19:49:56 2337

原创 Spark整理:spark 任务调度

在生产环境下,Spark 集群的部署方式一般为 YARN-Cluster 模式,之后的内核分析内容中我们默认集群的部署方式为 YARN-Cluster 模式。 Driver 线程主 要 是 初 始 化 SparkContext 对 象 , 准 备 运 行 所 需 的 上 下 文 , 然 后 一 方 面 保 持 与ApplicationMaster 的 RPC 连接,通过 ApplicationMaster 申请资源,另一方面根据用户业务逻辑开始调度任务,将任务下发到已有的空闲 Executor 上。当

2021-12-18 18:57:11 2545

原创 Spark官方文档整理:spark-core

Spark 官方文档1,spark 概述Apache Spark 是一个快速通用的集群计算系统,它提供了提供了java,scala,python和R的高级API,以及一个支持一般图计算的优化引擎。它同样也一系列丰富的高级工具包括:Spark sql 用于sql和结构化数据处理,MLlib用于机器学习,Graphx用于图数据处理,以及Spark Streaming用于流数据处理。2,快速入门本教程对使用spark进行简单介绍。首先我们会通过spark的交互式 shell工具介绍Python和scala

2021-12-05 21:20:22 3088

原创 Spark整理:相关名词解释

DAG:大数据计算引擎框架我们根据使用方式的不同一般会分为四类,其中第一类就是Hadoop 所承载的 MapReduce,它将计算分为两个阶段,分别为 Map 阶段 和 Reduce 阶段。对于上层应用来说,就不得不想方设法去拆分算法,甚至于不得不在上层应用实现多个 Job 的串联,以完成一个完整的算法,例如迭代计算。 由于这样的弊端,催生了支持 DAG 框架的产生。因此,支持 DAG 的框架被划分为第二代计算引擎。如 Tez 以及更上层的Oozie。这里我们不去细究各种 DAG 实现之间的区别,不过

2021-12-05 20:59:07 1360

原创 Spark整理:RDD容错

RDD提供了一种高度受限的共享内存模型,即RDD是只读的记录分区的集合,只能通过在其他RDD执行确定的转换操作(如map、join和group by)而创建,然而这些限制使得实现容错的开销很低。与分布式共享内存系统需要付出高昂代价的检查点和回滚机制不同,RDD通过Lineage来重建丢失的分区:一个RDD中包含了如何从其他RDD衍生所必需的相关信息,从而不需要检查点操作就可以重构丢失的数据分区。分布式数据集的容错性有两种方式:即数据检查点和记录数据的更新。我们面向的是大规模数据分析,数据检查点操作成本很高

2021-12-05 20:35:20 906

原创 Spark整理:RDD中是否保存数据

根据编写Spark任务的代码来看,很直观的感觉是RDD就是一个只读的数据,例如 rdd.foreach(println)。但是不是, RDD其实不存储真是的数据,只存储数据的获取的方法,以及分区的方法,还有就是数据的类型。百闻不如一见, 下面看看RDD的源码:![在这里插入图片描述](https://img-blog.csdnimg.cn/b66b14c586ff45c1ac9eb347734334a5.png?x-oss-process=image/watermark,type_d3F5LXplbm

2021-12-05 20:29:39 2881

原创 Spark整理-名词解释-RDD

Spark系列:名词解释-RDDRDD: Spark基本的计算单元,一种抽象的数据结构。弹性分布式数据集,是一种内存抽象,可以理解为一个大数组,数组的元素是RDD的分区Partition,分布在集群上RDD是Spark的最基本抽象,是对分布式内存的抽象使用,实现了以操作本地集合的方式来操作分布式数据集的抽象实现,代表一个不可变(只读)、可分区、里面的元素可并行计算的集合弹性指RDD是一个可容错的数据集;理解:Ø 想象成一个大的数组,里面包含元素,数组被切分成partion放在不同节点上,还可以看

2021-11-14 21:44:19 2033

原创 Spark整理-名词解释

Spark系列1,概述(1)为什么会有Spark?因为传统的并行计算模型无法有效的解决迭代计算(iterative)和交互式计算(interactive);而Spark的使命便是解决这两个问题,这也是他存在的价值和理由。(2)Spark如何解决迭代计算?其主要实现思想就是RDD,把所有计算的数据保存在分布式的内存中。迭代计算通常情况下都是对同一个数据集做反复的迭代计算,数据在内存中将大大提升IO操作。这也是Spark涉及的核心:内存计算。(3)Spark如何实现交互式计算?交互式下对查询速度、计算速

2021-11-14 21:28:42 1379

原创 Spark部分一:基本环境搭建

为什么使用Spark安装Spark 环境CentOS 6.5Server模式固定IP地址配置vi /etc/sysconfig/network-scripts/ifcfg-eth0主要编辑 IPADDR, NETMASK, GATEWAY, BOOTPROTO,DNS1这几项DNS域名解析配置vi /etc/resolv.conf配置 nameserver=dns服务器地址配...

2019-06-30 17:36:53 172

spark官方文档.docx

spark-core官方文档

2021-12-05

spark新手上路之源码解析.pdf

spark2新手教程

2021-11-14

空空如也

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

TA关注的人

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