- 博客(36)
- 资源 (2)
- 收藏
- 关注
原创 【数据治理CDGA笔记】第三章:数据治理
定义:业务术语表不仅仅是术语和定义的列表,而且每个术语还有其他有价值的元数据关联,包括:同义词、度量、血缘、业务规则、负责管理术语的人员等;问题管理(Issue Management) :识别、定义、升级和处理问题,针对如下领域:数据安全、数据访问、数据质量、合规、数据所有权、制度、标准、术语和数据治理程序等。参考数据和主数据:它包括参考数据管理控制流程、数据记录系统、建立标准和授权应用、实体解析标准。数据建模和设计:包括数据模型管理程序,数据模型的命名规范,定义标准,标准域,标准缩写。
2024-07-28 09:58:55
703
原创 【Spark GraphX】分区策略源码解析
GraphX采用点切割(Vertex cut)策略,这样可以减少通信和存储开销。在逻辑上,这种方式相当于将边分配到机器上并且点跨越多个机器。边分配的确切方式依赖PartitionStrategy中定义的分区策略。在PartitionStrategy中定义了四种分区策略:2D分区策略(EdgePartition2D);1D分区策(EdgePartiition1D);随机点切割(RandomVertexCut),正则随机点切割(CanonicalRandomVertexCut)。...
2022-08-08 15:07:30
918
原创 【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
391
原创 [设计模式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
184
原创 【设计模式7】装饰者模式
装饰器模式的定义与特点装饰器(Decorator)模式的定义:指在不改变现有对象结构的情况下,动态地给该对象增加一些职责(即增加其额外功能)的模式,它属于对象结构型模式。通常情况下,扩展一个类的功能会使用继承方式来实现。但继承具有静态特征,耦合度高,并且随着扩展功能的增多,子类会很膨胀。如果使用组合关系来创建一个包装对象(即装饰对象)来包裹真实对象,并在保持真实对象的类结构不变的前提下,为其提供额外的功能,这就是装饰器模式的目标。优点装饰器是继承的有力补充,比继承灵活,在不改变原有对象的情况下,动态
2022-01-20 21:14:07
503
原创 【设计模式6】桥接模式
基本介绍桥接模式(Bridge模式)是指:将实现与抽象放在两个不同的类层次中,使两个层次可以独立改变。是一种结构型设计模式。Bridge模式基于类的最小设计原则,通过使用封装、聚合及继承等行为让不同的类承担不同的职责。它的主要特点是把抽象(Abstraction)与行为实现(Implementation)分离开来,从而可以保持各部分的独立性以及应对他们的功能扩展。意图:将抽象部分与实现部分分离,使它们都可以独立的变化。主要解决:在有多种可能会变化的情况下,用继承会造成类爆炸问题,扩展起来不灵活
2022-01-19 18:06:48
392
原创 【设计模式5】适配器模式
基本介绍适配器模式(Adapter Pattern)将某个类的接口转换成客户端期望的另一个接口表示,主的目的是兼容性,让原本因接口不匹配不能一起工作的两个类可以协同工作。其别名为包装器(Wrapper)适配器模式属于结构型模式主要分为三类:类适配器模式、对象适配器模式、接口适配器模式原理适配器模式:将一个类的接口转换成另一种接口.让原本接口不兼容的类可以兼容从用户的角度看不到被适配者,是解耦的用户调用适配器转化出来的目标接口方法,适配器再调用被适配者的相关接口方法用户收到反馈结果,感觉
2022-01-18 18:08:24
164
原创 【设计模式4】建造者模式
介绍建造者模式(Builder Pattern) 又叫生成器模式,是一种对象构建模式。它可以将复杂对象的建造过程抽象出来(抽象类别),使这个抽象过程的不同实现方法可以构造出不同表现(属性)的对象。建造者模式 是一步一步创建一个复杂的对象,它允许用户只通过指定复杂对象的类型和内容就可以构建它们,用户不需要知道内部的具体构建细节。建造者模式 使用多个简单的对象一步一步构建成一个复杂的对象。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。一个 Builder 类会一步一步构造最终的对象。
2022-01-17 11:51:57
152
原创 【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
902
原创 【设计模式3】原型模式
基本介绍原型模式(Prototype模式)是指:用原型实例指定创建对象的种类,并且通过拷贝这些原型,创建新的对象;原型模式是一种创建型设计模式,允许一个对象再创建另外一个可定制的对象,无需知道如何创建的细节;工作原理是:通过将一个原型对象传给那个要发动创建的对象,这个要发动创建的对象通过请求原型对象拷贝它们自己来实施创建,即 对象.clone();形象的理解:孙大圣拔出猴毛, 变出其它孙大圣。这种模式是实现了一个原型接口,该接口用于创建当前对象的克隆。当直接创建对象的代价比较大时,则采用这种模
2022-01-16 20:35:36
318
原创 【设计模式2】工厂模式
简单工厂模式基本介绍简单工厂模式是属于创建型模式,是工厂模式的一种。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式:定义一个创建对象的接口,将对象的创建和本身的业务逻辑分离,降低系统的耦合度,使得两个修改起来相对容易些,当以后实现改变时,只需要修改工厂类即可。在软件开发中,当我们会用到大量的创建某种、某类或者某批对象时,就会使用到工厂模式。定义一个可以实例化的Pizza类,封装创建对象的类,UML类图如下:示例代码:1,构建Pizza抽象类:public abs
2022-01-16 17:05:38
256
原创 【设计模式1】单例模式
1,懒汉模式:延迟加载,只有在真正使用的时候,才开始实例化;线程安全问题double check 枷锁优化编译器(JIT),CPU可能会对指令进行重重新排序,导致使用到尚未初始化的实力,可以通过添加volatile关键字机进行修饰,对于volatile修饰的字段,可以防止指令重排序以及内存立马可见;推荐使用的代码示例:public class SingletonDemo { private volatile static SingletonDemo instance; p
2022-01-12 22:58:37
271
原创 【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
1326
原创 【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
1683
原创 【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
285
原创 【Tinkerpop整理】以Spark为引擎全量检索图库数据流程源码解析-part2
【Tinkerpop整理】以Spark为引擎全量检索图库数据流程源码解析-part16,HadoopInputFormat//静态块,构建JanusGraphVertex反序列化对象,构建JanusGraphHadoopSetupImpl对象时,会打开图static { refCounter = new RefCountedCloseable<>((conf) -> new JanusGraphVertexDeserializer(new JanusGraph
2022-01-02 21:31:10
394
原创 【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
1064
原创 【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
550
原创 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
1032
原创 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
2468
原创 Spark整理:spark 任务调度
在生产环境下,Spark 集群的部署方式一般为 YARN-Cluster 模式,之后的内核分析内容中我们默认集群的部署方式为 YARN-Cluster 模式。 Driver 线程主 要 是 初 始 化 SparkContext 对 象 , 准 备 运 行 所 需 的 上 下 文 , 然 后 一 方 面 保 持 与ApplicationMaster 的 RPC 连接,通过 ApplicationMaster 申请资源,另一方面根据用户业务逻辑开始调度任务,将任务下发到已有的空闲 Executor 上。当
2021-12-18 18:57:11
2832
原创 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
3402
原创 Spark整理:相关名词解释
DAG:大数据计算引擎框架我们根据使用方式的不同一般会分为四类,其中第一类就是Hadoop 所承载的 MapReduce,它将计算分为两个阶段,分别为 Map 阶段 和 Reduce 阶段。对于上层应用来说,就不得不想方设法去拆分算法,甚至于不得不在上层应用实现多个 Job 的串联,以完成一个完整的算法,例如迭代计算。 由于这样的弊端,催生了支持 DAG 框架的产生。因此,支持 DAG 的框架被划分为第二代计算引擎。如 Tez 以及更上层的Oozie。这里我们不去细究各种 DAG 实现之间的区别,不过
2021-12-05 20:59:07
1441
原创 Spark整理:RDD容错
RDD提供了一种高度受限的共享内存模型,即RDD是只读的记录分区的集合,只能通过在其他RDD执行确定的转换操作(如map、join和group by)而创建,然而这些限制使得实现容错的开销很低。与分布式共享内存系统需要付出高昂代价的检查点和回滚机制不同,RDD通过Lineage来重建丢失的分区:一个RDD中包含了如何从其他RDD衍生所必需的相关信息,从而不需要检查点操作就可以重构丢失的数据分区。分布式数据集的容错性有两种方式:即数据检查点和记录数据的更新。我们面向的是大规模数据分析,数据检查点操作成本很高
2021-12-05 20:35:20
1048
原创 Spark整理:RDD中是否保存数据
根据编写Spark任务的代码来看,很直观的感觉是RDD就是一个只读的数据,例如 rdd.foreach(println)。但是不是, RDD其实不存储真是的数据,只存储数据的获取的方法,以及分区的方法,还有就是数据的类型。百闻不如一见, 下面看看RDD的源码:、可分区、里面的元素可并行计算的集合弹性指RDD是一个可容错的数据集;理解:Ø 想象成一个大的数组,里面包含元素,数组被切分成partion放在不同节点上,还可以看
2021-11-14 21:44:19
2339
原创 Spark整理-名词解释
Spark系列1,概述(1)为什么会有Spark?因为传统的并行计算模型无法有效的解决迭代计算(iterative)和交互式计算(interactive);而Spark的使命便是解决这两个问题,这也是他存在的价值和理由。(2)Spark如何解决迭代计算?其主要实现思想就是RDD,把所有计算的数据保存在分布式的内存中。迭代计算通常情况下都是对同一个数据集做反复的迭代计算,数据在内存中将大大提升IO操作。这也是Spark涉及的核心:内存计算。(3)Spark如何实现交互式计算?交互式下对查询速度、计算速
2021-11-14 21:28:42
1503
原创 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
220
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人