- 博客(103)
- 资源 (3)
- 收藏
- 关注
原创 Elasticsearch 基本操作
Elasticsearch 基本概念,Elasticsearch 基本查询,Elasticsearch 聚合查询
2022-12-07 14:27:46
1995
原创 Dubbo 2.7.15 版本报错问题
Correct the classpath of your application so that it contains a single, compatible version of org.apache.dubbo.config.spring.beans.factory.annotation.ReferenceAnnotationBeanPostProcessor
2022-11-05 12:03:09
799
原创 Hadoop-序列化
7)如果需要将自定义的 bean 放在 key 中传输,则还需要实现 Comparable 接口,因为MapReduce 框中的 Shuffle 过程要求对 key 必须能排序。(6)要想把结果显示在文件中,需要重写 toString(),可用"\t"分开,方便后续用。序列化可以存储“活的”对象,可以将“活的”对象发送到远程计算机。(2)反序列化时,需要反射调用空参构造函数,所以必须有空参构造。(5)注意反序列化的顺序和序列化的顺序完全一致。(1)编写流量统计的 Bean 对象。...
2022-08-07 12:23:23
361
原创 Hadoop-MapReduce 概述
(1)MapReduce 易于编程(2)良好的扩展性(3)高容错性(4)适合 PB 级以上海量数据的离线处理(1)不擅长实时计算(2)不擅长流式计算(3)不擅长DAG(有向无环图)计算(1)分布式的运算程序往往需要分成至少 2 个阶段。(2)第一个阶段的 MapTask 并发实例,完全并行运行,互不相干。(3)第二个阶段的 ReduceTask 并发实例互不相干,但是他们的数据依赖于上一个阶段的所有 MapTask 并发实例的输出。(4)MapReduce 编程模型只能包含一个 Map 阶段和一个 Redu
2022-08-07 12:20:36
172
原创 Elasticsearch滚动查询
当我们在构造条件进行查询时,如果符合你的构造条件的数据量非常庞大,你就会发现response.getHits().getTotalHits()的值只是10000。那么如何解决这个问题?这时就可以使用elasticsearch中的scroll(滚动查询)。什么是滚动查询?滚动查询和原生查询,一个相当于我们翻书,可以跳,一个相当于长图,看到哪儿显示哪儿,这也是他们的异同点:滚动查询无论查多少数据都可以,但是不能翻页,不支持分页,普通查询,支持翻页分页,但是只支持一万笔以内的数据量......
2022-04-12 21:13:42
2681
原创 Canal
1、什么是canalCanal 是用 Java 开发的基于数据库增量日志解析,提供增量数据订阅&消费的中间件。目前。Canal 主要支持了 MySQL 的 Binlog 解析,解析完成后才利用 Canal Client 来处理获得的相关数据。(数据库同步需要阿里的 Otter 中间件,基于 Canal)。2、什么是BinlogMySql 的二进制文件......
2022-04-03 17:38:12
5486
原创 Effective Java
第一条 用静态工厂方法代替构造器类可以提供一个公有的 静态工厂方法 ,它只是一个返回类的实例的静态方法。下面是一个来自 Boolean 的简单实例:这个方法将 boolean基本类型转化成 Boolean 包装类型 public static final Boolean TRUE = new Boolean(true); public static final Boolean FALSE = new Boolean(false); public static Bo.
2022-01-12 15:38:03
2711
原创 数据结构-线索化二叉树
文章目录1、什么是线索二叉树2、中序线索化二叉树2.1 中序线索化二叉树实现2.2 中序线索化二叉树遍历实现3、先序线索化二叉树3.1 先序线索化二叉树实现3.2 先序线索化二叉树遍历实现4、后序线索化二叉树4.1 后序线索化二叉树实现4.2 后序线索化二叉树遍历实现1、什么是线索二叉树线索二叉树是二叉树的一种,我们先看一个二叉树存储例子。上图中的 # 是空的,会浪费一部分空间,如果我们希望将这些空的指针充分利用,让各个节点都可以指向自己的前驱结点和后继节点,那就需要使用到线索二叉树。现有一颗节
2021-10-26 17:37:56
5803
原创 数据结构-二叉树
文章目录1、为什么需要树这种数据结构?1、为什么需要树这种数据结构?数组存储方式分析优点:通过下标的方式访问元素,速度快。对于有序数组,还可以使用二分查找提高检索速度。缺点:如果要检索具体某一个值,或者插入值(按一定顺序)会整体移动,效率极低 【示意图】链式存储方式分析优点:在一定程度上对数组存储方式有优化,如:插入一个数值节点,只需要将插入节点,链接到链表中即可,删除效率也很好缺点:在进行检索时,效率仍然较低,比如(检索某一个值,需要从头结点开始遍历) 【示意图】
2021-10-24 14:02:20
152
原创 数据结构-哈希表
文章目录1、哈希表(散列)- Google 上机题2、哈希表的基本介绍3、上机题4、代码实现1、哈希表(散列)- Google 上机题看一个实际需求,Google 公司的上机题有一个公司,当有新的员工来报道时,要求将该员工的信息加入(id、性别、年龄、住址…),当输入该员工的 id 时,要求查到该员工的所有信息。要求:不使用数据库,尽量节省内存,速度越快越好 ==》{哈希表}2、哈希表的基本介绍哈希表(HashTable,也叫散列表),是根据关键码值(key、value)而直接进行访问的数
2021-10-22 14:58:39
228
原创 数据结构-查找算法
文章目录1、查找算法介绍2、线性查找算法3、二分查找算法4、插值查找算法1、查找算法介绍在Java 中 我们常用的查找有四种:线性查找折半查找(二分查找)插值查找斐波那契查找2、线性查找算法有一个数组:[1,8,10,89,1000,1234],判断数组中是否包含此数字【顺序查找】???? 代码实现public class SeqSearch { public static void main(String[] args) { int [] arr = {
2021-10-21 16:24:36
282
原创 排序算法-希尔排序
文章目录1、简单插入排序存在的问题我们看简单的插入排序可能存在的问题。数组 arr = {2,3,4,5,6,1} 这是需要插入的数 1(最小),这样的过程是:{2,3,4,5,1,6}{2,3,4,1,5,6}{2,3,1,4,5,6}{2,1,3,4,5,6}{1,2,3,4,5,6}结论:当需要插入放入数是较小的数时,后移的次数明显增多,对效率有影响2、希尔排序算法介绍希尔排序也是一种插入排序,它是简单插入排序经过改进之后的一个更高效的版本,也称为最小增量排序3、希尔排序的基本
2021-10-15 15:40:25
520
原创 数据结构-插入排序
文章目录1、插入排序2、算法分析3、代码实现4、复杂度分析5、稳定性分析1、插入排序插入排序就像你玩扑克。基本操作就是将一个记录插入到已排好序的有序表中,直到将所有的未排序的记录插入到适当的位置。2、算法分析为了深入理解插入排序,来看一个例子:刚开始,我们将数组的第一个元素 5 当做有序元素,假设它在正确的位置;然后将 1 插入到正确的位置,将 1 与 5 比较,1 < 5,5 前面没有任何元素,所以 1 正确的位置就在 5 前面将 4 插入到正确的洞,将 4 和 5 比较
2021-10-15 14:50:56
441
原创 排序算法-简单选择排序
文章目录1、基本介绍2、选择排序的思想3、选择排序思路分析图4、代码实现1、基本介绍选择排序属于内部排序算法,是从预排序的数据中,按指定的规则选出某一元素,再依规定交换位置后达到排序的目的2、选择排序的思想选择排序(select sorting)也是一种简单的排序方法。它的基本思想是:第一次从 arr[0] ~ arr[n-1]中选取最小值,与arr[0]交换,第二次从arr[1] ~ arr[n-1]中选取最小值,与arr[1]|交换,第三次从arr[2] ~ arr[n-1]中选取最小值,与a
2021-10-14 21:00:00
3261
原创 排序算法-冒泡排序
文章目录1、基本介绍2、冒泡排序过程图解3、 代码实现1、基本介绍冒泡排序(Bubble Sort) 的基本思想是:通过对待排序的序列从前向后(从小标较小的元素开始),一次比较相邻元素的值,如发现逆序则交换,使其较大的元素逐渐从前向后移动,就像水底下的泡泡一样逐渐向上冒。优化:因为排序过程中,各元素不断接近自己的位置,如果一趟比较下来没有进行交换,就说明序列有序,因此要在排序过程中设置一个标志 flag 判断元素是否进行过交换。从而减少不必要的比较。(这里的优化可以再冒泡排序写好后,在进行)2、冒泡
2021-10-14 20:45:00
198
原创 数据结构-递归
文章目录1、递归应用场景2、递归概念3、递归的调用机制4、递归能解决什么问题5、递归需要遵守的重要规则6、递归-迷宫问题7、递归-八皇后问题(回溯算法)1、递归应用场景迷宫问题(回溯)2、递归概念简单的说:递归就是自己调用自己,每次调用时,传入不同的变量。递归有助于解决复杂的问题,同时可以让代码变得整洁3、递归的调用机制使用图解方式说明递归调用机制4、递归能解决什么问题各种数学问题,如:八皇后问题、汉诺塔、阶乘问题、迷宫问题、球和篮子问题各种算法中也是用到了递归,比如 快排、归并排序
2021-10-14 20:30:00
1358
原创 数据结构-栈
文章目录1、栈的一个实际需求2、栈的介绍3、栈的应用场景4、栈的快速入门5、栈实现综合计算器(中缀表达式)6、逆波兰计算器7、中缀表达式转为后缀表达式8、逆波兰计算器完整版1、栈的一个实际需求请输入一个表达式计算式:[ 722-5+1-5+3-3 ] 点击计算【如下图】请问:计算机底层是如何运算得到的结果的?2、栈的介绍栈的英文为(Stack)栈是一个先进后出的有序链表栈是限制线性表中元素插入和删除只能在线性表的同一端进行操作。允许插入和删除的一端,为变化的一端,称为栈顶(top),另一
2021-10-14 14:46:18
363
原创 数据结构-链表
文章目录1、链表介绍2、单链表的应用实例1、链表介绍链表是有序的列表,但是它在内存中是存储如下✨ 小结上图:链表是以节点的方式来存储,是链式存储每个节点包含 data 域、next 域:指向下一个节点如图:发现链表的各个节点不一定是连续存储链表分带头结点的链表和不带头结点的链表,根据实际需求来确定???? 单链表(带头结点)逻辑结构示意图如下:2、单链表的应用实例使用带 head 头的单向单链表实现 - 水浒英雄排行榜管理完成对英雄的增删改查操作第一种方法在添加英雄时,
2021-10-13 16:21:49
293
原创 数据结构-队列
文章目录1、队列介绍2、数组模拟队列思路3、数组模拟环形队列思路1、队列介绍队列是一个有序列表,可以用数组或是链表来实现遵循先入先出的原则 (first in first out,简称“FIFO”)。即:先存入队列的数据,要先取出。后存入的要后取出示意图:(使用数组模拟队列示意图)队列的实现同样有两种方式:顺序存储(数组)和链式存储(链表)。本文使用数组实现队列2、数组模拟队列思路队列本身是有序列表,若使用数组的结构来存储队列的数据,则队列的声明如下图,其中 maxSize 是该队列的
2021-10-12 14:55:27
228
原创 Redis 缓存穿透、缓存击穿、缓存雪崩
文章目录缓存穿透问题描述解决方案缓存击穿问题描述解决方案缓存雪崩问题描述解决方案缓存穿透问题描述key 对应的数据在数据源并不存在,每次针对此 key 的请求从缓存获取不到,请求都会压到数据库,从而可能压垮数据库。比如用一个不存在的用户 id 获取用户信息,不论缓存还是数据库中都没有,若黑客利用此漏洞进行攻击可能压垮数据库。解决方案一个一定不存在缓存及数据库查询不到的数据,由于缓存是不命中时被动写的,并且出于容错考虑,如果从存储层查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要去
2021-09-27 17:06:58
1355
6
原创 Redis 实现分布式锁
文章目录问题描述思路分析代码实现代码优化 1代码优化 2代码优化 3问题描述随着业务发展的需要,原单体单机部署的系统被演化成分布式集群系统后,由于分布式系统多线程、多进程并且分布在不同机器上,这将使原单机部署情况下的并发控制锁策略失效,单纯的Java API并不能提供分布式锁的能力。为了解决这个问题就需要一种跨JVM的互斥机制来控制共享资源的访问,这就是分布式锁要解决的问题!分布式锁主流的实现方案:基于数据库实现分布式锁基于缓存(Redis等)基于Zookeeper每一种分布式锁解决方
2021-09-27 15:50:14
1462
原创 Zookeeper 实现分布式锁
文章目录何为分布式锁?zookeeper 实现分布式锁zookeeper 实现分布式锁实现思路分布式锁案例代码实现何为分布式锁?比如说:“进程一” 在使用该资源的时候,会先去获得锁,“进程一”获得锁之后会对资源保持独占,这样其他进程就无法访问该资源,”进程一“用完该资源之后就会将锁释放,让其他进程来获得锁,那么通过这个锁机制,我们就能保证了分布式系统中多个进程能够有序的访问该临界资源。我们把在分布式环境下的锁称之为分布式锁zookeeper 实现分布式锁为什么要借助 zookeeper 实现
2021-09-26 17:08:33
810
1
原创 Kafka
Kafka文章目录Kafka第一章 Kafka 概述第二章 Kafka 快速入门第三章 Kafka 架构深入第四章 Kafka API第五章 Kafka 监控第六章 Flume对接Kafka第五章 Kafka 面试题第一章 Kafka 概述定义Kafka是一个分布式的基于发布/订阅模式的消息队列,主要用于大数据实时处理领域。消息队列传统消息队列的应用场景好处:解耦:允许你独立的扩展或修改两边的处理过程,只要确保它们遵守同样的接p约束可恢复性:系统的一部分组件失
2021-09-23 15:11:02
145
原创 Hadoop 集群搭建
Hadoop 集群搭建文章目录Hadoop 集群搭建一、搭建前准备1、修改主机名称与映射关系2、修改 windows host文件3、配置 ssh4、编写 xsync 同步脚本5、确保已经安装好了 JDK6、编写 jpsall 脚本,用于查看多态服务器的进程二、Hadoop 集群配置1、集群部署规划2、在 node1 上安装hadoop-3.2.23、配置文件说明4、配置集群5、将 node1 上的 hadoop 分发到其他两台服务器6、 启动集群7、集群基本测试 -------- 上传文件到
2021-09-17 21:48:52
195
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人