- 博客(26)
- 资源 (1)
- 收藏
- 关注
原创 spark常用算子
1、Transformation算子算子功能map(func)返回一个新的RDD,该RDD由每一个输入元素经过func函数转换后组成filter(func)返回一个新的RDD,该RDD由经过func函数计算后返回值为true的输入元素组成flatMap(func)类似于map,但是每一个输入元素可以被映射为0或多个输出元素(所以func应该返回一个序列,而不是单一元素)mapPartitions(func)类似于map,但独立地在RDD的每一个分片上运行,因此
2021-06-19 15:51:42 25
原创 Spark的shuffle流程
1、shuffle流程演变Spark 0.8及以前 Hash Based ShuffleSpark 0.8.1 为Hash Based Shuffle引入File Consolidation机制Spark 1.1 引入Sort Based Shuffle,但默认仍为Hash Based ShuffleSpark 1.2 默认的Shuffle方式改为Sort Based ShuffleSpark 2.0 Hash Based Shuffle退出历史舞台2、Hash Based Shuffle
2021-06-13 16:21:18 238
原创 Flink执行流程
1、flink关键字对比sparkflinksparkoperatorRDDoperator chainstagedata flowDAGone to one窄依赖redistribute宽依赖subtasktasktasktasksetpartitionpartitionParallelismParallelism
2021-06-09 23:11:52 1810 2
原创 Flink如何保证端到端的一致性
1、流数据处理的容错语义1、At most once --最多一次, 也就是说数据最多被处理一次,有可能会丢失2、At least once --至少一次, 也就是说数据至少会被处理一次,有可能会重复3、Exactly-Once --精准一次, 也就是说数据只会被处理一次,不会丢也不会重复,注意: 更准确的理解应该是只会被正确处理一次而不是仅一次2、Flink如何支持End-to-End Exactly-Once1、Source: offset+Checkpoint: 需要数据源支持off
2021-06-06 20:23:11 515 2
原创 Kafka运行流程整理
1、Kafka的组成分为生产者、broker、消费者2、kafka解决的问题:解耦、削峰3、一个topic下有多个partition,一个partition下有主从副本,副本位于不同的机器当中,partition中有多个message,massage由多个offset组成4、数据运行流程:生产者:1、生产者生产数据,然后从ZK中获取leader信息,发送到leader中(写到log、logindex、timeindex),leader同步数据到follower,kafka采用所有副本同步成.
2021-06-06 20:08:09 353 1
原创 Spark运行流程
1、任务调度流程1、当一个spark任务提交的时候,首先需要为spark application创建基本的运行环境,也就是在Driver创建sparkContext,同时构建DAGScheduler和TaskScheduler2、SparkContext向资源管理器申请exector运行资源3、资源管理器为exector分配资源并创建exector进程,exector的运行状况通过心跳机制向资源管理器进行汇报4、sparkContext根据RDD的依赖关系构建DAG图,构建完毕后,将DAG图提交给
2021-05-18 11:58:39 2993
原创 Spark内存模型
spark内存的组成spark的内存由四部分组成,分别是:Storage Memory、Exection Memory、User Memory、 Reserved MemoryStorage Memory:主要用来存储cache、persist的一些数据Exection Memory:主要用来存储shuffle产生的一些中间数据User Memory:主要用来存储维护用户的数据结构Reserved Memory:预留给系统使用(默认300MB)面试题bin/spark-submit
2021-05-16 18:55:50 266 1
原创 SparkCore
RDD详解RDD概念:RDD的全名是弹性分布式数据集,是Spark中最基本的数据抽象,代表一个不可变、可分区、里面的元素可并行计算的集合RDD的特点:1、不可变:immutable【不可变的集合、变量声明使用val】2、分区:partitioned【集合中的数据被划分在很多个不同的分区】3、并行计算【集合中的数据可以被并行处理,每个分区的数据被一个Task计算】RDD五大特性1.-分区列表:每个RDD都有会分区的概念,类似与HDFS的分块, 分区的目的:提高并行度!2.-用于计算每
2021-04-11 14:43:48 124
原创 Hive优化
1.基础优化1.1 hive并行操作Hive编译查询限制 : (一般是作为通用配置: cm的hive上面)说明: Hive默认同时只能编译一段HiveQL,并上锁 如何解决多个会话时, 同时只能有一个会话进行编译的问题 ? hive.driver.parallel.compilation 设置为true 是否开启一次性编译多个sql的功能 默认为 false hive.driver.parallel.compilation.global.limit 默认值为3 表示一次性最多
2021-04-01 12:00:05 287
原创 Spark笔记
1.spark的框架模块本地模式standalone模式基于yarn的模式(client、cluster)高可用2.spark的特点3.spark常用shell命令spark-shell spark-submit两条命令的参数:4.WordCount案例5.RDD概念6.RDD创建方式6.1 本地集合转为RDD的两种方式1、val rdd1 = sparkContext.parallelize(List(1,2,3,4,5)) val rdd2 = sparkConte
2021-03-29 20:52:24 151
原创 Scala基础
1、Scala特性Scala特性: 1、表达能力强,代码简洁 2、兼容java,可以访问java类库,能操作:mysql、freemarker、redis、AcviveMQ2、基础语法2.1变量定义var/val 变量名:数据类型 = 赋值val a:Int = 0var s:String = "hello"val和var关键字对比:val修饰的变量定义后不能再修改值,但可以被复写var修饰的变量可以随意修改值scala中被final修饰的变量,既不可以修改值,也不可以被复写
2021-03-18 00:18:33 147
原创 知识点整理
1、zookeeper中有那些类型的节点, 各个类型有什么特点zookeeper的节点(Znode)类型一共有两大类,分别是:临时节点和永久节点临时节点: 1、节点的生命周期依赖于创建它的会话,一旦会话结束,节点将被自动删除,也可以进行手动删除 2、临时节点不允许拥有子节点永久节点: 1、节点的生命周期不依赖于创建它的会话,只有在客户端执行删除操作的时候,才会删除节点Znode的特性: 序列化特性,如果创建节点进行制定,Znode名字后面会自动追加一个不断增加的序列号。序列号对于此节点的.
2021-03-14 22:34:06 764
原创 day22笔记(数仓分层+Hue操作+Oozie+sqoop导数据操作)
1、数仓建模(事实表、维度表、维度建模数据类型)2、渐变维3、数仓分层(ODS、DW/DWD/DWM/DWS、APP)4、HUE操作5、Oozie设置调度方式6、sqoop操作
2021-03-01 23:24:56 393
原创 day21笔记(知行教育结构说明+数据仓库概念+维度、指标概念)
1、项目背景1、近年来,在线教育产业发展十分迅速。尤其是2018年以来,在线教育平台动作不断,除了洋葱数学、考虫、作业盒子、火花思维、VIPKID、阿卡索等平台纷纷融资外,诸多在线教育平台纷纷上市。新东方在线也在2019年3月成功上市。在市场规模方面,在线教育很大程度上是随着移动互联网的浪潮发展起来的,在传统的PC时代,虽然出现了网络教育形式,但是真正的所谓在线教育仍然是在2011年左右开始爆发的,这也正是移动互联网发展和普及的时间点。统计数据显示,2011-2017年中国在线教育市场规模呈逐年增长趋
2021-02-28 22:21:25 744
原创 day18_课堂笔记
课程笔记今日内容:hbase的原理及其相关的工作机制 – 理解hbase的Bulk Load 的批量加载操作 – 操作hbase的协处理器 – 了解hbase的调优 – 了解扩展 : hbase的数据结构 – 了解1. apache HBase的原理1.1 读取数据的流程1) 由客户端发起读取数据的请求, 首先先连接 zookeeper , 从zookeeper获取hbase:meta表被哪个regionServer所管理
2021-02-24 20:14:41 285
原创 HBase表设计案例(陌陌案例)
1、HBase的名称空间1.1介绍1、HBase中的名称空间类似于mysql中不同的数据库,HBase中有两个已经存在的名称空间【default、hbase】2、hbase用于存放系统表3、用户创建表时,如果不指定名称空间,默认放到default下1.2 操作1、创建名称空间:create_namespace '名称空间名称'2、查看名称空间: 查看所有的名称空间: list_namespace 查看某一个名称空间: describe_namespace '名称空间名称'3、在指定名称
2021-02-21 16:59:41 2459 2
原创 HBase笔记
1、HBase基本介绍大数据中一款nosql型的数据库, 既然是nosql型数据库, hbase不支持事务(多行事务),也不支持SQL, 也没有表关系, 不支持join操作hbase是使用java语言开发的, 基于HDFS的, 数据最终都是存储在HDFS的hbase中查询数据主要有三种方式: - 1) 通过主键查询- 2) 通过主键的range范围查询- 3) 全表扫描主要是用于存储结构化和半结构化的数据 hbase中支持的数据类型: byte[] (字节数组) nosql
2021-02-20 19:36:54 489
原创 kafka笔记
一、kafka的基本介绍1、概述1、kafka是大数据中一款消息队列的中间件产品, 最早是有领英开发的, 后期将其贡献给了apache 成为apache的顶级项目2、kafka是采用Scala语言编写 kafka并不是对JMS规范完整实现 仅实现一部分 , kafka集群依赖于zookeeper3、kafka可以对接离线业务或者实时业务, 可以很好的和apache其他的软件进行集成, 可以做流式数据分析(实时分析)2、特点- 1) 高可靠性 : 数据不容易丢失, 数据分布式存储, 集群某
2021-02-15 16:27:40 166
原创 MapReduce运行机制
mapTask工作机制1、inputFile通过split被逻辑切分为多个split文件,TextInputFormat按行读取文件(每一个split文件对应一条MapTask线程)2、文件被读取后,执行自定义mapper任务,生成K2、V2键值对3、执行完毕后数据被加载到环形缓冲区(字节数组,可重复使用,默认大小100M,溢出率:0.8),当数据大小超过缓冲区溢出阈值,溢出部分数据开始进行落盘4、落盘数据执行过程:1、分区(默认分区方式:使用K2哈希值作为分区标准),2、排序(快排),3、comb
2021-01-17 18:26:03 97
原创 spring整合mybatis动态切换数据源+事务管理
*公司因为业务需要,需要把同一份服务的数据根据不同标识分别存放到两个数据库中(数据结构一样),刚开始为了尽快满足需求,使用了个简版(代码切换数据源),闲下来以后实在觉得太low,查看了一些demo以后,整理出来了适合自己项目的配置。话不多说,上步骤。*...
2020-11-09 20:58:38 1554 1
原创 IDEA设置注释模板
IDEA设置注释模板1.设置类注释模板/** * @ClassName ${NAME} * @Desciption TODO * @Author 研发部 陈伟鑫 * @Date ${DATE} ${TIME} * @Version 1.0 **/public class ${NAME} {}效果2.设置方法模板1、创建模板组【Editor】—>【live T...
2019-11-05 22:06:30 265
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人