spark常用算子 1、Transformation算子算子功能map(func)返回一个新的RDD,该RDD由每一个输入元素经过func函数转换后组成filter(func)返回一个新的RDD,该RDD由经过func函数计算后返回值为true的输入元素组成flatMap(func)类似于map,但是每一个输入元素可以被映射为0或多个输出元素(所以func应该返回一个序列,而不是单一元素)mapPartitions(func)类似于map,但独立地在RDD的每一个分片上运行,因此
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
Flink执行流程 1、flink关键字对比sparkflinksparkoperatorRDDoperator chainstagedata flowDAGone to one窄依赖redistribute宽依赖subtasktasktasktasksetpartitionpartitionParallelismParallelism
Flink如何保证端到端的一致性 1、流数据处理的容错语义1、At most once --最多一次, 也就是说数据最多被处理一次,有可能会丢失2、At least once --至少一次, 也就是说数据至少会被处理一次,有可能会重复3、Exactly-Once --精准一次, 也就是说数据只会被处理一次,不会丢也不会重复,注意: 更准确的理解应该是只会被正确处理一次而不是仅一次2、Flink如何支持End-to-End Exactly-Once1、Source: offset+Checkpoint: 需要数据源支持off
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采用所有副本同步成.
Spark运行流程 1、任务调度流程1、当一个spark任务提交的时候,首先需要为spark application创建基本的运行环境,也就是在Driver创建sparkContext,同时构建DAGScheduler和TaskScheduler2、SparkContext向资源管理器申请exector运行资源3、资源管理器为exector分配资源并创建exector进程,exector的运行状况通过心跳机制向资源管理器进行汇报4、sparkContext根据RDD的依赖关系构建DAG图,构建完毕后,将DAG图提交给
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
SparkCore RDD详解RDD概念:RDD的全名是弹性分布式数据集,是Spark中最基本的数据抽象,代表一个不可变、可分区、里面的元素可并行计算的集合RDD的特点:1、不可变:immutable【不可变的集合、变量声明使用val】2、分区:partitioned【集合中的数据被划分在很多个不同的分区】3、并行计算【集合中的数据可以被并行处理,每个分区的数据被一个Task计算】RDD五大特性1.-分区列表:每个RDD都有会分区的概念,类似与HDFS的分块, 分区的目的:提高并行度!2.-用于计算每
Hive优化 1.基础优化1.1 hive并行操作Hive编译查询限制 : (一般是作为通用配置: cm的hive上面)说明: Hive默认同时只能编译一段HiveQL,并上锁 如何解决多个会话时, 同时只能有一个会话进行编译的问题 ? hive.driver.parallel.compilation 设置为true 是否开启一次性编译多个sql的功能 默认为 false hive.driver.parallel.compilation.global.limit 默认值为3 表示一次性最多
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
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修饰的变量,既不可以修改值,也不可以被复写
知识点整理 1、zookeeper中有那些类型的节点, 各个类型有什么特点zookeeper的节点(Znode)类型一共有两大类,分别是:临时节点和永久节点临时节点: 1、节点的生命周期依赖于创建它的会话,一旦会话结束,节点将被自动删除,也可以进行手动删除 2、临时节点不允许拥有子节点永久节点: 1、节点的生命周期不依赖于创建它的会话,只有在客户端执行删除操作的时候,才会删除节点Znode的特性: 序列化特性,如果创建节点进行制定,Znode名字后面会自动追加一个不断增加的序列号。序列号对于此节点的.
day22笔记(数仓分层+Hue操作+Oozie+sqoop导数据操作) 1、数仓建模(事实表、维度表、维度建模数据类型)2、渐变维3、数仓分层(ODS、DW/DWD/DWM/DWS、APP)4、HUE操作5、Oozie设置调度方式6、sqoop操作
day21笔记(知行教育结构说明+数据仓库概念+维度、指标概念) 1、项目背景1、近年来,在线教育产业发展十分迅速。尤其是2018年以来,在线教育平台动作不断,除了洋葱数学、考虫、作业盒子、火花思维、VIPKID、阿卡索等平台纷纷融资外,诸多在线教育平台纷纷上市。新东方在线也在2019年3月成功上市。在市场规模方面,在线教育很大程度上是随着移动互联网的浪潮发展起来的,在传统的PC时代,虽然出现了网络教育形式,但是真正的所谓在线教育仍然是在2011年左右开始爆发的,这也正是移动互联网发展和普及的时间点。统计数据显示,2011-2017年中国在线教育市场规模呈逐年增长趋