大数据系列三
文章平均质量分 81
大数据系列三
浊酒南街
纵使疾风起,人生不言弃。
展开
-
阿里巴巴数据治理平台建设经验
阿里巴巴一直将数据作为自己的核心资产与能力之一,通过多年的实践探索建设数据应用,支撑业务发展。在不断升级和重构的过程中,我们经历了从分散的数据分析到平台化能力整合,再到全局数据智能化的时代。如今,大数据平台面临全新的挑战,特别是降本等数据治理需求的不断出现,今天阿里云 DataWorks 团队将其中一些建设经验与大家进行一些分享。转载 2023-03-08 20:32:09 · 960 阅读 · 0 评论 -
HiveSQL高级进阶技巧
掌握这10个技巧,你的SQL水平将有一个质的提升!原创 2023-10-31 20:19:09 · 823 阅读 · 0 评论 -
数据血缘构建及应用
数据血缘是元数据管理、数据治理、数据质量的重要一环,追踪数据的来源、处理、出处,对数据价值评估提供依据,描述源数据流程、表、报表、即席查询之间的流向关系,表与表的依赖关系、表与离线ETL任务,调度平台,计算引擎之间的依赖关系。数据仓库是构建在Hive之上,而Hive的原始数据往往来自于生产DB,也会把计算结果导出到外部存储,异构数据源的表之间是有血缘关系的。数据血缘用途:追踪数据溯源:当数据发生异常,帮助追踪到异常发生的原因;影响面分析,追踪数据的来源,追踪数据处理过程。原创 2022-10-09 23:10:54 · 2901 阅读 · 0 评论 -
大数据之Spark:Spark SQL(3)
目录6. Spark SQL 应用1) 创建 DataFrame/DataSet2) 两种查询风格:DSL 和 SQL3) Spark SQL 完成 WordCount4) Spark SQL 多数据源交互6. Spark SQL 应用在 spark2.0 版本之前SQLContext 是创建 DataFrame 和执行 SQL 的入口。HiveContext 通过 hive sql 语句操作 hive 表数据,兼容 hive 操作,hiveContext 继承自 SQLContext。在 spa原创 2022-05-25 23:26:42 · 401 阅读 · 0 评论 -
大数据之Spark:Spark 数据倾斜
目录1. 预聚合原始数据1. 避免shuffle过程2. 增大key粒度(减小数据倾斜可能性,增大每个task的数据量)2. 预处理导致倾斜的key1. 过滤2. 使用随机key3. sample采样对倾斜key单独进行join3. 提高reduce并行度1. reduce端并行度的设置2. reduce端并行度设置存在的缺陷4. 使用map join1. 核心思路:2. 不适用场景分析:数据倾斜:就是数据分到各个区的数量不太均匀,可以自定义分区器,想怎么分就怎么分;Spark中的数据倾斜问题主要指sh原创 2022-05-29 17:30:51 · 313 阅读 · 0 评论 -
腾讯内部数据治理实践
例如,一张表每天都应该有 1000 行,但是今天只有 500 行,可能这个数据的产出就有问题了,或者是其他一个业务导致的,这个时候会产生数据质量的告警,通知到相关的责任人,告警也不是处理的终点,我们会有质量报警的工单体系,当告警通知到责任人后,如果他觉得这个问题需要别人来参与的话,可以进行转单,直到这个的数据流程单被处理结束,最终形成一个问题记录进行归档,如果被认为是典型问题的话,还可以进行记录,在后面有其他人遇到类似问题的时候,可以借鉴处理。数据的质量与安全的治理,贯穿数据的全生命周期。转载 2023-03-11 17:05:53 · 461 阅读 · 0 评论 -
大数据领域相关术语总结
PGC 的内容形式多样,包括文章、视频、音频、图片等,通常需要经过严格的审核和筛选,符合一定的标准和要求。CVR 指的是广告被点击后,用户进行了期望的行为(比如购买、注册、订阅等)的次数与广告被点击的次数之间的比例,通常以百分比的形式表示。留存率通常是以百分比的形式表示,它是一个重要的用户活跃度指标,可以帮助企业评估产品或服务的质量和用户忠诚度。CTR 指的是广告被点击的次数与广告被展示的次数之间的比例,通常以百分比的形式表示。KPI 的制定需要根据具体的业务目标和战略规划,选择关键的指标进行衡量和评估。原创 2024-01-02 15:43:28 · 1052 阅读 · 0 评论 -
大数据之Spark:Spark 的两种核心 Shuffle(2)
目录二、SortShuffle 解析1. 普通运行机制2. bypass 运行机制3. Tungsten Sort Shuffle 运行机制二、SortShuffle 解析SortShuffleManager 的运行机制主要分成三种:1、普通运行机制;2、bypass 运行机制,当 shuffle read task 的数量小于等于spark.shuffle.sort.bypassMergeThreshold参数的值时(默认为 200),就会启用 bypass 机制;3、Tungsten Sort原创 2022-05-29 16:34:05 · 365 阅读 · 0 评论 -
大数据之Hadoop+Spark生态圈脚本启动命令(一)
hadoop脚本启动命令 Redis脚本启动命令 Hive脚本启动命令 Hbase脚本启动命令Flume脚本启动命令Kafka脚本启动命令Azkaban脚本启动命令Spark脚本启动命令一、系统项目框架二、脚本命令总结1.1Hadoop集群部署规划hadoop102hadoop103hadoop104HDFSNameNode,DataNodeDataNodeSecondaryNameNode,DataNodeYARNNodeManagerResourc原创 2021-04-01 11:39:01 · 211 阅读 · 3 评论 -
大数据之Spark:Spark 的两种核心 Shuffle(1)
目录1、Spark Shuffle2、Hash Shuffle 解析1. HashShuffleManager2. 优化的 HashShuffleManager在 MapReduce 框架中, Shuffle 阶段是连接 Map 与 Reduce 之间的桥梁, Map 阶段通过 Shuffle 过程将数据输出到 Reduce 阶段中。由于 Shuffle 涉及磁盘的读写和网络 I/O,因此 Shuffle 性能的高低直接影响整个程序的性能。Spark 也有 Map 阶段和 Reduce 阶段,因此也会出现原创 2022-05-28 23:47:35 · 555 阅读 · 0 评论 -
大数据之sqoop:sqoop-import 并行抽数原理及数据倾斜解决方案
目录前言:1.sqoop参数2.并行化3.数据倾斜是怎么产生的?4.解决方案:总结前言:我们一般用sqoop抽数。可是有时由于单表数据量太大(每天千万级别)导致sqoop抽数使用单实例报内存溢出以及抽数时间过长,这时我们该怎么办?现总结方法如下供借鉴。1.sqoop参数/opt/module/sqoop/bin/sqoop import \--connect \--username \--password \--target-dir \--delete-target-dir \--fie原创 2021-06-28 19:06:00 · 1882 阅读 · 2 评论 -
大数据之Spark:Spark调优之Shuffle调优
目录1. map和reduce端缓冲区大小2. reduce端重试次数和等待时间间隔3. bypass机制开启阈值1. map和reduce端缓冲区大小在Spark任务运行过程中,如果shuffle的map端处理的数据量比较大,但是map端缓冲的大小是固定的,可能会出现map端缓冲数据频繁spill溢写到磁盘文件中的情况,使得性能非常低下,通过调节map端缓冲的大小,可以避免频繁的磁盘IO操作,进而提升Spark任务的整体性能。map端缓冲的默认配置是32KB,如果每个task处理640KB的数据,那原创 2022-05-29 23:28:37 · 456 阅读 · 0 评论 -
大数据之Spark:Spark SQL(2)
目录5. Spark SQL 数据抽象1) DataFrame2) DataSet3) RDD、DataFrame、DataSet 的区别4) 总结5. Spark SQL 数据抽象1) DataFrame1、什么是 DataFrameDataFrame 的前身是 SchemaRDD,从 Spark 1.3.0 开始 SchemaRDD 更名为 DataFrame。并不再直接继承自 RDD,而是自己实现了 RDD 的绝大多数功能。DataFrame 是一种以 RDD 为基础的分布式数据集,类似于传原创 2022-05-24 23:29:52 · 142 阅读 · 0 评论 -
大数据之Spark:Spark面试(初级)
Apache Spark是一个分布式、内存级计算框架。起初为加州大学伯克利分校AMPLab的实验性项目,后经过开源,在2014年成为Apache基金会顶级项目之一,现已更新至3.2.0版本。Spark体系包含Spark Core、Spark SQL、Spark Streaming、Spark MLlib及 Spark Graphx。其中Spark Core为核心组件,提供RDD计算模型。在其基础上的众组件分别提供查询分析、实时计算、机器学、图计算等功能。主要考察对Spark运行机制的理解,需要掌握Spar原创 2022-06-01 23:20:05 · 556 阅读 · 0 评论 -
sqoop(DataX)-MySQL导入HIVE时间格问题
sqoop(DataX) 导 mysql 到 hive以text文件格式存储时,mysql时间类型:datetime,date,time,timestamp 会被转成 hive 的 string 类型,值保存格式化后的时间字符串。sqoop(DataX) 导 mysql 到 hive以parquet(orc)l列式文件格式存储时,mysql时间类型:datetime,date,time,timestamp 会被转成 hive的相应类型,值保存时间戳。hive 表名:test_text。原创 2024-01-02 14:51:07 · 1349 阅读 · 0 评论 -
大数据之Spark:Spark 底层执行原理
目录1、Spark 运行流程1. 从代码角度看 DAG 图的构建2. 将 DAG 划分为 Stage 核心算法3. 将 DAG 划分为 Stage 剖析4. 提交 Stages6. 获取任务执行结果7. 任务调度总体诠释2、Spark 运行架构特点1. Executor 进程专属2. 支持多种资源管理器Job 提交就近原则4. 移动程序而非移动数据的原则执行1、Spark 运行流程具体运行流程如下:1、SparkContext 向资源管理器注册并向资源管理器申请运行 Executor2、资源管理器原创 2022-05-29 17:06:13 · 264 阅读 · 0 评论 -
hive中split函数相关总结
split 函数一直再用,居然发现没有总结,遂补充一下;原创 2024-03-06 15:59:11 · 819 阅读 · 0 评论 -
大数据之Spark:Spark调优之RDD算子调优(1)
目录1. RDD复用2. 尽早filter3. 读取大量小文件-用wholeTextFiles4. mapPartition和foreachPartition1、mapPartitions2、foreachPartition5. filter+coalesce/repartition(减少分区)6. 并行度设置1. RDD复用在对RDD进行算子时,要避免相同的算子和计算逻辑之下对RDD进行重复的计算,如下图所示:对上图中的RDD计算架构进行修改,得到如下图所示的优化结果:2. 尽早filter原创 2022-05-29 23:02:31 · 275 阅读 · 0 评论 -
hive中struct相关函数总结
2、named_struct(name1, value1, name2, value2, …):创建一个 Named Struct 对象,由多个名称和对应的值组成。1、struct(field1, field2, …):创建一个 Struct 对象,由多个字段组成。如何将上述struct类型的数据转换为string格式?原创 2023-12-25 11:15:26 · 1067 阅读 · 0 评论 -
大数据之Spark:spark shuffle的优化
目录1.问题:spark shuffle如何优化?2.分析:3.优化方案3.1:算子方面3.2:参数调优1.问题:spark shuffle如何优化?2.分析:可以从两方面考虑,第一方面宽依赖算子可以产生shuffle,我们可以从算子的角度,进行优化;第二方面产生shuffle了怎么半,我们可以从参数调优方面考虑;3.优化方案3.1:算子方面1)当进行联合的规约操作时,避免使用 groupByKey。举个例子,rdd.groupByKey().mapValues(_ .sum) 与 rdd.原创 2021-06-03 15:12:17 · 170 阅读 · 0 评论 -
MySQL中key和index的区别
而Index则处于实现层面,比如可以对表的任意列建立索引,那么当建立索引的列处于SQL语句中的Where条件中时,就可以得到快速的数据定位,从而快速检索。Key即键值,是关系模型理论中的一部份,比如有主键(Primary Key),外键(Foreign Key)等,用于数据完整性检否与唯一性约束等。unique key也有两个作用,一是约束作用,规范数据的唯一性 ,但同时也在这个key上建立了一个唯一索引。于是乎,在设计表的时候,Key只是要处于模型层面的,而当需要进行查询优化,则对相关列建立索引即可。原创 2023-03-31 21:15:09 · 376 阅读 · 0 评论 -
Hive中rlike,like区别与使用详解
2.操作类型是String,其中A是待验证的字符串,B是表达式,B中可以用简单的匹配符号(_,%等,_表示任意单个字符,%表示任意数量的字符)4.否定比较时候用NOT A RLIKE B(使用A NOT RLIIKE B也可以),结果与rlike的结果时相对的;5.否定比较时候用NOT A LIKE B(使用A NOT LIIKE B也可以),结果与like的结果时相对的。1.A rlike B,表示b是否在A里面,而 A like B 表示B是否是A;4.A或B任意为null,则返回null值;原创 2023-06-14 17:45:22 · 1079 阅读 · 0 评论 -
大数据之Spark:Spark大厂面试真题
目录1. 通常来说,Spark与MapReduce相比,Spark运行效率更高。请说明效率更高来源于Spark内置的哪些机制?2. hadoop和spark使用场景?3. spark如何保证宕机迅速恢复?4. hadoop和spark的相同点和不同点?5. RDD持久化原理?checkpoint检查点机制?7. checkpoint和持久化机制的区别?RDD机制理解吗?9. Spark streaming以及基本工作原理?10. DStream以及基本工作原理?11. spark有哪些组件?12. spar原创 2022-05-19 23:06:41 · 1175 阅读 · 0 评论 -
Spark SQL底层执行流程详解
目录一、Apache Spark二、Spark SQL发展历程三、Spark SQL底层执行原理四、Catalyst 的两大优化一、Apache SparkApache Spark是用于大规模数据处理的统一分析引擎,基于内存计算,提高了在大数据环境下数据处理的实时性,同时保证了高容错性和高可伸缩性,允许用户将Spark部署在大量硬件之上,形成集群。Spark源码从1.x的40w行发展到现在的超过100w行,有1400多位大牛贡献了代码。整个Spark框架源码是一个巨大的工程。二、Spark SQL发转载 2022-04-26 00:21:42 · 1238 阅读 · 0 评论 -
大数据之Spark:Structured Streaming
目录1. API2. 核心思想3. 应用场景4.Structured Streaming 实战1) 读取 Socket 数据2) 读取目录下文本数据3) 计算操作4) 输出在 2.0 之前,Spark Streaming 作为核心 API 的扩展,针对实时数据流,提供了一套可扩展、高吞吐、可容错的流式计算模型。Spark Streaming 会接收实时数据源的数据,并切分成很多小的 batches,然后被 Spark Engine 执行,产出同样由很多小的 batchs 组成的结果流。本质上,这是一种 m原创 2022-05-27 21:53:38 · 1429 阅读 · 0 评论 -
大数据之Spark:Spark面试(中级)
首先放上官网的RDD执行流程图:针对一段应用代码(如上),Driver会以Action算子为边界生成DAG调度图。DAGScheduler从DAG末端开始遍历划分Stage,封装成一系列的tasksets移交TaskScheduler,后者根据调度算法, 将taskset分发到相应worker上的Executor中执行。DAGScheduler是一个面向stage调度机制的高级调度器,为每个job计算stage的DAG(有向无环图),划分stage并提交taskset给TaskScheduler追踪每个原创 2022-06-01 23:35:49 · 469 阅读 · 0 评论 -
大数据之Spark:故障排除
目录1. 避免OOM-out of memory2. 避免GC导致的shuffle文件拉取失败3. YARN-CLIENT模式导致的网卡流量激增问题4. YARN-CLUSTER模式的JVM栈内存溢出无法执行问题5. 避免SparkSQL JVM栈内存溢出1. 避免OOM-out of memory在Shuffle过程,reduce端task并不是等到map端task将其数据全部写入磁盘后再去拉取,而是map端写一点数据,reduce端task就会拉取一小部分数据,然后立即进行后面的聚合、算子函数的使用原创 2022-05-29 23:32:27 · 239 阅读 · 0 评论 -
sort_array函数解决collet_list列表排序混乱问题
lpad()函数:这个是对排序值(也就是row_number_score)来补位的,当要排序的值过大时,因为sort_array是按顺序对字符进行排序(即11会在2的前面),所以可以使用此函数补位(即将1,2,3,44变成01,02,03,44),这样就能正常排序了。regexp_replace()函数:这个是替换的,即排序之前将序号使用:跟需要的字段拼接,而排序之后,需要将序号和:去掉。数据如下所示:未展示完。原创 2023-01-13 15:30:54 · 1547 阅读 · 2 评论 -
ES常见查询总结
这是一个 Elasticsearch 查询语句,用于在索引为 demo_person 中查询 last_name 和 about 字段包含 “collect” 或 “rock” 的文档。这是一个 Elasticsearch 查询语句,用于在索引为 demo_person 中查询 last_name 字段包含 “Smith” 且 age 等于 32 的文档。这是一个 Elasticsearch 查询语句,用于在索引为 demo_person 中查询 last_name 字段包含 “Smith” 的文档。原创 2023-12-14 20:22:26 · 1388 阅读 · 2 评论 -
大数据之Spark:Spark Core(1)
目录1. RDD 详解1) 为什么要有 RDD?2) RDD 是什么?3) RDD 主要属性总结2. RDD-API1) RDD 的创建方式2) RDD 的算子分类3) Transformation 转换算子4) Action 动作算子4) RDD 算子练习3. RDD 的持久化/缓存持久化/缓存 API 详解总结:1. RDD 详解1) 为什么要有 RDD?许多迭代式算法(比如机器学习、图算法等)和交互式数据挖掘中,不同计算阶段之间会重用中间结果,即一个阶段的输出结果会作为下一个阶段的输入。Map原创 2022-05-18 23:42:53 · 294 阅读 · 0 评论 -
hive之连续登录问题(2)
2、将每行日期减去rk值得到flag标志,如果之前是连续的日期,则相减后为相同的日期,flag相同。备注:这种方法有个弊端,像俄罗斯套娃,当条件发生改变,比如断5天也算连续,你要重复5次;断n天也算连续, 则 sum(if(dtDiff >n+1,1,0))处为n+1。备注:断一天也算连续,则 sum(if(dtDiff >2,1,0))处为2。3、按照id和flag分组,计算count(*)得数连续的天数。6、按照id和new_flag分组,计算连续的天数。1、按照id分组同时按照dt排序,求rk。原创 2023-04-01 00:40:00 · 229 阅读 · 0 评论 -
Scala之for遍历
遍历第一种情况for(i <- 0 to 10){ print( i+" ") } println()for(i <- 0 until 10){ print( i+" ") } println() }遍历第二种情况 val arr02 = Array(1, 2, 3, 4, 5) for (i <- arr02){ print(i + " ") } println()遍历第三种情原创 2021-04-23 14:44:58 · 161 阅读 · 0 评论 -
hive中如何求取中位数?
中位数(Median)又称中值,统计学中的专有名词,是按顺序排列的一组数据中居于中间位置的数,代表一个样本、种群或概率分布中的一个数值,其可将数值集合划分为相等的上下两部分。对于有限的数集,可以通过把所有观察值高低排序后找出正中间的一个作为中位数。如果观察值有偶数个,通常取最中间的两个数值的平均数作为中位数。分析最中间的两个数为23和30,均值为26.5。方法1:使用hive自带函数。方法2:正排倒排来一遍法。方法3:充分利用窗口函数。原创 2023-12-15 18:44:59 · 561 阅读 · 0 评论 -
大数据之hive:行列转换系列总结
目录1、行转列(一)主要使用:示例2、列转行(一)示例3、行转列(二)示例4、列转行(二)示例1、行转列(一)主要使用:CONCAT(string A/col, string B/col…):返回输入字符串连接后的结果,支持任意个输入字符串;CONCAT_WS(separator, str1, str2,…):它是一个特殊形式的 CONCAT()。第一个参数是剩余其他参数间的分隔符。COLLECT_SET(col):函数只接受基本数据类型,它的主要作用是将某字段的值进行去重汇总,产生array类型原创 2021-08-22 19:51:44 · 5180 阅读 · 0 评论 -
大数据之Spark:Spark Core(2)
目录4、RDD 容错机制 Checkpoint持久化的局限:问题解决:总结:5. RDD 依赖关系1) 宽窄依赖2) 为什么要设计宽窄依赖6. DAG 的生成和划分 Stage1) DAG 介绍2) DAG 划分 Stage总结:4、RDD 容错机制 Checkpoint持久化的局限:持久化/缓存可以把数据放在内存中,虽然是快速的,但是也是最不可靠的;也可以把数据放在磁盘上,也不是完全可靠的!例如磁盘会损坏等。问题解决:Checkpoint 的产生就是为了更加可靠的数据持久化,在 Checkpoi原创 2022-05-19 22:03:40 · 314 阅读 · 0 评论 -
大数据之Spark:Spark处理数据倾斜有哪几种方式
目录1.前言2.解决方案解决方案一:聚合原数据解决方案二:过滤导致倾斜的key解决方案三:提高shuffle操作中的reduce并行度解决方案四:使用随机key实现双重聚合解决方案五:将reduce join转换为map join解决方案六:sample采样对倾斜key单独进行join解决方案七:使用随机数以及扩容进行join1.前言spark中的数据倾斜问题主要指shuffle过程中出现的数据倾斜问题,是由于不同的key对应的数据量不同导致的不同task所处理的数据量不同的问题;2.解决方案解决方原创 2021-06-09 16:54:25 · 159 阅读 · 0 评论 -
大数据之Spark:Spark面试(高级)
三者均为Spark分布式弹性数据集,Spark 2.x 的DataFrame被Dataset合并,现在只有DataSet和RDD。三者有许多相同的算子如filter、map等,且均具有惰性执行机制。2. DataFrame和DataSet的区别DataFrame是分布式Row对象的集合,所有record类型均为Row。Dataset可以认为是DataFrame的特例,每个record存储的是强类型值而不是Row,同理Dataframe可以看作Dataset[Row]。DataFrame/DataSet原创 2022-06-01 23:45:58 · 385 阅读 · 0 评论 -
大数据之Spark:Spark Core(3)
目录7. RDD 累加器和广播变量1) 累加器2) 广播变量7. RDD 累加器和广播变量在默认情况下,当 Spark 在集群的多个不同节点的多个任务上并行运行一个函数时,它会把函数中涉及到的每个变量,在每个任务上都生成一个副本。但是,有时候需要在多个任务之间共享变量,或者在任务(Task)和任务控制节点(Driver Program)之间共享变量。为了满足这种需求,Spark 提供了两种类型的变量:1、累加器 accumulators:累加器支持在所有不同节点之间进行累加计算(比如计数或者求和)。原创 2022-05-19 22:21:10 · 112 阅读 · 0 评论 -
大数据之Git:Git常用命令
常用 Git 命令清单一般来说,日常使用只要记住下图6个命令,就可以了。但是熟练使用,恐怕要记住60~100个命令。下面是我整理的常用 Git 命令清单。几个专用名词的译名如下。Workspace:工作区Index / Stage:暂存区Repository:仓库区(或本地仓库)Remote:远程仓库1.新建代码库# 在当前目录新建一个Git代码库$ mkdir learngit$ git init2.配置# 设置提交代码时的用户信息$ git config --global原创 2021-03-31 21:26:41 · 138 阅读 · 0 评论 -
数据血缘用例与扩展实践
数据血缘描述了数据的来源和去向,以及数据在多个处理过程中的转换。数据血缘是组织内使数据发挥价值的重要基础能力。本文从字节的数据链路概况开始,介绍了数据血缘在字节的应用场景,总体设计,数据模型以及衡量指标。为了明确问题的讨论范围,我们首先介绍一下字节的数据链路。字节的数据的来源分为两种:01、端数据:APP和Web端通过埋点SDK发送的,经过LogService,最终落入MQ;02、业务数据:APP,Web和第三方服务所进行的业务操作,通过各种应用的服务,最终落入RDS,RDS中的数据,经过Binlog的原创 2022-06-06 23:27:56 · 323 阅读 · 0 评论