- 博客(37)
- 收藏
- 关注
原创 Hive 使用 MySql 作为元数据的存储方式
由于默认的 Derby 数据库是内存数据库并且如果多个实例操作的时候产生报错,所以我们需要更换元数据的存储方式。由于 链接 需要用到链接的驱动,我们需要预先准备好 的 包使用 的包管理工具检测如果上一步检测到存在,则需要卸载之前的安装首先我们要下载上传到 服务器 的安装包解压成功以后我们需要进行 rpm 的安装,安装命令如下解压成功以后我们可以修改一下名字方便操作和识别 的链接库我们肯定是要给 的,我这边是 8.0 版本的 数据库,所以我这边使用了 8.0 新的链接库把链接库放入到 hiv
2023-07-09 17:19:14
321
原创 Hive 入门教程
hive没有诞生的时候,我们对一个需求写大量的程序代码来实现mr的逻辑,产生很多重复代码,也会有很多重复的逻辑,这个时候 hive 应运而生。hive可以把一段sql代码转化为mr去执行然后的得到结果,他是facebook开源,用于解决海量结构化日志的数据统计工具,它可以把结构化的数据统计为一张表,并提供SQL或者HSQL来查询数据。其实这个表是不存在的。是HIVE映射的一张表。SQL或者HSQL经过HIVE转化为MR然后去HDFS查询。
2023-06-20 21:59:56
136
原创 Git 撤销pull
今天在开发中因为自己的误操作导致自己开发的业务代码提交到了dev分支,别的同事需要发版、提测总不能把我没有写完的代码一起发版上去吧,这个时候我就要对我提交的代码进行回撤操作。
2023-06-19 11:22:52
2146
原创 字节码指令
虚拟机指令是由一个字节的长度的代表着某种操作含义的操作码,以及后面跟上一个操作数。所以由操作码+操作数就构成了我们具体使用的一个指令。也不尽然,也会有一些特殊的操作码不含有操作数构成了一个指令。
2023-02-25 17:25:40
75
原创 Redis 所有操作
是一个双端链表的结构,容量是2的32次方减一,大概是40多亿,主要功能是 push 和 pop 等,一般用在栈,队列、消息队列等场景。支持的最大位数是2^32次方,他可以极大的节约存储空间,使用512MB可以存储42.9亿的字节信息。bit array (or simply bitmap,我们可以称之为位图),1个字节是8位。牺牲准确率来统计数据,误差只有0.81%左右,使用内存也很少每个密钥只需要12kb进行计数统计。底层使用 string 数据类型实现的一种统计二值状态的数据类型。
2023-02-12 20:29:50
78
原创 Java 线程池
自定义七参数线程池new ThreadPoolExecutor(核心线程数量 , 最大核心数量 , 空闲县城销毁等待时间 , 空闲线程销毁等待时间单位 , 任务等待队列 , 拒绝策列)这样我们就创建了一个自定义的线程池我们都知道在、内部的等待队列都是这个阻塞队列,这样会导致我们的等待任务过大导致内存溢出。我们通过刚刚看源码知道内部最大的线程数量为这样会导致我们创建过多的数量的线程导致内存溢出。
2022-10-20 22:24:57
280
原创 Sharding-Jdbc 配置主从读写分离模式
我们项目的读写分离的主从模式项目中一般可以分为多种方式来实现,可以手动在代码 Java 中配置多种数据源来实现读写分离的模式,我们也可以通过第三方的框架来实现读写分离例如我们的,也可以是我们的MyCat的来实现读写分离。今天我们就来讲解一下如何使用来实现读写分离。使用YMAL方式来实现配置。配置master数据源和slave数据源。我们这次是的方案是一主多从的方式来实现读写分离,mysql的主从搭建我们这次就不说了。我们这次就是主要来实现的方式来实现读写分离。
2022-09-25 00:13:32
1687
原创 Java 动态代理
动态代理其实是Java设计模式中的一种也是各大框架都多多少少会使用到的一种,因为这个设计模式还是比较常用也比较重要的,今天我就把我知道了解的设计模式-动态代理给你分享一下。代理模式我们可以分为动态代理、静态代理。由程序员创建或特定工具自动生成源代码,也就是在编译时就已经将接口,被代理类,代理类等确定下来。在程序运行之前,代理类的.class文件就已经生成。代码案例。
2022-09-21 23:07:35
146
原创 Netty 自定义编码解码器
解码器主要是对客户端发送的消息进行解码处理,所以他是一个入栈的处理器,因此他会有一个入栈的标识解码器一般我都们都会基层 Netty 提供给的一个实现类来实现自己的解码逻辑 ->这就是解码的抽象类,默认我们要实现一个抽象方法这个方法有大概三个参数;这个是上下文信息,可以获取通道、管道等信息。客户端发送的消息就是存在这个参数的对象里面我们要通过这个对象的read***方法读取我们需要的数据类型,可以是Long,Byte等类型的数据然后我们可以就可以转换成为我们需要的格式。集合,将解码后的数据传递给下一个。
2022-09-18 20:44:48
1406
原创 Netty 的 TaskQueue 学习
简介把花费时间比较长的任务提交到 NioEventLoopGroup 的 TaskQueue 中进行异步执行。
2022-09-17 10:43:11
210
原创 Electron 入门学习案例(electron 初体验)
electron 是桌面端的一个框架。可以把 html+js+css 封装成为一个 exe 或者 其他平台的应用程序。很好的实现了跨平台。并且开发效率很快。
2022-09-13 21:59:26
490
原创 netty websocket 小 demo
服务端这就可以运行了。然后需要一个客户端来测试。客户端需要直接编写一个 html 的简单的小页面来测试。这样就实现了 netty的 websocket 服务。服务端的逻辑会用到自定义handler的处理器。websocket 是一个全双工的长连接通讯。话不多说直接上代码。
2022-09-12 17:36:24
343
原创 Netty Http服务器可以配置要访问的资源和静态页资源
可以配置自己要发布的静态页资源或者 vue 资源(但是没有对vue做 hash等陆游的配置)
2022-09-06 09:11:36
421
原创 fork 项目合并
fork 项目合并命令谨记# git基本操作git add --allgit commit -m "你要提交的信息"# 添加远程你 fork 的地址git remote add upstream git地址# 查看你的所有远程地址列表git remote -v# 拉取你的远程地址代码到本地git fetch upstream# 合并指定分支到本地git merge upstream/合并的目标分支# 基础 pushgit push origin fork的分支...
2022-04-10 00:18:35
679
原创 k8s deployment
deployment控制 pod ,使 pod 拥有多副本,自愈,扩缩容能力。创建 deploymentkubectl create deployment 名字 --image=镜像名字副本设置kubectl create deployment 名字 --image=镜像名字 --replcas=副本数查看 deploymentkubectl get deploy删除 deploymentkubeclt delete deployment 名字...
2022-01-09 19:37:51
355
原创 k8s 的 pod
pod运行中的一组容器,是 k8s 应用的最小单位启动一个pod命令行kubectl run 名字 --image=nginxyaml 方式创建version: v1 kind: Podmetadata name: 名字labels: run: Pod 名字namespack: default spec:containers: - image: 镜像名字`` name: Container 名字查看容器启动的描述kubectl describ
2022-01-08 16:01:02
455
原创 mysql 8.0 主从搭建
mysql 8.0 主从搭建主库配置主库的 my.cnf#主数据库端ID号server_id = 1 #开启二进制日志 log-bin = mysql-bin #需要复制的数据库名,如果复制多个数据库,重复设置这个选项即可 binlog-do-db = mine#将从服务器从主服务器收到的更新记入到从服务器自己的二进制日志文件中 log-slave-upda
2022-01-06 13:45:34
592
原创 2021-06-16 方法区优化 学习
方法区方法区和 堆 一样 都会有 OOM 我们可以动态调节 方法区的大小,也可以给他固定的大小,并且方法去也会存在垃圾回收。堆栈方法区的交互关系堆方法对象的栈当前运行的方法已经方法的变量和指向堆内存的地址的服务引用方法区运行需要的所有的字节码文件class Test { public static void main(String[] args) { TestDemo testDemo = new TestDemo(); /*
2021-06-25 17:56:37
89
原创 基于逃逸分析的代码优化
代码优化栈上分配逃逸分析以后发现没有逃逸,就可以进行站上分配在栈上分配可以提高性能,减少 GC同步省略带动态编译同步代码块的时候,JIT编译器可以借助逃逸分析来判断同步代码块所使用的锁对象是否只能被一个线程访问到,而没有发布到其他的线程。如果只会被一个线程访问,JIT 在编译的时候就会消除同步锁。就会大大提高并发性和性能。这个消除同步锁的过程叫做,同步省略,也叫做锁消除。标量替换默认jdk是打开的介绍逃逸分析以后发现不会逃逸,则可以优化代码class Test01 {
2021-06-16 11:04:26
127
原创 Jvm 逃逸分析
逃逸分析逃逸分析之前我们先思考一下,对象在内存里面的分配一定会在堆内存吗?很显然的答案,不是的。分析和使用逃逸分析解析就是这个对象是否从产生到灭亡都是只在这个方法里面不会出来。我们就可以对其进行栈上分配在 JDK 6u23 之后默认开启逃逸分析。开启逃逸分析如果使用较早的版本,开发人员可以使用一下设置开启-XX:DoEscapeAnalysis 开启逃逸分析查看逃逸分析的筛选结果-XX:PrintEscapeAnalysis 查看逃逸分析的结果结论开发中能使用局部变量
2021-06-16 11:03:22
245
原创 Jvm 堆栈参数介绍
Jvm 参数介绍堆堆的起始内存设置-Xms 用来设置堆空间(年轻代+老年代)的初始内存大小X 是 jvm 运行参数ms 是 memory start-Xmx 用来设置堆空间(年轻代+老年代)的最大内存大小X 是 jvm 运行参数mx使用方式Xms/Xmx250k/KXms/Xmx250m/MXms/Xmx250g/G初始内存初始默认内存Xms 是物理内存的1/64Xmx 是物理内存的1/4如何查看设置的参数jps 查看当前的进程jstat
2021-06-07 09:28:49
360
原创 2021-01-24
Sentinel简介他可以做什么他是谁开发的集成 SentinelPomJava 类 configapplication.propertier 配置安装 Sentinel 的 Dashboardjar 的 启动如何使用注解使用try 代码块的使用链路使用开启对 feign简介Spring Cloud Alibaba 的一个组件,支持对服务的熔断、限流sentinel 是阿里巴巴的一个开源 cloud 的解决方案方案中的熔断和限流组件。集成
2021-01-24 17:53:06
118
原创 Web Socket SSM 版本 简单的入门
服务端消息推送技术-WebSocketWebSocket介绍websocket是一个全双工的高性能的服务端推送技术,基于ws协议实现通讯spring集成webSocketSSM导入依赖<!-- webSocket --><dependency> <groupId>org.springframework</groupId> <artifactId>spring-websocket</artifactId&g
2021-01-20 08:59:14
87
原创 Flutter 自定义 Tabbar
效果示例代码示例思考方向,我也看了很多网上的很多博客都很难对于一个小白来说我感觉很吃力我就另辟蹊径在原来的基础上经行了加工AppBar的title需要的是一个Widget组件把这个组件设置成了Row类型的组件代码示例class _HomeImp extends State<_Home> { @override Widget build(BuildContext context) { return Scaffold( appBar:.
2021-01-17 22:07:45
556
原创 Flutter的TabBar
今天我学习了TabBar,先看看我搞的效果上面的是可以左右滑动的。接下来我们来看看怎么使用Dart来完成这样一个简单的Demo把。先是来说一下布局把,布局使用 DefaultTabController这里面需要设置tab的长度是多少,包裹Scaffold然后再 Scaffold 里面设置属性值button设置里面显示的内容是什么这里显示的是Text("内容"),然后设置完之后在body属性里面设置TabBarView(child:<Widget>[设置你要显示的东西]...
2021-01-15 20:26:57
3248
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人