自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 一次Hive调优案例

记一次Hive调优案例

2022-12-21 14:08:40 335 1

原创 大数据OLAP引擎

OLAP(Online AnalyticalProcessing)是一种数据处理技术,专门设计用于支持复杂的分析操作,本文介绍目前几种主流OLAP引擎的对比,及各自的特点。

2022-12-03 10:05:32 2838 3

原创 Spark-Core开发及提交

Spark-core任务的开发及提交,Scala版,详细解释spark-submit脚本的各参数

2022-09-21 11:58:41 519

原创 HQL max+struct实现开窗功能

HQL max+struct实现开窗功能。提供了一种取最大/最小记录的更好的思路。

2022-03-24 18:36:16 911 1

原创 Springboot发送http请求

Springboot发送http请求(使用RestTemplate)零、关键类介绍public class HttpEntity<T> { public static final HttpEntity<?> EMPTY = new HttpEntity(); private final HttpHeaders headers; @Nullable private final T body; protected HttpEntity() {

2021-12-01 15:10:11 3282

原创 Hive调优(精品版)

一、数据倾斜详见我的另外一篇blog: Hive数据倾斜调优(详细版)_wzluestc的博客-CSDN博客二、数据链路太长1.表现整个代码中关联的表很多,DAG很长2.原因在mr引擎中,每个阶段的数据都会落地磁盘,链路太长,磁盘io的时间就会很多。3.解决将和小表common join转化成map join缩短任务链路,尽量使用tez引擎。1.设置参数set hive.auto.convert.join = true; – 开启map joinset hive.mapjoin.sma

2021-07-19 10:53:10 106

原创 Hive数据倾斜调优(详细版)

一、数据倾斜本质数据在各Map task或Reduce task上分配不均匀,数据量过大的task会拉长整个任务的执行时间。二、表现某个map task运行时间明显长于其他task。并且该task的数据量明显大于其他task。针对Map task,看INPUT_SPLIT_LENGTH_BYTES,该参数表示map task的输入数据量,和OUTPUT_BYTES_PHYSICAL,表示map task的输出数据量;针对Reduce task,看SHUFFLE_BYTES,表示shuffle输出,也就

2021-07-19 10:49:40 508

原创 常见Java反射的应用

一、what-什么是Java反射JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。 要想解剖一个类,必须先要获取到该类的字节码文件对象。而解剖使用的就是Class类中的方法,所以先要获取到每一个字节码文件对应的Class类型的对象。二、why-为什么需要Java反射使用反射可以在运行时动态生成对象、获取对象属性以及调用对象方法。与编译期的静态

2021-03-26 18:18:43 1484

原创 HBase实践

一、HBASE概述1.概述基于hadoop的数据库工具来源于google的一片论文BigTable 后来由Apache做了开源实现 就是HBase是一种 NoSQL 非关系型的数据库 不符合关系型数据库的范式适合存储 半结构化 非结构化 的数据适合存储 稀疏的数据 空的数据不占用空间面向列(族)进行存储提供实时增删改查的能力 是一种真正的数据库可以存储海量数据 性能也很强大 可以实现上亿条记录的毫秒级别的查询但是不能提供严格的事务控制 只能在行级别保证

2021-02-27 15:37:47 289 3

原创 正则表达式详解

一、正则表达式介绍就其本质而言,正则表达式(或 RE)是一种小型的、高度专业化的编程语言,(在Python中)它内嵌在Python中,并通过 re 模块实现。正则表达式模式被编译成一系列的字节码,然后由用 C 编写的匹配引擎执行。注:本文以正则表达式在Python中的应用为例二、普通字符和元字符普通字符: 大多数字符和字母都会和自身匹配 。 如:re.findall(‘hello’,‘yuanaleSxhellowupeiqi’)元字符: . ^ $ * + ? { } [ ] | ( ) \

2021-02-24 18:25:19 133

原创 Java常见异常处理

Java常见异常处理一、项目中出现的异常类型1.业务类异常造成业务流程不能正确执行的行为,常见的几种:输入必填验证业务状态约束校验权限验证调用外部服务返回数据不符合预期这类异常需要给调用方返回明确的异常描述信息,一般情况下和代码无关,无需调整编码注:是业务完整性的一部分,需提前分析2.系统类异常服务调用异常: 超时、中断、接口异常(非200请求)第三方异常 :db\redis\消息队列 连接失败3.通用异常编码不严谨、数据异常造成的问题,不可预测 。 举例:参数类型不匹

2021-02-04 16:53:46 180 1

原创 Springboot配置多源数据库

一、背景在spring web项目中,数据经常会来自多个数据库。如果使用多源数据库配置, 在application.properties文件里对Mybatis的配置将失效, 也就是说, 如果项目开启了自动转换驼峰命名法, 需要在配置类里面再次开启, 否则会查不到数据库里的数据。二、配置步骤1.application.properties文件首先在application.properties文件里面配置2个数据库的信息, 其中一个主数据库, 一个从数据库# 主数据库spring.dataso

2020-11-05 17:34:42 529 1

原创 阿里Java开发手册

一、编程规约(一)命名风格1. 【强制】代码中的命名均不能以下划线或美元符号开始也不能以下划线或美元符号结束。反 例 :_name / name / name/name/namename / name_ / namename/name/​name / name2.【强制】所有编程相关的命名严禁使用拼音与英文混合的方式更不允许直接使用中文的方式。说明:正确的英文拼写和语法可以让阅读者易于理解,避免歧义。注意,纯拼音命名方式更要避免采用。 正例:ali / alibaba / taobao / c

2020-09-25 15:19:59 93

原创 阿里Java开发手册

一、编程规约(一)命名风格1. 【强制】代码中的命名均不能以下划线或美元符号开始也不能以下划线或美元符号结束。反 例 :_name / name / name/name/namename / name_ / namename/name/​name / name2.【强制】所有编程相关的命名严禁使用拼音与英文混合的方式更不允许直接使用中文的方式。说明:正确的英文拼写和语法可以让阅读者易于理解,避免歧义。注意,纯拼音命名方式更要避免采用。 正例:ali / alibaba / taobao / c

2020-09-22 14:45:25 173

原创 阿里Java开发手册

一、编程规约三、单元测试1.【强制】好的单元测试必须遵守 AIR 原则。说明:单元测试在线上运行时,感觉像空气(AIR)一样并不存在,但在测试质量的保障上,却是非常关键的。好的单元测试宏观上来说,具有自动化、独立性、可重复执行的特点。A:Automatic(自动化)I:Independent(独立性)R:Repeatable(可重复)补充:junit使用@BeforeClass:修饰的方法会在所有方法被调用前执行,且该方法时静态的,所以当测试类被加载后就接着运行它,而且在内存中他只会存在

2020-09-21 16:14:23 311 1

原创 四则运算表达式解析,分离分子和分母表达式(Java实现)

四则运算表达式解析,分离分子和分母表达式(Java实现)背景需求最近项目中遇到这样一个问题。在做指标归因分析的过程中,需要将一个指标运算的逻辑拆解出来,也就是将指标的分子表达式和分母表达式解析出来。比如这样一个指标: (xinzhuangxiu_mendiandaofang+xinzhuangxiu_mendianchenhui)/xinzhuangxiu_qiandaozongliang,需要将分子分母分别提取出来返回。最终采用了栈+逆波兰 的处理方式。Step1:将运算表达式字符串分解为运算表达

2020-06-17 12:57:56 1480

原创 HDFS深度剖析(架构、读写、使用)

HDFS架构:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6wKVjhbf-1591947367225)(Hadoop笔记/imgs/clipboard.png)]HDFS为了保证数据存储的可靠性和读取性能,对数据进行切块后进行复制并存储在集群的多个节点中。​ HDFS中存在一个名字节点NameNode和多个数据节点DataNode​ NameNode​ 存储元数据信息​ 元数据保存在内存/磁盘中​ 保存文件、block、datanode之间的映射

2020-06-12 15:37:05 385

原创 python元组,字典排序

>>> d{'a': 5, 'c': 3, 'b': 4}>>> d.items()[('a', 5), ('c', 3), ('b', 4)]字典的元素是成键值对出现的,首先用items(),将字典转换为元组的列表,再用sorted()排序,用关键字key指定排序依据的值(key或者value)按照值排序:>>> s=sorted(d.items(),key=lambda x:x[1])>>> s[('c', 3)

2020-06-12 15:08:24 662

原创 Linux常用命令记录(推荐)

一、Linux命令1.解压tar.gztar -zxvf xxx.tar.gz – 解压到当前文件夹tar -zxvf xxx.tar.gz -C /xxx/xxx – 解压到/xxx/xxx文件夹2.切换进程Ctrl+z:把vim进程放到后台fg number:把进程拿回前台3.vim使用(1)移动光标:- h:左移一个字符。20h,左移20个字符- j:下移- k:上移- l:右移- 0或Home:移动到此行最前- $或End:移动到此行最后- H:光标到当前屏幕最上方行

2020-06-11 14:10:30 151

空空如也

空空如也

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

TA关注的人

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