- 博客(80)
- 资源 (1)
- 收藏
- 关注
原创 executor行为相关Spark sql参数源码分析
【重点】在spark sql中有对应参数为:对应源码位置如下:org.apache.spark.scheduler.cluster.CoarseGrainedSchedulerBackend#defaultParallelismorg.apache.spark.sql.internal.SQLConf#FILES_MAX_PARTITION_BYTESorg.apache.spark.sql.internal.SQLConf#FILES_OPEN_COST_IN_BYTES1.1.2.2 代码准备输
2023-03-10 20:49:06
1414
1
原创 Spark Sql 转换成Task执行 和 InsertIntoHiveTable写入hive表数据 源码分析
对于spark的InsertIntoHiveTable,结果rdd的每个partition的数据都有相应的task负责数据写入,而每个task都会在目标hive表的location目录下的.hive-staging_hive*/-ext-10000目录中创建相应的临时的staging目录,当前task的所有数据都会先写入到这个staging目录中;(2)task执行,写入数据到.hive-staging_hive_*/-ext-10000目录((1) 创建相关临时目录,提交task调度执行。
2023-02-10 23:46:46
1089
原创 Spark 动态资源分配参数与源码原理分析
最开始生效位置 : 1.1.1.2.1 ExecutorAllocationManager动态资源分配的工作,全部交由ExecutorAllocationManager类来管理,可以根据集群负载 实现最大并行化运行程序。在sparkcontext初始化时,被调用。总体调用示意图如下:这里我们先看 updateAndSyncNumExecutorsTarget 和removeExecutors方法,因为其内部 最终也会调用 requestTotalExecutors计算当前最大需要的execut
2022-12-08 00:32:26
2542
原创 Spark性能调优案例-优化spark估计表大小失败 和 小表关联 走 broadcast join
A任务中关联一张表,该表经过过滤和去重,数据量小于10MB,实际任务耗时较长。B任务关联一张小表,实际任务耗时较长。
2022-11-12 16:30:19
1454
原创 Spark性能优化实战总结
如果多表join,存在重复逻辑,可以使用group by + max减少join。hive sql时代 容易有使用临时表,存储下中间数据,避免内存占用过大。但spark sql时代,可以消除临时表,减少多余stage,减少耗时。
2022-11-12 14:25:10
1240
原创 Spark3.0 Sql 使用HiveTableScanExec 读取Hive orc表源码分析及参数调优
默认情况下因此,默认情况下,切片大小=blocksize。因为一般文件的block大小为128M, 是小于mapreduce.input.fileinputformat.split.maxsize默认值的根据orc文件的stripe,结合参数配置,最终生成split结论:因此使用能够控制生成split个数,进而控制读取的map task数量以下为设置为"67108864"时,spark sql 读取orc文件的示意图。
2022-10-29 00:34:25
2970
2
原创 Spark 3.0参数详解之 spark.sql.files.maxPartitionBytes
在接口FileScan的partitions方法中。
2022-10-09 23:56:13
3872
原创 Spark 3.3源码 IDEA阅读环境搭建
这样下载依赖快,且完整,保证依赖全部下载完成。这里webui地址便是 上面master的地址。(1)初始化为git仓库。(2)执行生成文件命令。(3)检查文件是否生成。(0)进入源代码目录。
2022-10-07 20:32:57
253
原创 小时3.0报表某个型号数据比天数据多问题复盘
小时升级报表中 某个型号型号的在网量比 按天统计的在网量多。比如9.15 23时在网量比 9.15天的在网量多。
2022-09-24 15:38:40
329
原创 IDEA本地运行Flink-java版
1、背景flink作为当前最火实时大数据框架,也想阅读其源码,并实战一下它2、具体步骤2.1 环境准备jdk1.8+ 即可 ,因为flink 大部分是Java编写的2.2 创建idea项目和普通的创建maven java项目一样,没有区别2.3 pom.xml配置<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xs
2022-05-04 23:53:31
5834
原创 IDEA 本地运行Spark
IDEA 本地运行Spark1、背景2、环境准备3、 具体流程3.1 IDEA创建maven项目3.2 pom.xml配置3.3 Demo程序示例3.4 结果输出3.5 总结改进1、背景主要用于本地阅读Spark源码,同时也可以用于实战运行spark程序2、环境准备jdk : 1.8+scala: 2.12+ (Spark 3x要求 scala版本2.12)3、 具体流程3.1 IDEA创建maven项目File->Maven->Next注意事项:配置maven 国内镜
2022-05-04 17:11:15
3687
原创 Mybatis-spring 原理之 Mapperbean自动注入,mapper代理
1. 问题背景使用mybatis + mapper配置的方式,在业务代码中1.1 定义,自动导入Dao类 @Resource private ViewpointPkgDao viewpointPkgDao;1.2 使用,直接使用ViewpointPkgdao.listViewpointPkg()// 单独在粉丝端过滤出没有关联组合code的观点包List<ViewpointPkgFullInfo> noRelated = viewpointPkgDao.listView
2021-08-08 23:51:55
2418
原创 华为2019校招编程题
题目简化后,召唤师能控制n种元素,并且将m个元素组合成一个新技能(这m个元素旋转或反转都算作一个,如123,132,312等),那么召唤师能组合多少技能,20000>=n>=1,10000>=m>=1,由于结果可能很大,请将结果对1000000007取余。代码一:import sysres = 0def dfs(start,k,n,tmp): globa...
2019-09-08 10:43:59
1238
原创 贝壳网2019 提前批 笔试 算法第3题——举重大赛
举重大赛开始了,为了保证公平,要求比赛的双方体重较小者要大于等于较大者的90%,那么对于这N个人最多能进行多少场比赛呢,任意两人之间最多进行一场比赛。class Solution: # 将一个数组中,两个相邻的有序区间合并成一个 def merge(self,a,start,mid,end): global cnt tmp = [] ...
2019-08-11 10:41:54
439
原创 reduceByKey实现(key,value)生成(key,list(value))
sc.parallelize(Array(("red", "zero"), ("yellow", "one"), ("red", "two"))).groupByKey().collect.foreach(println)(red,CompactBuffer(zero, two))(yellow,CompactBuffer(one))实现red 聚合[zero,two],yellow聚合...
2019-06-13 15:37:52
4671
1
原创 SQL语句的执行顺序
上面在每条语句的前面都标明了执行顺序号.示例数据源接入From多表连接Join…on 一般连用单表处理Group by … having 一般连用Order by, limit 用于后处理总体顺序: 数据接入(from)->多表连接(on,join)->单表处理(where,group by,having => select,distinct =>...
2019-06-12 15:06:32
123
原创 Spark Sql执行原理介绍
Spark SQL整体架构从上图可见,无论是直接使用 SQL 语句还是使用 DataFrame,都会经过如下步骤转换成 DAG 对 RDD 的操作1) Parser 解析 SQL,生成 Unresolved Logical Plan在Unresolved Logical Plan中,不知道涉及表是什么类型,数据存在何处,表的结构是什么;这一步主要完成词法和语法解析,生成解析树2)由...
2019-05-31 10:17:03
1088
原创 spark检查hive表中是否存在某一分区
hive表分区的概念一个表可以拥有一个或者多个分区,每个分区以文件夹的形式单独存在表文件夹的目录下。例如下图中xx.db(数据库),device_flow_report_data(表)month_id=201902:表示按月进行了分区day_id=20190203:表示按天也进行了分区分区是以字段的形式在表结构中存在,通过describe table命令可以查看到字段存在,...
2019-05-29 16:51:09
7194
原创 解决Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient
Exception in thread "main" org.apache.spark.SparkException: Job aborted due to stage failure: Task 175 in stage 4.0 failed 8 times, most recent failure: Lost task 175.7 in stage 4.0 (TID 421, bsa100):...
2019-05-29 16:11:03
1348
原创 txt文件中按日期提取数据
数据格式old.txt2695350881|20190204|00250990da50|2553358|714165|0|0|0|0|1549323678|0|\N|0|0|0…提取表头head -n 1 old.txt >> new.txt按日期提取(可指定多少行,可指定多个日期) # 查看某个日期记录的行数 grep 20190204 old.txt ...
2019-05-29 15:30:14
1227
原创 Maven初步
为什么需要Maven1.如果没有Maven,你如何完成java项目的开发,配置,测试,和发布呢?以下是一个普通的Java工程src下建包写代码,那么配置文件放在哪里?单元测试代码放在哪里?没有一个统一标准,更多时候都是开发者的自由发挥,每个人有自己的风格,这并不十分适合团队协作。2.如果没有Maven,你如何完成Java项目包管理?先找好要调用的包,然后手动导包。这样做...
2019-05-22 14:51:46
278
原创 回溯法
剑指offer矩阵中的路径题目描述请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子。如果一条路径经过了矩阵中的某一个格子,则之后不能再次进入这个格子。 例如 a b c e s f c s a d e e 这样的3 X 4 矩阵中包含一条字符串"bcced"的路径,但是矩...
2019-05-11 10:02:20
125
原创 使用原生tensorflow构建一个手写字符识别的卷积神经网络
1. 基础参数设置# Training Parameterslearning_rate = 0.001num_steps = 500batch_size = 128display_step = 10# Network Parametersnum_input = 784 # MNIST data input (img shape: 28*28)num_classes = 10 ...
2019-03-23 16:18:58
174
原创 Kaggle机器学习二级水平内容回顾3,4
XGBoostXGBoost is the leading model for working with standard tabular data (the type of data you store in Pandas DataFrames, as opposed to more exotic types of data like images and videos). XGBoost ...
2019-03-11 10:52:17
192
原创 Kaggle机器学习二级水平内容回顾1,2
一、处理缺失值删除缺失值所在列,# # delete columns with missing valuecols_with_missing = [col for col in X_train.columns if X_train[col].isnull().any()]reduced_X_train = X_train...
2019-03-09 10:40:54
152
原创 【双系统安装方式】Ubuntu 16.04 安装 1080 ti显卡驱动,cuda,cudnn
硬件:hp Elitedesk G4工作站 + 英伟达1080显卡安装方式:纯手动下载包安装 1.为什么要双系统?针对我的情况,在只安装Ubuntu的时候,如果我把自带的显卡驱动卸载掉了,再次启动时,按contl+alt+f1进入不了字符界面(就完全没有反应),所以无奈另寻他法,在这篇文章中提到先安装windows+ubuntu的双系统,然后进入grub 系统选择界面时,设置一下加载u...
2019-01-01 20:07:40
434
原创 果蝇优化算法优化Z-SCORE模型参数
Z-SCORE模型 (企业风险预测)定义 Z = 1.2* X1 + 1.4 X2 + 3.3 *X3 + 0.6 X4 + 1.0* X5其中 Z 为 Z-SCORE,而 X1 至 X5 为 X1:营运资金除以总资产; X2:保留盈余除以总资产; X3:息前税前净利除以总资产; X4:股东权益市值除以总负债的账面价值; X5:销售金额除以总资产。 一般而言,一家财务健全的
2017-03-31 15:14:19
8555
7
原创 数据结构—排序IV
一、 多路归并与败者树 【引】 归并趟数S=⌈ ⌉。然而当增加归并路数m是,内部归并时间将增加。做内部归并时,在m个元素中选择关键字最小的记录需要比较m-1次(由于每个归并段之前是有序的,即从m个归并段的第一个记录的相互比较中选出最小者需要m-1次比较)。每趟归并n-1个元素需要做(n-1)*(m-1)次比较,S趟归并总共的比较次数为: S*
2017-03-12 04:41:11
1011
原创 数据结构—排序III
一. 归并排序 【基本思想】 将两个或两个以上的有序表合成一个新的有序表。 【归并-算法步骤】设有两段有序表A[ low …mid] A[mid+1…high] 存放在同一顺序表的相邻位置上,现将他们复制到辅助数组B中(这里是关键,决定了无论何种情况,即和输入状态无关,该算法空间复杂度为O(n))。每次从对应B中两个段取出一个记录进行关键字比较,将较小者放入
2017-03-12 04:32:36
616
原创 数据结构—排序II
一. 选择排序 【基本思想】每一趟(比如第i趟)在后面 n-i+1(包括第i个元素)个待排元素中选取关键字最小的元素,作为有序子序列(前1…i-1个有序元素)的第i个元素,直到第n-1趟做完,待排元素只剩下一个,就不用再选了(也就是说只选择了第1,2….n-1号元素) A. 简单选择排序【算法思想】 假设排序表为L[1….n],第i趟排序即从L
2017-03-12 04:20:16
544
原创 数据结构—排序I
要求:算法思想,排序过程(手动模拟),特征(初态的影响,时空复杂度,稳定性,适用性等) 算法的稳定性:存在相同关键字时,排序后二者的相对位置是否发生改变。如果改变了,则为不稳定的排序,否则,则为稳定的排序算法。 内部排序:在排序期间元素全部存放在内存中的排序。外部排序:是指在排序期间元素无法全部同时存放在内存中,必须在排序过程中根据要求不断的在内外存之间移动的排序。 一
2017-03-12 04:10:18
555
原创 数据结构 — 查找IV
字符串模式匹配 【定义】是求第一个字符串(模式串 )在第二个字符串(主串)中的位置。 一.简单模式匹配算法 【算法描述】 从主串S指定字符开始(一般为第一个)和模式串T的第1个字符比较,若相等,则继续逐个比较后续字符,直到T中的每个字符依次和S中的一个连续字符序列相等,则称匹配成功;如果比较过程中有某对字符不相等,则从主串S的下一个字符再重新和T的第一个字符比较。如果S中的
2017-03-12 03:55:54
441
原创 数据结构 — 查找III
B+树的基本概念 【应用】为数据库设计的一种B树的变形树 【定义】 一个m阶的B+树: 1. 每个分支结点至多有m棵子树(子结点)1. 字和指向该子树的指针,不含有该关键字对应记录的存储地址(B树中结点还存储着对应磁盘页面的地址,便于从B树中找到结点后,从磁盘将该结点信息读入内存)
2017-03-12 03:50:35
771
原创 数据结构 — 查找II
1) 删除18 【分析】 根结点(含关键字18)属于非终端结点,并且其大于18的子树中即{ 23,30}关键字个数2大于1,则找到18的后继值20(肯定是在终端结点,有B树性质可知),然后用20取代18,再删除20即可。接下来,同删除12时的情况一样
2017-03-12 03:39:45
233
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人