自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 收藏
  • 关注

原创 工作中报错故障集合

OOM常见报错排查之堆外内存溢出●报错:ExecutorLostFailure (executor xxx exited caused by one of the running tasks) Reason: Container killed by YARN for exceeding memory limits. 12.4 GB of 12 GB physical memory used. Consider boosting spark.yarn.executor.memoryOverhead or d

2022-03-15 15:49:35 1648

原创 工作中优化集合

●案例一分享:最近优化一个case,类似于:insert overwrite table target_table (dayno=20211220) select a,count(1) from source_table where dayno beetween 20201219 and 20211219 group by a; 这个sql每天都要回溯一年的数据,在时间和费用上耗时都很高,尤其是晚上任务高峰期,等待资源的时间有时候会很长,拉长了任务的执行时间。●解决办法:1. 可以先将中间部分数据聚合:i

2022-03-15 15:49:17 299

原创 sql 精选——

解题:select a.id, a.time, a.user_id, a.suc, null as resfrom (select id, time, user_id, sucfrom dataintel_tmp.qzd_1118) aleft join (select id, time, user_id, suc, resfrom (select a.id, a.time, a.user_id, a.suc, b.id as res, row_number() over (partition.

2022-03-15 15:47:48 200

原创 数据倾斜(spark中)

一,什么是数据倾斜数据倾斜即指在大数据计算任务中某个处理任务的进程(通常是一个JVM进程)被分配到的任务量过多,导致任务运行时间超长甚至最终失败,进而导致整个大任务超长时间运行或者失败。外部表现的话,在HiveSQL任务里看到map或者reduce的进度一直是99%持续数小时没有变化;在SparkSQL里则是某个stage里,正在运行的任务数量长时间是1或者2不变。总之如果任务进度信息一直在输出,但内容长时间没有任何变化的时候,大概率是出现数据倾斜了。有个特例需要注意,有时候大家会看到SparkSQL的任

2022-02-10 11:15:07 1203

原创 需求:时序数据下载到本地(3)

#####for i in `seq 0 11`do day=$(date -d"$i days 20220101" +"%Y%m%d") bash download.sh $daydone

2022-01-27 14:58:05 319

原创 需求:时序数据下载到本地(2)

#! /bin/bashdayno=$1exec > logs/download_${dayno}.log 2>&1export PATH=/usr/local/share/hadoop/bin:$PATHexport SPARK_HOME=/usr/local/share/sparkexport HADOOP_USER_NAME=dataintel # 数据授权,是按应用组,dataintel # configurationsPYTHON_PATH=py37/py3

2022-01-27 14:53:02 128

原创 需求:时序数据下载到本地(1)

模型需要的数据类型类vector,拉取到本地############################################## step-1 pyspark py脚本实现每天跑数逻辑######## concat_ws(’,’,collect_list(event_info)) 配合前一步row_number()时间排序的, 方法组合的数据在交互引擎是有序体现的。但是download到本地就会无序######## 分析上面原因:分布式下每个节点是有序的拉取到本地又变成无序 。##step–

2022-01-27 14:36:27 1323

原创 传多个参数(pyspark脚本)

#############################################################################################from pyspark.sql import SparkSessionimport datetimespark=SparkSession.builder.appName(“w9010794”).getOrCreate()def gethql(dayno,dayno1) :hql=f""" """prin

2022-01-17 14:56:28 1616

原创 shell实现数据质量小功能

step_1 — 创建临时表,模拟数据质量监控情况create table if not exists dataintel_tmp.qzd_20211026_sjzl_v1 asselect 0 as a,null as b,null as c ,null as d,null as e ,0 as f ,0 as g ,0 as h ,0 as i,3 as j,6 as k,7 as l,12

2021-10-29 16:41:39 709

原创 闲来饮茶唔

题 :如果有500多个事件,每天都有可能发生变化,想统计出一年内每一天不同事件的集合,一条sql写出思路:1 判断 通过单一字段识别当天变化还是通过联合字段识别 (打标签识别)2 设计每天增量表记录变动事件3 根据全年事件group by , 再用 collect_list 集合起来。两种写法,1 sql 2 pyspark(书写更简单点)plan A(伪代码)– log_label (可以是组合字段:识别相同事件的不同变化)– log_eventselect log_event,co

2021-10-25 18:13:08 104

原创 Spark优化(资源参数篇)

资源参数调优:Spark资源参数调优,其实主要就是对Spark运行过程中各个使用资源的地方,通过调节各种参数,来优化资源的使用效率,从而提高Spark的运行效率。num-executors###参数说明:该参数用于设置Spark作业总共要用多少个Executor进程来执行。Driver在向集群管理器申请资源时,资源管理器会尽可能按照设置在集群各个节点上,启动相应的Executor进程。该参数较为重要,如果不设置默认只会启动较少的Executor进程,这样Spark运行速度是很慢。###调优建议:每个

2021-06-13 19:00:06 484

原创 Spark优化(开发调优篇)

Spark性能优化第一步,应用一些性能优化的基本原则。开发调优包括:RDD lineage设计,算子的合理使用,特殊操作的优化等.并将这些原则根据具体的业务以及实际的应用场景,灵活地应用到Spark作业中.###原则一:避免创建重复的RDD通常来说,开发Spark作业,首先基于某个数据源(hive表或hdfs文件)创建一个初始的RDD,接着对这个RDD执行某个算子操作,然后得到下一个RDD,反复循环得到最终结果。在这个过程中,多个RDD通过不同算子操作串起来,就是RDD lineage,也就是"RDD的

2021-06-12 18:30:19 128

原创 pyspark 学习demo2

from pyspark.sql import SparkSessionimport datetimespark = SparkSession .builder .appName(“get_wifi”) .getOrCreate() ------""表示该行还未写完,创建一个叫get_wifi的对象在spark集群中yarn可见def get_data_dayno(dayno, hour):hql = f"""insert overwrite table data

2021-06-12 09:34:42 112

原创 Spark基本运行原理

Spark基本运行原理 :通过spark-submit 提交spark作业之后,作业会启动一个Driver, 它首先会相集群资源管理器(Yarn)去申请资源 (内存 ,core ), 这个时候资源指的就是Executor. 集群资源管理器根据spark设置的资源配置信息,启动一定数量的Executor分布到不同节点,每个Executor会有一定的core和内存 。...

2021-06-05 14:54:24 144

原创 Python : 日期学习demo

结果

2021-05-20 19:44:55 77

原创 pyspark学习:demo2 (SparkSession)

前言:SparkSession对象为用户提供了创建dataframe对象,读取外部数据源并且转化为DataFrame对象以及执行sql的api。还包含用户对spark集群参数调控,是环境运行的基础。##背景因数据量问题,完全无法通过hive加工,通过pyspark对数据二次落表继续通过sh启动脚本...

2021-05-19 18:31:26 198

原创 Pyspark 学习 demo(1)

##学习完W3school中python基本后步入pyspark正式学习DF学习(DataFrame是一种以RDD为基础的分布式数据集,类似于传统数据库中的二维表格。DataFrame与RDD的主要区别在于,前者带有schema元信息)自信满满 python XXX.py 报错 :ImportError: No module named pyspark 无法启动遂更改为:spark-submit xxx.py ,日志报错。将python脚本通过sh命令启动:保存启动 sh文件。yarn中

2021-05-18 17:09:02 440

原创 Hive优化

Map和Reduce启动和初始化map和reduce都会花费资源map个数,取决于切片数量1当输入数据量少于参数(128m),只有一个map,不用调整,若该表字段少,行数多,可以适当调高map数提高效率。2若map数较多,查看到很多split大小是小于128,有小文件情况,这个时候除了jvm重启,考虑减少map数量参数设置。通过减少map数,减少资源启动优化。reduce数reduce,有多少个reduce,就会有多少个输出文件,如果生成了很多个小文件,那么如果这些小文件作为下一个任务的输入,

2021-03-06 19:38:01 423

原创 数据仓库 : 建模及事实表维度表思路

1 确定事实表的粒度。(重要的设计问题)粒度问题是设计数据仓库的一个最重要方面。粒度是指数据仓库的数据单位中保存数据的细化或综合程度的级别。细化程度越高,粒度级就越小;相反,细化程度越低,粒度级就越大。 要结合业务特点设计适中粒度,充分考虑查询时间,存储空间,需求特点。数据仓库创建关键第一步:则首先要分析创建什么样的仓库,仓库里放那些内容。也就是分析fact表和维度表。数据仓库创建关键第二步:数据源,分析完fact和维度表后,还要知道fact表和维度表从哪里获取。...

2021-02-25 16:06:54 485

原创 Hql_工具文档

小点1 静态分区和动态分区同时存在时,静态分区放在前面(且不能是中文)。2相比较hive,pig更适合多异源数据的流处理。3报表开发中,如碰到多口径,指标体系较多的时候,可以先做temp表插入口径汇总结果打成单条数据,在分标签打薄,实际运行效果更加。4正则表达式...

2020-09-17 18:23:58 705

原创 Hive及 hql优化个人心得

hql优化篇:1. 针对hql,首先考虑避免全表扫描,hive没有索引扫描时是读取到hdfs文件中,所以主表分区表中分区字段放在前面,不要限制:如: where substr(part_dt,1,7) = substr(‘STARTDATE′)不建议wherepartdt>=concat(substr(′{START_DATE}') 不建议 where part_dt>=concat(substr('STARTD​ATE′)不建议wherepartd

2020-07-24 11:53:15 927

原创 hive之_shuffle过程浅谈

个人对shuffle 的理解 说道离线就离不开hive,说道hive就离不开对shuffle的理解,基于hdfs所打造的数据仓库,核心就是hive的shuffle过程,英译是洗牌 ,整个过程也就是清洗重发的过程。 shuffle过程 首先是inputsplit ,每个切片对应一个map(可以通过yarn去观察),map端首先对读入数据做按不同数据类型做分区,之后根据不同分区做排序(这里采用的快速排序),map过程中会有内存换冲区(环形缓冲区) 它的作用,在数据写入过程中,将数据存入内存从而达到

2020-07-21 09:40:33 6743

原创 浅谈hive之grouping sets 使用技巧

浅谈grouping sets 使用及特点,最近工作中因业务需求,需提供多维度自定义联动,结合之前对with_cubes 的使用及思考记录相关内容。grouping sets 使用注意点一 : group by 中字段才能组合,建议算法中除表关联,关联条件外,其它部分去除别名,避免grouping sets 使用中识别失败。二 :使用中,如遇到grouping sets 涉及字段,需要在插入中再做函数如:count(case when 条件 then a end) 情况时,会导致字段a在group.

2020-07-17 22:28:48 3424 1

空空如也

空空如也

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

TA关注的人

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