自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Hadoop面试整理-HDFS小文件问题

1)会有什么影响(1)存储层面:1个文件块,占用namenode多大内存150字节1亿个小文件150字节1个文件块 * 150字节128G能存储多少文件块? 128 * 10241024*1024byte/150字节 = 9亿文件块(2)计算层面:每个小文件都会起到一个MapTask,占用了大量计算资源2)怎么解决(1)采用har归档方式,将小文件归档(2)采用CombineTextInputFormat(3)有小文件场景开启JVM重用;如果没有小文件,不要开启JVM重用,因为会一

2022-05-03 11:35:31 1251

原创 hql中求连续值

在数仓中经常会遇到求连续的指标需求,例如求连续登录,连续区间这里引用leetcode中求连续区间的一题举例题解如下select min(log_id) start_id,max(log_id) end_id from ( select log_id, log_id-(row_number() over(ORDER BY log_id ASC)) rn from logs ) t1group by rn这里我们可以使用等差数列的方法来求,等

2022-05-02 11:05:47 298

原创 数据倾斜的原因表现以及解决方法 -c

数据倾斜如果有10亿数据,一台电脑可能要10小时,现在集群有10台,可能1小时就够了,但是有可能大量的数据集中到一台或几台上,要5小时,发生了数据倾斜,例如:公司一:总用户量1000万,5台64G内存的服务器。公司二:总用户量10亿,1000台64G内存的服务器。1.公司一的数据分析师在做join的时候发生了数据倾斜,会导致有几百万用户的相关数据集中到了一台服务器上,几百万的用户数据,说大也不大,正常字段量的数据的话64G还是能轻松处理掉的。2.公司二的数据分析师在做join的时候也发生了数据倾斜

2022-05-01 17:47:15 6590 1

原创 Flink-异步IO关联Hbase维表

1.异步IO在Flink 流处理过程中,经常需要和外部系统进行交互,如通过维度表补全事实表中的维度字段。默认情况下,在Flink 算子中,单个并行子任务只能以同步方式与外部系统交互:将请求发送到外部存储,IO阻塞,等待请求返回,然后继续发送下一个请求。这种方式将大量时间耗费在了等待结果上。为了提高处理效率,可以有两种思路。(1)增加算子的并行度,但需要耗费更多的资源。(2)异步 IO。Flink 在1.2中引入了Async I/O,将IO操作异步化。在异步模式下,单个并行子任务可以连续发送多个请

2022-05-01 10:06:44 948

原创 flink实时数仓-旁路缓存优化

1.旁路缓存外部数据源的查询常常是流式计算的性能瓶颈。在实时数仓中DWS中不少指标需求需要关联hbase中的维表。每次查询都要连接 Hbase,数据传输需要做序列化、反序列化,还有网络传输,严重影响时效性。可以通过旁路缓存对查询进行优化。旁路缓存模式是一种非常常见的按需分配缓存模式。所有请求优先访问缓存,若缓存命中,直接获得数据返回给请求者。如果未命中则查询数据库,获取结果后,将其返回并写入缓存以备后续请求使用。(1)旁路缓存策略应注意两点缓存要设过期时间,不然冷数据会常驻缓存,浪费资源。要考虑

2022-05-01 09:57:15 1774

原创 Flink数据倾斜问题以及解决方法

1. 判断是否存在数据倾斜相同 Task 的多个 Subtask 中,个别Subtask 接收到的数据量明显大于其他 Subtask 接收到的数据量,通过 Flink Web UI 可以精确地看到每个 Subtask 处理了多少数据,即可判断出 Flink 任务是否存在数据倾斜。通常,数据倾斜也会引起反压。2.数据倾斜的解决2.1 keyBy 之前发生数据倾斜如果 keyBy 之前就存在数据倾斜,上游算子的某些实例可能处理的数据较多,某些实例可能处理的数据较少,产生该情况可能是因为数据源的数据本身

2022-04-30 16:42:32 7208 2

原创 Flink优化-反压处理

反压(BackPressure)通常产生于这样的场景:短时间的负载高峰导致系统接收数据的速率远高于它处理数据的速率。许多日常问题都会导致反压,例如,垃圾回收停顿可能会导致流入的数据快速堆积,或遇到大促、秒杀活动导致流量陡增。反压如果不能得到正确的处理,可能会导致资源耗尽甚至系统崩溃。反压机制是指系统能够自己检测到被阻塞的 Operator,然后自适应地降低源头或上游数据的发送速率,从而维持整个系统的稳定。Flink 任务一般运行在多个节点上,数据从上游算子发送到下游算子需要网络传输,若系统在反压时想要降

2022-04-30 16:29:18 2398

原创 数据采集之业务数据采集整理

业务数据存储在mysql中,分为增量表和全量表,此项目中有一台在hadoop102下的mysql存储全量和增量业务数据。1.全量数据全量数据使用datax存进hdfs中2.增量数据增量数据使用maxwell+flume传输到hdfs中首次使用,需要进行全量同步,可以使用maxwell-bootstrap脚本(1)maxwell(可以实时的监控mysql)(2)kafka(3)flume组件为自定义时间戳拦截器kafkaSourcefilechannelhdfsSink...

2022-01-12 19:10:51 1398

原创 数据采集之用户行为日志采集

1.生产中的用户行为日志为前后端埋点产生,存在在日志服务器中, 在本项目中存储在hadoop102和hadoop103两台机器中。2.同时进行日志采集的两台flume也分别在102和103的机器上,在flume组件的组件方面两台机器是一样的,使用的是taildirSource(特点:支持断点续传)kafkachannel 进行缓冲和聚合另外还有一个ETL自定义拦截器负责数据清洗3.通过flume传到kafka集群中,kafka中topic为topic_log4.在hadoop104中的flume

2022-01-12 18:40:54 2098

转载 kafka 精准一次性

kafka 精准一次性重要性在很多的流处理框架的介绍中, 都会说 kafka 是一个可靠的数据源, 并且推荐使用 kafka 当作数据源来进行使用. 这是因为与其他消息引擎系统相比, kafka 提供了可靠的数据保存及备份机制. 并且通过消费者 offset 这一概念, 可以让消费者在因某些原因宕机而重启后, 可以轻易得回到宕机前的位置.而 kafka 作为分布式 MQ, 大量用于分布式系统中, 如消息推送系统, 业务平台系统 (如结算平台), 就拿结算来说, 业务方作为上游把数据传输到结算平台, 如

2021-12-30 10:59:51 234

原创 kafka复习整理(1)

1)Producer :消息生产者,就是向kafka broker发消息的客户端;2)Consumer :消息消费者,向kafka broker取消息的客户端;3)Consumer Group (CG):消费者组,由多个consumer组成。消费者组内每个消费者负责消费不同分区的数据,同一个topic的一个分区只能由同一个组内消费者消费;消费者组之间互不影响。所有的消费者都属于某个消费者组,即消费者组是逻辑上的一个订阅者。比如组长 组员 大家共同干一件事,每个人干一件事,干了什么是由kafka记录组长也

2021-12-30 10:43:09 207

原创 kafka中的offset理解

offset: 一个连续的用于定位被追加到分区的每一个消息的***,最大值为64位的long大小,19位数字字符长度。理解为类比Java中的数组,kafka里面存着消息的数组,offset类似于数组下标。Kafka与其它队列的一个区别是offset是在消费端进行维护,而不是服务端,因此多个消费端可以消费同一个队列里的数据,并自行控制消费位置。...

2021-12-29 12:00:42 4065 1

转载 hive中sql执行顺序

1.from2.join on 或 lateral view explode(需炸裂的列) tbl as 炸裂后的列名3.where4.group by (开始使用select中的别名,从group 开始往后都可用)5.聚合函数 如Sum() avg() count(1)等6.having7.select 中若包含over()开窗函数,执行完非开窗函数后select等待执行完开窗函数,然后执行select完,开窗函数通过表数据进行分区和排序,跟select查询中的字段是平行关系,

2021-12-23 13:57:42 218

原创 mr环形缓冲区倒排索引反向溢写

发生在环形缓冲区溢写的快排序阶段 排序阶段,排序方式是,先按照分区编号Partition进行排序,然后按照key进行排序。分区分完后,如果同一个分区内数据的key相同就不需要进行排序,例如 一个分区内排序排完的数据为[a,1],[a,2],[c,1],[b,1]那么因为索引0和1的key是相同的所以他们两个之间是不需要排序的,所以倒排序后的索引和数据为[c,1],[b,1][a,1],[a,2]然后往外溢写的时候也是反向溢写,所以输出顺序为[a,2][a,1],[b,1],[c,1]总结:就

2021-12-15 20:55:10 2115

转载 Spring中BeanFactory和ApplicationContext的区别

两者的大概背景BeanFactory: BeanFactory是spring中比较原始,比较古老的Factory。因为比较古老,所以BeanFactory无法支持spring插件,例如:AOP、Web应用等功能。ApplicationContext ApplicationContext是BeanFactory的子类,因为古老的BeanFactory无法满足不断更新的spring的需求,于是ApplicationContext就基本上代替了BeanFactory的工作,以一种更面向框架的工作方式以.

2021-04-27 16:29:43 267

转载 Spring中ioc的实现原理

Spring中ioc的实现原理学习过Spring框架的人一定都会听过Spring的IoC(控制反转) 、DI(依赖注入)这两个概念,对于初学Spring的人来说,总觉得IoC 、DI这两个概念是模糊不清的,是很难理解的,今天和大家分享网上的一些技术大牛们对Spring框架的IOC的理解以及谈谈我对Spring Ioc的理解。一、分享Iteye的开涛对Ioc的精彩讲解  首先要分享的是Iteye的开涛这位技术牛人对Spring框架的IOC的理解,写得非常通俗易懂,以下内容全部来自原文,原文地址:http

2021-02-04 21:43:23 107

原创 3.14周测整理

1.什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”?Java虚拟机是执行字节码文件(.class)的虚拟机进程。java源程序(.java)被编译器编译成字节码文件(.class)。然后字节码文件,将由java虚拟机,解释成机器码(不同平台的机器码不同)。利用机器码操作硬件和操作系统。因为不同的平台装有不同的JVM,它们能够将相同的.class文件,解释成不同平台所需要的机...

2019-03-14 22:34:15 116

转载 JSP四大作用域

1、servletContext域对象 – 代表整个WEB应用的对象生命周期:在WEB应用被加载之后立即创建servletContext对象,服务器关闭或者WEB应用被移出容器时将会销毁servletContext对象。作用范围:整个WEB应用。主要功能:在整个WEB应用范围内实现资源的共享。2、session域对象 – 表示整个会话的对象生命周期:当第一次调用request...

2019-03-08 15:01:19 146

转载 JSP中九大内置对象

jsp 九大内置对象和其作用详解JSP中一共预先定义了9个这样的对象,分别为:request、response、session、application、out、pagecontext、config、page、exception1、request对象request 对象是 javax.servlet.httpServletRequest类型的对象。 该对象代表了客户端的请求信息,主要用于接受通...

2019-03-08 14:43:45 84

转载 单例模式的作用

Java Singleton模式主要作用是保证在Java应用程序中,一个类Class只有一个实例存在。 使用Singleton的好处还在于可以节省内存,因为它限制了实例的个数,有利于Java垃圾回收(garbage collection)。我们在浏览BBS、SNS网站的时候,常常会看到“当前在线人数”这样的一项内容。对于这样的一项功能,我们通常的做法是把当前的在线人数存放到一个内存、文件或者数据...

2019-03-06 22:13:03 292

原创 2月16日java周测整理

1.实现在控制台输出九九乘法表package com.dodoke.test;public class Test1 { public static void main(String[] args) { for (int i = 1; i <= 9; i++) { for (int j = 1; j <= i; j++) { System.out.print(i...

2019-02-16 11:05:15 83

原创 关于静态引入 import static

import static 是静态导入,是jdk1.5的新特征.利用import static 可以不通过调用包名,直接使用包里的静态方法。比如,我在一个类中写了很多静态的方法;那么我要在另外一个类中去调用他,就要用import static...

2019-01-22 11:20:39 3197

原创 年前小结以及学习计划

经过前段时间将近一个月的学习。我们吧数据库学完了,老师还讲了点java基础。但是经过上周的周测来看,我不仅数据库和java基础部分的内容学的不扎实,而且之前学的前端,html和js部分的内容概念部分都开始有点生疏了。反思了原因就是,老师上课讲完,下午昨晚老师布置的任务。没有经常做练习,老师上课讲的很多理论知识,我们要下课自己学着实践,自己去敲敲看。多敲代码,多练才能巩固之前的知识,理解透彻新学的知...

2019-01-21 10:52:12 167

原创 类与对象练习(1)

1.将「南通渡课 IT 教育 1811 班同学在 3 教室上崔老师的 Java 课」这个场景进行业务类的抽象,类中包含属性和方法。首先我们从中抽象出(南通渡课 IT 教育 ,1811 班,同学,3 教室,崔老师, Java 课)这六个对象。代码如下最后控制台打出...

2019-01-18 14:09:19 165

原创 关于Eclipse的Debug模式

一,我们使用Debug模式的目的1.通过debug模式我们可以更加方便快捷的定位问题出现的位置,并且找到原因进行修改.2.跟踪程序是否走预期流程3.查看运行过程中某些变量值二, 如何打开Debug模式1.首先要在我们测试的代码中设置断点我们可以在Java代码的行号处使用鼠标双击出一个断点,这样当我们的程序使用debug模式运行到断点处时,程序会暂停在这里,等待下一步运行的指令,如图:...

2019-01-18 11:29:51 266

原创 关于Java已学基础部分知识梳理

一 1. Java可以理解为编程语言或者开发工具。Java 最终的目的是用于编写直接在机器上运行的程序。与 HTML 运行与浏览器,SQL 运行与数据库系统对比,Java 能做的事情更多,更加的普遍。2. 对于跨平台的理解为了让平台对编程人员透明,写出可以在不同平台运行的相同源代码,Java 开发出了 JVM (Java 虚拟机)。即在机器和编译程序之间加入了一层抽象的虚拟的机器。...

2019-01-15 14:09:34 78

原创 关于java中类和对象以及示例

首先类是 Java 中最基础的组成单元面向过程编程和面向对象编程面向过程编程:通过一个函数去完成一件事情,而且这件事情完成之后,不会留下任何的遗产。或者理解为:一次性。面向对象编程:在完成一件事情时,会将事情中的实体对象抽象出来,形成「类」的概念,事情的完成是通过类的对象之间发生关系去实现的。在面向对象编程中,实体对象是可以被「复用」的。类和对象概念类是一群对象的特征母版,对象是...

2019-01-14 14:27:32 296

原创 关于 Eclipse的使用(以及Eclipse中常用的快捷键)

作为一款优秀的Java IDE,eclipse具有许多强大的功能,目前我也在不断探索,作为初学者,我在编程过程中,也收获到了许多有助于我们高效开发的方法,下面简单叙述一下我的一些收获1.在安装时要注意的是,要新建一个以后存放代码的文件夹workspace2.首先在安装完eclipse后,先新建一个java项目 如下图继续然后在新建一个java的类最后就创建完成了另外关于Eclipse中...

2019-01-14 14:00:28 1211

转载 mysql group by 分组查询

1:语法格式select [columns] from table_name [where…] group by [columns] [having …]注意:需要说明的是,在select指定的字段要么就要包含在Group By语句的后面,作为分组的依据;要么就要被包含在聚合函数中!2:Having与Where的区别where 子句的作用是在对查询结果进行分组前,将不符合where条件的行...

2019-01-11 16:08:41 113

原创 关于PowerDesigner的使用教程

我们可以使用PowerDesigner来创建数据库1.我们可以直接使用Create model开始创建模型2.选择之后,在选择模型类型 (model types)模型类型我们选择的是Physical Data Model 紧接着Diagram 我们选择的是 Physical Diagram 最后在最下面的DBMS这里栏我们将版本改成mysql5.0的版本然后确定 具体设置如下图这样我们的...

2019-01-10 14:36:30 177

原创 数据库常用操作命令语句

关于DOS命令:进入命令提示符控制台CMD,命令:打了一个字符串通过回车让计算机去执行一定的操作;进入盘符,D: 、C:进入到目录 cd ,跟的目录名称是可以使用通配符*,比如要进入 d:/mydocument ,可以通过命令cd mydoc*返回上级目录 cd…列式目录 dir树状列式目录内的所有文件treemysql:1.安装 mysql install mysql-5.5;...

2019-01-08 19:56:24 769 1

空空如也

空空如也

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

TA关注的人

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