- 博客(108)
- 问答 (2)
- 收藏
- 关注
原创 FineReport(帆软)实现分页查询
页面默认展示大小不合适,需要调整 点击模板,选择页面设置进行自定义调整。A3为数据开始展示的那一行,30表示每30条数据为一页。条件属性内容:&A3 % 30 = 0。
2023-06-14 14:29:27 3171
原创 FineReport 连接mysql报错 当前驱动加载路径...
原因为帆软自带的jar包与当前使用的mysql(8.0)版本不一致,需要去官网下载对应连接的jar包。下载后在帆软对应路径替换掉jar包即可。
2023-06-12 15:00:41 3647
原创 SparkStreaming与Flink的区别 (面试层面~)
对于 Spark Streaming 任务,我们可以设置 checkpoint,然后假如发生故障并重启,我们可以从上次 checkpoint 之处恢复,但是这个行为只能使得数据不丢失,可能会重复处理,不能做到恰好一次处理语义。事件驱动的应用程序是一种状态应用程序,它会从一个或者多个流中注入事件,通过触发计算更新状态,或外部动作对注入的事件作出反应。Spark Streaming 是微批处理,运行的时候需要指定批处理的时间,每次运行 job 时处理一个批次的数据。
2022-11-24 10:37:23 768 1
原创 SparkStreaming 消费Kafka数据的两种方式(Receiver,Direct)~
而在Direct方式中,Kafka中的partition与RDD中的partition是一一对应的并行读取Kafka数据,这种映射关系也更利于理解和优化。在Receiver的方式中,使用的是Kafka的高阶API接口从Zookeeper中获取offset值,这也是传统的从Kafka中读取数据的方式,但由于。的最新的offset,从而定义每个batch的offset的范围。这种新的不基于Receiver的直接方式,是在Spark 1.3中引入的,从而能够确保更加健壮的机制。使用 kafka 的简单 api,
2022-11-23 16:17:03 894
原创 Spring装配Bean的三种方式(XML、JavaConfig、Autowired)
Spring会拦截所有对@Bean注解的方法的调用,确保直接返回这个方法创建的bean,而不是让其执行实际调用。常用于构造器、setter方法,当Spring创建它们所在对象的bean时,会传入一个相应参数类型的bean,即自动满足所创建bean 的(对另一个bean的)依赖。——告诉Spring这个方法返回一个对象,该对象要注册为Spring应用上下文中的bean,bean的默认ID和这个方法名一致,也可以用name属性自定义啦。自动装配机制会考虑到容器中所有的bean,不管它是在。
2022-11-22 11:39:35 1310
原创 Hbase的rowkey设计原则与实现方式~
其设计时,要考虑把重要的信息放左边,不重要的信息放到右边,可以提高查询数据的速度。这样,最重要的提高索引速度的就是设计合适的rowkey。缺点:对于单个信息字段,或者无论怎么调整都会遇到region热点的rowkey是解决不了的。有效避免了热点问题;加盐:在rowkey前面加一个冗余信息,这样可以把数据分散到不同的region中。字段交换,提升权重:如果rowkey中含有几个信息字段,可以调整信息字段的顺序。不能得到有效利用,缓存不能存放太多的信息,造成检索效率的降低。的是大多以升序的形式排列,唯一的是。
2022-11-22 10:54:14 501
原创 redis过期key的清理/删除策略
因为删除操作会占用cpu的时间,如果刚好碰上了cpu很忙的时候,比如正在做交集或排序等计算的时候,就会给cpu造成额外的压力。惰性删除是指,某个键值过期后,此键值不会马上被删除,而是等到下次被使用的时候,才会被检查到过期,此时才能得到删除。从上面分析来看,立即删除会短时间内占用大量cpu,惰性删除会在一段时间内浪费内存,所以定时删除是一个折中的办法。定时删除是:每隔一段时间执行一次删除操作,并通过限制删除操作执行的时长和频率,来减少删除操作对cpu的影响。所以惰性删除的缺点很明显:浪费内存。
2022-11-21 17:33:03 2139
原创 Hbase过滤器详解与代码实现~
基础API中的查询操作在面对大量数据的时候是非常苍白的,这里Hbase提供了高级的查询方法:Filter。Filter可以根据簇、列、版本等更多的条件来对数据进行过滤,基于Hbase本身提供的三维有序(),这些Filter可以高效的完成查询过滤的任务。),代表具体的比较逻辑,如果可以提高字节级的比较、字符串级的比较等。有了这两个参数,我们就可以清晰的定义筛选的条件,过滤数据。要完成一个过滤的操作,至少需要两个参数。)的过滤器,这样也可以降低网络传输的压力。另外一个就是具体的比较器(
2022-11-18 15:59:08 375
原创 File类对文件的目录、基本操作、递归、遍历(超详细整理~)
【代码】Java.io.File类对文件的目录、基本操作、递归、遍历(超详细整理~)
2022-11-17 16:40:02 334
原创 冷启动问题分析与解决办法
在缺乏有价值数据的时候,如何有效地满足业务需求的问题,就是“冷启动问题”。为了沟通方便,下面统一从推荐系统的角度来讲“冷启动问题”,其他业务场景同理。冷启动问题是机器学习系统中十分常见、无法回避的问题,因为任何机器学习系统都要经历从无到有的过程。试想,你作为一个新用户,在没有用户数据的情况下,淘宝如何给你个性化推荐商品,抖音如何给你个性化推荐视频呢?用户冷启动:新用户注册后,没有历史行为数据。物品冷启动:新物品上架后,没有用户对该物品的交互数据。
2022-11-17 15:29:17 4290
原创 Kettle实现:MongoDB与MySQL数据互传
上面的复选框选择是否输入json格式,这时不选。选择 ”bigdata-mongodb ouput"组件。在kettle中,mongodb input组件。点击get fileds,获取字段对应关系。二、mysql数据迁移到mongodb。输入数据数据和集合(没有集合自动创建)一,mongodb传数据到mysql。编辑mongodb output组件。选择“表输入”组件,编辑表输入。
2022-11-17 09:57:41 1007
原创 Eclipse 报错 Missing artifact jdk.tools:jdk.tools:jar:1.6(已解决)
在eclipse中创建java项目后,pom文件中照常添加依赖,结果报错。pom文件中添加如下依赖,然后右键项目刷新Refresh后,没有再报错。
2022-10-13 16:16:31 1206
原创 HDFS小文件问题分析与解决方案(面试层面~)
1)会有什么影响(1)存储层面:1个文件块,占用namenode多大内存150字节1亿个小文件150字节1个文件块 * 150字节(2)计算层面:每个小文件都会起到一个MapTask,占用了大量计算资源2)怎么解决(1)采用har归档方式,将小文件归档(2)采用CombineTextInputFormat(3)有小文件场景开启JVM重用;如果没有小文件,不要开启JVM重用,因为会一
2022-04-14 14:58:31 2791 15
原创 JAVA JVM 运行机制和基本原理
JVM的基础概念JVM的中文名称叫Java虚拟机,它是由软件技术模拟出计算机运行的一个虚拟的计算机。JVM也充当着一个翻译官的角色,我们编写出的Java程序,是不能够被操作系统所直接识别的,这时候JVM的作用就体现出来了,它负责把我们的程序翻译给系统“听”,告诉它我们的程序需要做什么操作。我们都知道Java的程序需要经过编译后,产生.Class文件,JVM才能识别并运行它,JVM针对每个操作系统开发其对应的解释器,所以只要其操作系统有对应版本的JVM,那么这份Java编译后的代码就能够运行起来,这就是
2022-04-12 17:56:03 621 10
原创 建造者设计模式(角色分析)
使用简单的对象一步一步构建成一个复杂的对象。概念:定义:讲一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。主要作用:在用户不知道 对象的建造过程和细节 的情况下就可以直接创建复杂的对象如何使用:用户只需要给出指定复杂对象的类型和内容,建造者模式负责按顺序创建负责对象(把内部的建造过程和细节隐藏起来)解决的问题:①方便用户创建负责的对象(不需要知道实现过程)②代码复用性\封装性(将对象那个构建过程和细节进行封装和复用)注意事项:与工厂模式的区别是:建造者模式更加关注零件
2021-12-30 10:41:16 240 5
原创 建表规范的简单了解
基本建表规范:自增主键一般都需要设置(id int unsigned NOT NULL AUTO_INCREMENT`);不定长字符串长度使用varchar类型,需要考虑实际业务最长长度的基础上扩容20%到40%为宜,且长度取2的指数长为宜(64,128,256等);定长长度使用char类型,长度直接取实际长度即可,类似于手机号字段;所有字段除了软删除字段(delete_time),都需要设置为not null,并且设置默认值(字符串默认值为’’,整型默认值为0);基本所有的字段,表
2021-12-27 20:00:00 687 1
原创 派生表 简单了解和定义
派生表的定义派生表是在外部查询的FROM子句中定义的,只要外部查询一结束,派生表也就不存在了。派生表的作用派生表可以简化查询,避免使用临时表。相比手动生成临时表性能更优越。派生表与其他表一样出现在查询的FROM子句中。例如:SELECT * FROM ( SELECT * FROM Customers WHERE 城市='广州' ) Cus其中Cus就是派生表派生表的特征● 所有列必须要有名称,出现无列名的要重命名● 列名称必须是要唯一,相同名称肯定是不允许的● 不允许使用ORDER
2021-12-27 15:22:05 1904
原创 数据库建表三范式简单了解与思考
1.第一范式(确保每列保持原子性)【属性不可分】 第一范式是最基本的范式。如果数据库表中的所有字段值都是不可分解的原子值,就说明该数据库表满足了第一范式。第一范式的合理遵循需要根据系统的实际需求来定。比如某些数据库系统中需要用到“地址”这个属性,本来直接将“地址”属性设计成一个数据库表的字段就行。但是如果系统经常会访问“地址”属性中的“城市”部分,那么就非要将“地址”这个属性重新拆分为省份、城市、详细地址等多个部分进行存储,这样在对地址中某一部分操作的时候将非常方便。2.第二范式(确保表中的每列都和主
2021-12-27 15:16:42 196
原创 数据表中直接存放json格式的一些思考
优点:1、最直接的好处是不用为数据中的每个key值新建一个字段,可以任意的增减字段而无需修改数据表结构,甚至可以减少数据表的设计。2、可以减少数据表的查询,减少关联查询,一个查询的结果就可以代替几个查询的结果,降低数据库服务器的压力。缺点:1、json数据仅仅只能用于展示,如果用于条件查询,数据更新其效率是很低的,而且难于优化,不要尝试在json字段上进行查询优化。2、虽然mysql5.7支持了json类型,Mysql存放JSON格式的论坛(学习思路):Storing JSON in data
2021-12-27 15:14:00 4896
原创 数仓之 数据埋点简单了解
主流埋点方式:目前主流的埋点方式,有代码埋点(前端/后端),可视化埋点,全埋点三种。代码埋点:是通过调用埋点SDK函数,在需要埋点的业务逻辑功能位置调用接口,上报埋点数据。例如,我们对页面中的某个按钮埋点后,当这个按钮被点击时,可以在这个按钮对应的OnClick函数里面调用SDK提供的数据发送接口,来发送数据。可视化埋点:只需要研发人员集成采集SDK,不需要写埋点代码,业务员人员就可以通过访问分析平台的"圈选"功能,来"圈"出需要对用户行为进行捕捉的控件,并对该事件进行命名。圈选完毕后,这些配置回头
2021-12-20 16:02:45 496
原创 kettle报错 GC overhead limit exceeded(内存溢出问题)
kettle内存溢出的相关设置 GC overhead limit exceededSpoon.bat(windows端)和Spoon.sh(linux端)里设置的内存太小,可以设置为机器内存的1/4,比如16G内存,可以设置到4G。初始配置-Xms初始的Heap的大小。-Xmx最大Heap的大小。在很多情况下,-Xms和-Xmx设置成一样的。这么设置,是因为当Heap不够用时,会发生内存抖动,影响程序运行稳定性。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img
2021-12-09 16:00:39 5859 2
原创 kettle数据库链接共享(或本地配置文件)
在一个文件里,新建所有需要共享的数据库链接。然后右键数据库链接,点共享。之后重启Kettle可以完成共享,或者重复共享,取消共享操作。共享操作主要是修改了,kettle本地的配置文件shared.xml有需要的小伙伴,可以直接在配置文件里永久修改。如果有把脚本同步到线上的需求,在共享数据库连接后。对需要更改的文件进行保存即可。...
2021-12-03 10:21:34 5711
原创 Exception in thread “main“ java.lang.NullPointerException 读取本地json文件找不到,SpringBoot访问本地静态资源
Exception in thread "main" java.lang.NullPointerException at com.jzx.JsonDemo.main(JsonDemo.java:12)在application.properties配置中也进行了修改spring.resources.static-locations=classpath:/static/最后发现json文件在target中未找到可以通过重新编译,或者先直接上传到target中之后重新运行就可以获取到了..
2021-12-01 14:27:25 487
原创 com.alibaba.fastjson.JSONException: can not cast to JSONObject 使用fastjson解析json时报错
Exception in thread "main" com.alibaba.fastjson.JSONException: can not cast to JSONObject. at com.alibaba.fastjson.JSON.parseObject(JSON.java:231) at com.jzx.JsonDemo.main(JsonDemo.java:15)Caused by: java.lang.ClassCastException: com.alibaba.fastjson.JS
2021-12-01 14:17:39 28442 3
原创 IDEA lombok插件的安装(快速安装)和常用注解介绍
首先添加maven依赖<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.8</version> <scope>provided</scope></dependency>开始安装插件1、Ctrl+Alt+S打开设置选项(或按路径
2021-11-30 11:18:46 1338
原创 String、StringBuffer和StringBuilder类区别分析
Java提供了String、StringBuffer和StringBuilder类来封装字符串,并提供了一系列操作字符串对象的方法。它们的相同点是都用来封装字符串;都实现了CharSequence接口。它们之间的区别如下:一、可变与不可变String类是一个不可变类,即创建String对象后,该对象中的字符串是不可改变的,直到这个对象被销毁。StringBuffer与StringBuilder都继承自AbstractStringBuilder类,在AbstractStringBuilder中也是使用字
2021-11-29 19:48:17 119
原创 实现单例模式的几种方式
单例模式的几种实现方式单例模式的实现有多种方式,如下所示:1、懒汉式,线程不安全是否 Lazy 初始化:是是否多线程安全:否实现难度:易描述:这种方式是最基本的实现方式,这种实现最大的问题就是不支持多线程。因为没有加锁 synchronized,所以严格意义上它并不算单例模式。这种方式 lazy loading 很明显,不要求线程安全,在多线程不能正常工作。实例public class Singleton { private static Singleton instance;
2021-11-29 17:22:31 175
原创 Java的三大特性(基本特征)
面向对象的三个基本特征是:封装、继承、多态。封装封装最好理解了。封装是面向对象的特征之一,是对象和类概念的主要特性。封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。在Java中类中成员的属性有:public, protected, (default), private,这四个属性的访问权限依次降低。继承面向对象编程 (OOP) 语言的一个主要功能就是“继承”。继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原
2021-11-29 16:40:03 8594
原创 Java创建线程方式的对比
1、采用实现Runnable、Callable接口的方式创建多线程时,优势是:线程类只是实现了Runnable接口或Callable接口,还可以继承其他类。在这种方式下,多个线程可以共享同一个target对象,所以非常适合多个相同线程来处理同一份资源的情况,从而可以将CPU、代码和数据分开,形成清晰的模型,较好地体现了面向对象的思想。劣势是:编程稍微复杂,如果要访问当前线程,则必须使用Thread.currentThread()方法。2、使用继承Thread类的方式创建多线程时,优势是:编写
2021-11-25 15:12:12 293
原创 Java中的四种权限修饰符
public——对所有类可见,任何人都可以使用;private——仅对本类可见,除类型创建者和类型的内部方法外,其他人不得使用;protected——对本包和所有子类可见(与private相当,差别是继承的类可以访问protected成员,而不能访问private成员)(继承的类即子类)。默认访问权限 default——对本包可见,可以访问同一个包中的其他类的成员,而不能访问其他包的成员。权限:指代作用范围public < protected < default < privat
2021-11-22 15:11:35 554
原创 JAVA 的成员变量和局部变量 以及初始化和内存运行机制
java的变量包括成员变量和局部变量1**、成员变量和局部变量的简单概念**成员变量:实例变量(不以static修饰)类变量(以static修饰)局部变量:形参(方法签名中的变量)方法局部变量(在方法内定义)代码块局部变量(在代码块中定义)成员变量类变量从该类的准备阶段起开始存在,直到系统完全销毁这个类,类变量的作用域与这个类的生存范围相同;而实例变量则从该类的实例被创建起开始存在,直到系统完全销毁这个实例,实例变量的作用域与对应实例的生存范围相同。正是基于这个原因,可以把类
2021-11-19 16:47:05 513
转载 JAVA 的内存管理和垃圾回收
栈在Java中,JVM中的栈记录了线程的方法调用。每个线程拥有一个栈。在某个线程的运行过程中,如果有新的方法调用,那么该线程对应的栈就会增加一个存储单元,即帧(frame)。在frame中,保存有该方法调用的参数、局部变量和返回地址。调用栈Java的参数和局部变量只能是基本类型的变量(比如int),或者对象的引用(reference)。因此,在栈中,只保存有基本类型的变量和对象引用。引用所指向的对象保存在堆中。(引用可能为Null值,即不指向任何对象)引用与对象当被调用方法运行结束时,该方法
2021-11-18 16:06:04 286
原创 JAVA运行流程,原理 (一)
java运行原理源文件(.java源代码)通过编译器编译成字节码文件class。通过JVM中的解释器将字节码文件生成对应的可执行文件,运行。将编译后的程序加载到方法区,存储类信息。运行时,JVM创建线程来执行代码,在虚拟机栈和程序计数器分配独占的空间。根据方法区里的指令码,在虚拟机栈对线程进行操作,程序计数器保存线程代码执行到哪个位置。Class字节码文件:是一个二进制文件,包含了JAVA程序执行的字节码,包含的信息有版本、访问标志、常量池、当前类、超级类、接口、字段、方法、属
2021-11-18 15:45:07 132
原创 Kettle打开后闪退,秒退 (Couldn‘t read the database cache)
我遇到的问题是,kettle执行较复杂脚本时秒退。之后打不开的问题具体可以在运行日志中找到问题2021/11/17 16:42:16 - ERROR (version 9.1.0.0-324, build 9.1.0.0-324 from 2020-09-07 05.09.05 by buildguy) : Error starting Spoon shell2021/11/17 16:42:16 - ERROR (version 9.1.0.0-324, build 9.1.0.0-324 from
2021-11-17 18:14:34 6800 2
原创 clickhouse Too many simultaneous queries 同时查询数量过多
https://github.com/ClickHouse/ClickHouse/blob/master/programs/server/config.xml#L237
2021-11-17 17:05:51 1764
原创 python 国内的repository
国内python数据源头清华:https://pypi.tuna.tsinghua.edu.cn/simple阿里云:http://mirrors.aliyun.com/pypi/simple/中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/华中理工大学:http://pypi.hustunique.com/山东理工大学:http://pypi.sdutlinux.org/豆瓣:http://pypi.douban.com/simple/...
2021-11-16 14:36:36 2348
原创 自定义jQuery插件的快速使用
把想要实现的功能,封装起来就形成了插件。基于jQuery完成的插件,被称为jQuery自定义插件。比如说:bootstrap里面的插件;bootstrap中自己定义插件概念通过$.fn.extend完成插件的自定义//定义一个插件$.fn.extend({ 插件名:function(param){ //这个插件要实现的功能 }})使用插件步骤把自定义插件对应的js引入到页面写HTML标签在标签上使用插件,就在js代码中写$(selector).插件名()
2021-02-01 22:33:42 204
原创 HDFS如何处理小文件
HDFS小文件的影响影响NameNode的寿命,因为每个文件元数据存储在NameNode的内存中影响计算引擎的任务数量,比如每个小的文件都会生成一个Map任务数据输入小文件处理合并小文件:对小文件进行归档(Har)采用ConbinFileInputFormat来作为输入,解决输入端大量小文件场景对于大量小文件job,可以开启JVM重用(四处整理的)...
2020-12-20 22:11:33 248
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人