- 博客(19)
- 收藏
- 关注
原创 大数据OLAP引擎
OLAP(Online AnalyticalProcessing)是一种数据处理技术,专门设计用于支持复杂的分析操作,本文介绍目前几种主流OLAP引擎的对比,及各自的特点。
2022-12-03 10:05:32
3357
3
原创 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
3740
原创 Hive调优(精品版)
一、数据倾斜 详见我的另外一篇blog: Hive数据倾斜调优(详细版)_wzluestc的博客-优快云博客 二、数据链路太长 1.表现 整个代码中关联的表很多,DAG很长 2.原因 在mr引擎中,每个阶段的数据都会落地磁盘,链路太长,磁盘io的时间就会很多。 3.解决 将和小表common join转化成map join缩短任务链路,尽量使用tez引擎。 1.设置参数 set hive.auto.convert.join = true; – 开启map join set hive.mapjoin.sma
2021-07-19 10:53:10
190
原创 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
768
原创 常见Java反射的应用
一、what-什么是Java反射 JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获 取的信息以及动态调用对象的方法的功能称为java语言的反射机制。 要想解剖一个类,必须先要获取到该类的字节码文件对象。而解剖使用的就是Class类中的方法, 所以先要获取到每一个字节码文件对应的Class类型的对象。 二、why-为什么需要Java反射 使用反射可以在运行时动态生成对象、获取对象属性以及调用对象方法。与编译期的静态
2021-03-26 18:18:43
1655
原创 HBase实践
一、HBASE概述 1.概述 基于hadoop的数据库工具 来源于google的一片论文BigTable 后来由Apache做了开源实现 就是HBase 是一种 NoSQL 非关系型的数据库 不符合关系型数据库的范式 适合存储 半结构化 非结构化 的数据 适合存储 稀疏的数据 空的数据不占用空间 面向列(族)进行存储 提供实时增删改查的能力 是一种真正的数据库 可以存储海量数据 性能也很强大 可以实现上亿条记录的毫秒级别的查询 但是不能提供严格的事务控制 只能在行级别保证
2021-02-27 15:37:47
424
3
原创 正则表达式详解
一、正则表达式介绍 就其本质而言,正则表达式(或 RE)是一种小型的、高度专业化的编程语言,(在Python中)它内嵌在Python中,并通过 re 模块实现。正则表达式模式被编译成一系列的字节码,然后由用 C 编写的匹配引擎执行。 注:本文以正则表达式在Python中的应用为例 二、普通字符和元字符 普通字符: 大多数字符和字母都会和自身匹配 。 如:re.findall(‘hello’,‘yuanaleSxhellowupeiqi’) 元字符: . ^ $ * + ? { } [ ] | ( ) \
2021-02-24 18:25:19
306
原创 Java常见异常处理
Java常见异常处理 一、项目中出现的异常类型 1.业务类异常 造成业务流程不能正确执行的行为,常见的几种: 输入必填验证 业务状态约束校验 权限验证 调用外部服务返回数据不符合预期 这类异常需要给调用方返回明确的异常描述信息,一般情况下和代码无关,无需调整编码 注:是业务完整性的一部分,需提前分析 2.系统类异常 服务调用异常: 超时、中断、接口异常(非200请求) 第三方异常 :db\redis\消息队列 连接失败 3.通用异常 编码不严谨、数据异常造成的问题,不可预测 。 举例:参数类型不匹
2021-02-04 16:53:46
314
1
原创 Springboot配置多源数据库
一、背景 在spring web项目中,数据经常会来自多个数据库。 如果使用多源数据库配置, 在application.properties文件里对Mybatis的配置将失效, 也就是说, 如果项目开启了自动转换驼峰命名法, 需要在配置类里面再次开启, 否则会查不到数据库里的数据。 二、配置步骤 1.application.properties文件 首先在application.properties文件里面配置2个数据库的信息, 其中一个主数据库, 一个从数据库 # 主数据库 spring.dataso
2020-11-05 17:34:42
771
1
原创 阿里Java开发手册
一、编程规约 (一)命名风格 1. 【强制】代码中的命名均不能以下划线或美元符号开始 也不能以下划线或美元符号结束。 反 例 :_name / name / name/name/namename / name_ / namename/name/name / name 2.【强制】所有编程相关的命名严禁使用拼音与英文混合的方式 更不允许直接使用中文的方式。 说明:正确的英文拼写和语法可以让阅读者易于理解,避免歧义。注意,纯拼音命名方式更要避免采用。 正例:ali / alibaba / taobao / c
2020-09-25 15:19:59
194
原创 阿里Java开发手册
一、编程规约 (一)命名风格 1. 【强制】代码中的命名均不能以下划线或美元符号开始 也不能以下划线或美元符号结束。 反 例 :_name / name / name/name/namename / name_ / namename/name/name / name 2.【强制】所有编程相关的命名严禁使用拼音与英文混合的方式 更不允许直接使用中文的方式。 说明:正确的英文拼写和语法可以让阅读者易于理解,避免歧义。注意,纯拼音命名方式更要避免采用。 正例:ali / alibaba / taobao / c
2020-09-22 14:45:25
266
原创 阿里Java开发手册
一、编程规约 三、单元测试 1.【强制】好的单元测试必须遵守 AIR 原则。 说明:单元测试在线上运行时,感觉像空气(AIR)一样并不存在,但在测试质量的保障上,却是非常关键的。好的单元测试宏观上来说,具有自动化、独立性、可重复执行的特点。 A:Automatic(自动化) I:Independent(独立性) R:Repeatable(可重复) 补充:junit使用 @BeforeClass:修饰的方法会在所有方法被调用前执行,且该方法时静态的,所以当测试类被加载后就接着运行它,而且在内存中他只会存在
2020-09-21 16:14:23
495
1
原创 四则运算表达式解析,分离分子和分母表达式(Java实现)
四则运算表达式解析,分离分子和分母表达式(Java实现) 背景需求 最近项目中遇到这样一个问题。在做指标归因分析的过程中,需要将一个指标运算的逻辑拆解出来,也就是将指标的分子表达式和分母表达式解析出来。比如这样一个指标: (xinzhuangxiu_mendiandaofang+xinzhuangxiu_mendianchenhui)/xinzhuangxiu_qiandaozongliang,需要将分子分母分别提取出来返回。 最终采用了栈+逆波兰 的处理方式。 Step1:将运算表达式字符串分解为运算表达
2020-06-17 12:57:56
1746
原创 HDFS深度剖析(架构、读写、使用)
HDFS架构: [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6wKVjhbf-1591947367225)(Hadoop笔记/imgs/clipboard.png)] HDFS为了保证数据存储的可靠性和读取性能,对数据进行切块后进行复制并存储在集群的多个节点中。 HDFS中存在一个名字节点NameNode和多个数据节点DataNode NameNode 存储元数据信息 元数据保存在内存/磁盘中 保存文件、block、datanode之间的映射
2020-06-12 15:37:05
601
原创 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
824
原创 Linux常用命令记录(推荐)
一、Linux命令 1.解压tar.gz tar -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
230
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅