自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(120)
  • 资源 (3)
  • 收藏
  • 关注

原创 自己实现SpringBoot三方Starer依赖封装(自动装配自定义实现)

SpringBoot自动装配自定义Starter实现

2023-09-23 18:13:23 334

原创 【Mac】编译Spring 源码和Idea导入

Spring 源码阅读

2023-08-26 17:52:03 1463

转载 如何监测MySQL是否命中索引?

Mysql Explain解读

2023-08-06 23:33:00 990

原创 Spring JdbcTemplate 和 事务

JdbcTemplate是spring框架中提供的一个对象,是对原始繁琐的Jdbc API对象的简单封装。spring框架为我们提供了很多的操作模板类。例如:操作关系型数据的JdbcTemplate和,操作nosql数据库的RedisTemplate,操作消息队列的JmsTemplate等等。按如下项目结构准备 maven jar项目即可1 批量增加2 批量修改3 批量删除。

2023-02-10 15:33:21 829 1

原创 Aop切面编程原理和Spring实现

AOP切面编程一般可以帮助我们在不修改现有代码的情况下,对程序的功能进行拓展,往往用于实现 日志处理,权限控制,性能检测,事务控制等AOP实现的原理就是动态代理,在有接口的情况下,使用JDK动态代理,在没有接口的情况下使用cglib动态代理类里面那些可以被增强的方法,这些方法称之为连接点表示在程序中明确定义的点,典型的包括方法调用,对类成员的访问以及异常处理程序块的执行等等,它自身还可以嵌套其它 joint point实际被增强的方法,称之为切入点。

2023-01-28 16:40:14 1223

原创 JDK动态代理&CGLIB动态代理

代理模式是通过代理对象访问目标对象,这样可以在目标对象基础上增强额外的功能,如添加权限,访问控制和审计等功能。房产中介代替业主卖房静态代理中代理类与被代理类都需要实现同一个接口,这就说明我们的一个静态代理类只能代理一个类,并且还要事先知道我们要代理哪个类才能写代理类,如果我们有其他类还想使用代理那就必须再写一个代理类。然而在实际开发中我们是可能是有非常多的类是需要被代理的,并且事先我们可能并不知道我们要代理哪个类。所以如果继续使用静态代理反而会增加许多的工作量,并且效率低下,代码复用率也不好。eg:

2023-01-28 16:01:21 571

原创 注解方式管理Bean

(父注解) 放在类上,用于标记,告诉spring当前类需要由容器实例化bean并放入容器中该注解有三个子注解用于实例化controller层bean用于实例化service层bean用于实例化持久层bean当不确定是哪一层,就用Component测试代码组件扫描配置注解识别。

2023-01-26 10:16:50 1697

原创 Spring容器可以读取外部属性配置文件

spring容器可以读取.properties属性配置文件,可以将文件中的信息注入给bean。applicationContext中添加context名称空间 并读取属性配置文件。配置druid数据源将属性配置文件中的信息注入到连接池中。

2023-01-26 10:02:32 153

原创 Bean自动装配

我们也可以通过自动转配,完成属性的自动注入,就是自动装配,可以简化DI的配置。通过property标签可以手动指定给属性进行注入。

2023-01-26 09:57:12 66

原创 Bean的生命周期

Bean的生命周期

2023-01-24 16:08:36 705

原创 spring Xml方式实现DI

Beans ioc&DI

2023-01-24 16:05:37 1548

原创 Spring中资源文件中文乱码问题

乱码问题

2023-01-24 15:53:14 122

原创 Spring介绍

Spring介绍

2023-01-24 11:13:03 1515 2

原创 Flink Table&Sql API使用遇到的问题总结

Flink Table&Sql使用问题

2022-08-01 17:12:14 1061

原创 Kylin安装配置

集群规划我安装之前其他软件已经正常的配置,本教程只介绍Kylin安装配置解压包[root@Linux122 servers]# tar -zxvf apache-kylin-3.1.1-bin-hbase1x.tar.gz环境变量添加#Kylinexport KYLIN_HOME=/opt/lagou/servers/kylin-3.1.1export PATH=$PATH:$KYLIN_HOM/bin软连接添加其他组件配置ln -s /opt/lagou/servers/hadoo

2022-04-23 23:38:58 3790

原创 Kudu安装运行以及基本用法

由于Kudu对集群时间精准因此需要安装ntp服务一.安装ntp服务[root@Linux121 clickhouse-server]# yum -y install ntp[root@Linux121 clickhouse-server]# vim /etc/ntp.conf 各个节点注释下边几行#server 0.centos.pool.ntp.org iburst#server 1.centos.pool.ntp.org iburst#server 2.centos.pool.ntp.o

2022-04-22 00:06:28 2099

原创 ClickHouse安装配置

一.安装官网介绍安装https://clickhouse.com/#quick-startsudo yum install -y yum-utilssudo yum-config-manager --add-repo https://packages.clickhouse.com/rpm/clickhouse.reposudo yum install -y clickhouse-server clickhouse-clientsudo /etc/init.d/clickhouse-server

2022-04-21 14:44:57 3283

原创 Flink安装部署

从官网下载安装包一. Standalone模式https://flink.apache.org/downloads.html#all-stable-releases[root@Linux121 conf]# vim flink-conf.yaml修改主master节点jobmanager.rpc.address: Linux121修改主从节点信息[root@Linux121 conf]# cat mastersLinux121:8081[root@Linux121 conf]# cat w

2022-04-03 00:01:02 4254

原创 关于SparkHashJoin等值和不等值连接

这两天在学习join的几种方式,其中提到hash等值和不等值连接,于是进行了概念清晰首先我先说下我第一误区,我等值和不等值难道是只有数字相等吗?不包括字符串其他吗?于是对hash值进行重新研究https://zhuanlan.zhihu.com/p/118148884通过这篇文章我们更进一步了解到hash其实可以针对多种数据类型数据是会有各种格式的,字符串,浮点……那么第二个疑问我们在SparkSql中指的不等值连接是什么?其实是类似 >,< bettwen …and…等操作,有种

2022-03-20 13:45:14 2397

原创 JITWatch

JITWatch[5]是HSDIS经常搭配使用的可视化的编译日志分析工具,为便于在JITWatch中读取,读 者可使用以下参数把日志输出到logfile文件:示例代码-XX:+UnlockDiagnosticVMOptions -XX:+TraceClassLoading -XX:+LogCompilation -XX:LogFile=/tmp/logfile.log -XX:+PrintAssembly-XX:+TraceClassLoadingimport java.util.concurre

2022-03-17 16:25:01 640 2

原创 SparkSql常见SQL操作

一.行转列操作import org.apache.spark.rdd.RDDimport org.apache.spark.sql.{Dataset, Row, SparkSession}case class Info(id:String,tags:String)object SQLDemo { def main(args: Array[String]): Unit = { val spark: SparkSession = SparkSession.builder()

2022-03-16 22:59:26 1445

原创 Java Mission Control:可持续在线的监控工具

这个工具我发现在Oracle JDK8以上没有,通过查询资料需要自己去安装集成官网文档使用手册https://docs.oracle.com/en/java/java-components/jdk-mission-control/8/user-guide/installing-jdk-mission-control-and-supported-plugins.html#GUID-2C820B29-3FF3-4ED2-8E3E-DD732303E4A4Install JMC Standalone App

2022-03-16 18:32:29 2717 1

原创 win10下安装双jdk并自由切换

1.修改此处的配置路径2.将JDK相关的path配置上移到system32前这样就可以完成自由切换了

2022-03-11 17:34:24 308

原创 Java VisualVM使用

注意:VisualVM has also been distributed in Oracle JDK 6~8 as Java VisualVM. It has been discontinued in Oracle JDK 9. See the Upgrading Java VisualVM page to learn how to upgrade to the latest VisualVM.原来从jdk 9开始, visualVM不再集成在Oracle JDK中, 需要单独下载安装下载地址: h

2022-03-09 14:52:27 1827

原创 Java虚拟机常用性能监控和故障处理工具

1.jps:虚拟机进程状况工具JDK的很多小工具的名字都参考了UNIX命令的命名方式,jps(JVM Process Status Tool)是其中 的典型。除了名字像UNIX的ps命令之外,它的功能也和ps命令类似:可以列出正在运行的虚拟机进 程,并显示虚拟机执行主类(Main Class,main()函数所在的类)名称以及这些进程的本地虚拟机唯一 ID(LVMID,Local Virtual Machine Identifier)。虽然功能比较单一,但它绝对是使用频率最高的JDK 命令行工具,因为其他

2022-03-07 17:20:01 1076

原创 Spark算子综合应用案例

一.WordCount数据hadoop mapreduce yarnhdfs hadoop mapreducemapreduce yarn lagoulagoulagou案例:Scala版def main(args: Array[String]): Unit = { val conf = new SparkConf() conf.setAppName(this.getClass.getCanonicalName) conf.setMaster("local[*]") va

2022-03-03 21:58:08 2425

原创 分代收集理论

当前商业虚拟机的垃圾收集器,大多数都遵循了“分代收集”(Generational Collection)[1]的理论进 行设计,分代收集名为理论,实质是一套符合大多数程序运行实际情况的经验法则,它建立在两个分 代假说之上: **1)弱分代假说(Weak Generational Hypothesis):绝大多数对象都是朝生夕灭的。** **2)强分代假说(Strong Generational Hypothesis):熬过越多次垃圾收集过程的对象就越难以消 亡。** 这两个分代假说共同奠定了多款常用的

2022-03-03 15:14:41 186

原创 一次对象自我拯救

public class FinalizeEscapeGC { public static FinalizeEscapeGC SAVE_HOOK = null; public void isAlive() { System.out.println("yes,i`m still alive"); } @Override protected void finalize() throws Throwable { super.finaliz

2022-03-03 14:14:40 87

原创 JVM常见异常模拟

一.Java堆溢出限制Java堆的大小为20MB,不可扩展(将堆的最小值-Xms参数与最大值-Xmx参数设置为一样即可避免堆自动扩展),通过参数-XX:+HeapDumpOnOutOf-MemoryError可以让虚拟机在出现内存溢出异常的时候Dump出当前的内存堆转储快照以便进行事后分析-Xms20m -Xmx20m -XX:+HeapDumpOnOutOfMemoryErrorpublic class HeapOOM { static class OOMObject{} p

2022-03-03 13:05:17 667

原创 Spark几种部署模式

背景:集群部署几种模式集群模式一.Standalone模式1.解压[root@Linux121 servers]# tar -zxvf spark-2.4.5-bin-without-hadoop-scala-2.12.tgz2.配置环境变量export SPARK_HOME=/opt/lagou/servers/spark-2.4.5export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin3.修改配置文件[root@Linux121 sp

2022-02-20 17:19:06 1658

原创 Spark,Livy,ES,Griffin单机版安装

一.Spark安装有二进制包,不用编译tar -zxvf spark-2.2.1-bin-hadoop2.7.tgz设置环境变量export SPARK_HOME=/opt/lagou/servers/spark-2.2.1export PATH=$PATH:$SPARK_HOME/bin修改配置文件/opt/lagou/servers/spark-2.2.1/conf/spark-defaults.conf增加如下配置spark.master yarn

2022-02-04 00:15:29 483

原创 Atlas编译安装以及Hive元数据导入

一.解压二.修改pom文件 645 <npm-for-v2.version>3.10.8</npm-for-v2.version> 652 <hadoop.version>2.9.2</hadoop.version>三.创建文件夹,手动放入solr,hbase(不然maven下载时间较长)/opt/lagou/servers/apache-atlas-sources-1.2.0/distro[root@Linux1

2022-02-02 16:08:20 2969 7

原创 调度系统Airflow安装

一.卸载 mariadb(卸载和mysql冲突的分支)[root@Linux121 guchenfei]# rpm -qa | grep mariadbmariadb-libs-5.5.68-1.el7.x86_64[root@Linux121 guchenfei]# yum remove mariadb-libs //根据查询结果remove对应的依赖包.......Removed: mariadb-libs.x86_64 1:5.5.68-1.el7

2022-01-23 22:39:01 2813 2

原创 维表拉链表案例

一.数据准备下表为分区增量数据表(userinfo)创建表加载数据用户信息create table test.userinfo( userid string comment '用户编号', mobile string comment '手机号码', regdate string comment '注册日期')comment '用户信息'partitioned by(dt string)row format delimited fields terminated by ','

2022-01-14 23:28:58 781

转载 理解java的interrupt机制(总结的不错)

取消/关闭的场景我们知道,通过线程的start方法启动一个线程后,线程开始执行run方法,run方法运行结束后线程退出,那为什么还需要结束一个线程呢?有多种情况,比如说:很多线程的运行模式是死循环,比如在生产者/消费者模式中,消费者主体就是一个死循环,它不停的从队列中接受任务,执行任务,在停止程序时,我们需要一种”优雅”的方法以关闭该线程。 在一些图形用户界面程序中,线程是用户启动的,完成一些任务,比如从远程服务器上下载一个文件,在下载过程中,用户可能会希望取消该任务。 在一些场景中,比如从第三方服务器

2022-01-06 17:31:22 1242 1

转载 java异常—检查异常(checked exception)和未检查异常(unchecked exception)

可以看出异常的家族势力庞大,通常我们说的异常是包括exception和error。Exception家族我们恐怕见的不少,但是error家族我们可能就没什么印象了,下面我来说说这两个类的区别:Error(错误):是程序无法处理的错误,表示运行应用程序中较严重问题。大多数的错误与代码编写者执行的操作无关,而是表示代码运行时 JVM(Java 虚拟机)出现的问题。例如,Java虚拟机运行错误(Virtual MachineError),当 JVM 不再有继续执行操作所需的内存资源时,将出现 OutOfMe.

2022-01-06 12:36:41 10628 3

原创 计算引擎Tez安装

1.解压压缩包tar -zxvf apache-tez-0.9.2-bin.tar.gz2.将tez路径下的压缩包放到hdfs上/opt/lagou/servers/tez/share/tez.tar.gzhdfs dfs -mkdir /user/tezhdfs dfs -put tez.tar.gz /user/tez/3.配置hadoop让其他地方知道该路径该路径下新建配置文件tez-site.xml/opt/lagou/servers/hadoop-2.10.1/etc/had

2022-01-02 12:30:34 1769

转载 Bit与Byte的区别(转载)

在工作中遇到一些概念模糊的地方, 需要记住了bit意为“位”或“比特”,是计算机运算的基础;byte意为“字节”,是计算机文件大小的基本计算单位;说到usb2.0标准接口传输速率。许多人都将“480mbps”误解为480兆/秒。其实,这是错误的,事实上“480mbps”应为“480兆比特/秒”或“480兆位/秒”,它等于“60兆字节/秒”,大家看到差距了吧。这要从bit和byte说起:bit和byte同译为"比特",都是数据量度单位,bit=“比特”或“位”。byte=字节即1byte=8bits

2021-12-29 22:28:25 1109

原创 Linux下删除unknown PV

1,vgdisplay 得到vg Name 为centos[root@Linux122 guchenfei]# vgdisplay --- Volume group --- VG Name centos System ID Format lvm2 Metadata Areas 1 Metadata Sequence No 5 VG Access read

2021-12-26 18:22:34 4103 3

原创 hive对json数据处理的三种方式

数据背景hive (ods)> select * from jsont1;OKjsont1.username jsont1.age jsont1.sex jsont1.jsonuser1 18 male {"id":1,"ids":[101,102,103],"total_number":3}user2 28 female {"id":2,"ids":[201,202,203],"total_number":3}user3 38 male {"id":3,"ids":[301,302,30

2021-12-18 20:47:18 7086

jdk12-06222165c35f

OpenJDK12

2022-02-26

kafka-eagle.zip

kafka-eagle.zip

2021-12-04

Daemon Tools Lite

这个版本比较好用,网上有相关使用教程!

2017-03-05

空空如也

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

TA关注的人

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