- 博客(433)
- 资源 (15)
- 收藏
- 关注
原创 大数据hive表和iceberg表格式
iceberg表,是一种面向大型分析数据集的开放表格式,旨在提供可扩展、高效、安全的数据存储和查询解决方案。它支持多种存储后端上的数据操作,并提供 ACID 事务、多版本控制和模式演化等特性,使数据管理和查询更加灵活便捷。Iceberg 可以屏蔽底层数据存储格式上的差异,向上提供统一的操作 API,使得不同的引擎可以通过其提供的 API 接入。
2024-07-15 11:13:28
1284
原创 go获取正在运行的函数并及时捕获panic
因此,在使用 panic 和 recover 时,应该谨慎考虑是否真的需要它们,以及它们在程序中的作用。Go 语言中,panic 是一种运行时错误,它会导致当前 goroutine 立即停止执行,并开始逐层向上返回,直到被 recover 捕获或者程序崩溃。当 panic 发生时,defer 语句注册的函数仍然会被执行,这允许程序进行必要的清理工作,如关闭文件、释放资源等。通过使用 defer 和 recover,可以在发生 panic 时防止程序完全崩溃,允许程序优雅地处理错误。
2024-07-09 18:03:09
307
原创 springboot中在filter中用threadlocal存放用户身份信息
如果要重新修改请求内容,可以用HttpServletRequestWrapper,HttpServletRequestWrapper 是一个包装器类,它扩展了 HttpServletRequest 接口,允许你修改或扩展请求的处理。在调用 filterChain.doFilter 之前,你可以在 doFilter 方法中添加任何预处理逻辑,例如修改请求参数、更改请求路径、添加或修改请求头等。doFilter 方法的前两个参数代表当前的请求和响应对象,你可以在这个方法中读取请求数据、修改请求和响应。
2024-07-09 16:09:38
613
原创 docker容器技术、k8s的原理和常见命令、用k8s部署应用步骤
容器借鉴了集装箱的概念,集装箱解决了什么问题呢?无论形状各异的货物,都可以装入集装箱,集装箱与集装箱之间不会互相影响。由于集装箱是标准化的,就可以把集装箱整齐摆放起来,装在一艘大船把他们都运走。有了集装箱,就再也不需要为各种货物单独准备专门运输的船了。如果把容器比作集装箱的话,应用就相当于集装箱里的货物。容器(Container):一种轻量级的虚拟化技术,这种技术允许操作系统上的用户空间被分割成几个独立的单元在内核中运行,彼此互不干扰。这样一个独立的空间,就称之为一个“容器”。
2024-07-04 17:28:24
929
2
原创 kerberos认证:生成keytab文件并实现java代码用keytab登录hadoop集群
用户首先向认证服务器(AS)请求一个票据授权票(Ticket-Granting Ticket, TGT),然后使用 TGT 向票据授权服务器(Ticket-Granting Server, TGS)请求服务票据。Kerberos 是一种网络认证协议,用于在不安全的网络中以安全的方式对用户和服务进行身份验证。AS 是 Kerberos 认证过程中的第一个服务,负责验证用户的身份,并发放初始的 TGT。TGS 负责发放访问特定服务的票据。用户使用服务票据向目标服务进行认证,服务票据授权用户访问特定的服务。
2024-06-26 16:15:22
389
原创 gorm的find和scan使用
在 GORM 中,.Find() 和 .Scan() 都可以用于检索数据库记录,但它们之间存在一些差异,并不完全等同于彼此。
2024-06-03 11:28:15
969
原创 大数据主要组件HDFS Iceberg Hadoop spark介绍
NameNode:NameNode 是 HDFS 的主节点,负责管理文件系统的元数据,包括文件和目录的结构、文件到数据块(Block)的映射、数据块到数据节点(DataNode)的映射等。每行都是每个数据文件的详细描述,包括数据文件的状态、文件路径、分区信息、列级别的统计信息(例如每列的最大最小值、空值数等)、文件的大小以及文件中数据的行数等信息。通过这种架构,HDFS 在 Hadoop 3.x 版本中提供了更高的可用性、更高的存储效率和更好的可扩展性,更适应大数据处理的需求。
2024-03-22 16:32:44
2157
原创 StarRocks学习笔记
StarRocks是一款经过业界检验、现代化,面向多种数据分析场景的、兼容MySQL协议的、高性能分布式关系型分析数据库。StarRocks充分吸收关系型 OLAP 数据库和分布式存储系统在大数据时代的优秀研究成果,并在业界实践的基础上,进一步改进优化,架构升级和添加新功能,形成了全新的企业级产品。
2024-03-21 11:39:01
990
原创 mysql存json数据时的查询办法
现在要查询InventoryMainTypeCode为xxx或者InventoryMainTypeName为xxx的数据:(这里以springboot+mybatis为例子)
2023-12-08 17:19:34
455
原创 rocketmq消息发送源码学习
消息发送流程主要的步骤:验证消息、查找路由、消息发送(包含异常处理机制)。代码:同步消息发送入口 DefaultMQProducer#send默认消息发送以同步方式发送,默认超时时间为3s。消息长度验证 消息发送之前,首先确保生产者处于运行状态,然后验证消息是否符合相应的规范,具体的规范要求是主题名称、消息体不能为空、消息长度不能等于0且默认不能超过允许发送消息的最大长度4M(maxMessageSize=102410244)。
2023-10-07 15:23:59
343
原创 maven运行报错解决
打开 file -> setting -> Build,Execution,Deployment -> Complier。java.lang.OutOfMemoryError是内存不足导致的,因此需要修改Idea运行项目的内存大小。修改Build process heap size 为 2048。
2023-09-13 14:27:57
297
原创 如何关闭一个tcp连接 阻塞和等待的区别 b树查找的过程
线程同步,指一个线程发出某一功能调用时,在没有得到结果之前,该调用不返回。同时其它线程为保证数据一致性,不能调用该功能。线程同步简单说就是线程排队。
2023-09-07 16:21:14
235
原创 redis集群分配哈希槽
Redis 的哈希槽(Hash Slot)是 Redis 集群中的一个概念,用于将数据分布到不同的节点上。Redis 集群中使用哈希槽来实现数据的分片和负载均衡,将大量的数据分散到多个节点上,以提高系统的可扩展性和性能。具体来说,Redis 集群会将所有的哈希槽均分到不同的节点上,每个节点负责处理一部分哈希槽的数据。例如,一个 Redis 集群有 3 个节点,每个节点负责处理 16384 个哈希槽,那么每个节点负责处理的哈希槽范围为:第一个节点:0-5460第二个节点:5461-10922。
2023-08-11 10:20:40
815
原创 lua脚本实现Redis令牌桶限流
令牌桶限流是一种常见的流量控制算法,用于控制系统的请求处理速率,防止系统过载。在令牌桶限流算法中,可以将请求看作是令牌,而令牌桶则表示系统的处理能力。系统在处理请求时,首先需要从令牌桶中获取令牌,如果令牌桶中没有足够的令牌,就需要等待一定时间,直到令牌桶中有足够的令牌。具体来说,令牌桶限流算法可以通过以下方式实现:1.系统维护一个固定容量的令牌桶,每秒钟会向桶中添加一定数量的令牌,直到桶的容量达到上限。
2023-07-31 13:53:11
1364
原创 链路追踪eagleEye介绍
淘宝现在是一个由很多个应用集群组成的非常复杂的分布式系统。这些应用里面主要有处理用户请求的前端系统和有提供服务的后端系统等。这些应用之间一般有RPC调用和异步消息通讯两种手段,RPC 调用会产生一层调一层的嵌套,一个消息发布出来更会被多个应用消费,另外,应用还会访问分库分表的数据库、缓存、存储等后端,以及调用其他外部系统如支付、物流、机彩票等。请试想一下,现在淘宝一个买家点击下单按钮所产生的网络请求到达淘宝服务器之后,就会触发淘宝内网数百次的网络调用。
2023-06-16 20:13:23
1364
原创 分布式缓存tair学习
tair 是淘宝自己开发的一个分布式 key/value 存储引擎。tair 分为持久化和非持久化两种使用方式。非持久化的 tair可以看成是一个分布式缓存.。持久化的 tair 将数据存放于磁盘中。为了解决磁盘损坏导致数据丢失。tair 可以配置数据的备份数目。tair 自动将一份数据的不同备份放到不同的主机上, 当有主机发生异常, 无法正常提供服务的时候, 其于的备份会继续提供服务。
2023-06-03 09:49:56
756
原创 数据库系统第十章-数据库恢复技术复习
各类故障对数据库的影响有两种可能性:Ø数据库本身被破坏Ø数据库没有被破坏,但数据可能不正确恢复操作的基本原理:冗余Ø利用存储在系统其它地方的冗余数据来重建数据库中已被破坏或不正确的那部分数据Ø恢复的实现技术:复杂Ø一个大型数据库产品,恢复子系统的代码要占全部代码的10%以上。
2023-05-14 23:29:49
89
原创 字节后端一二面,讯飞一面
然后凉了,原因是说算法欠缺,但是确实写出来了,个人认为虽然写对了但是可能是因为一开始没有想到最优解所以挂了吧 很可惜。5.之前的项目用到了springcloud的什么。4.有没有看过spring源码,说一下看了哪些。7.算法题:和为k的子数组个数(前缀和)6.为什么四次挥手要timewait。8.dockerfile写过什么。5.mysql的参数有没有调过。4.ping命令用了什么协议。8.tcp相关的一些东西。7.explain的参数。4.注册中心有了解过吗。6.多继承可以怎么实现。
2023-04-27 17:50:02
754
原创 jdk1.8的lambda(optional、predicate等)
提示 代码第①行的LambdaDemo::add和第②行的d::sub中Lambda是方法引用,此时并没有调用方法,只是将引用传递给display方法,在display方法中才真正调用方法。在Lambda表达式中可以访问这些成员变量,此时的Lambda表达式与普通方法一样,可以读取成员变量,也可以修改成员变量。提示 Lambda表达式是一个匿名方法代码,Java中的方法必须声明在类或接口中,那么Lambda表达式所实现的匿名方法是在函数式接口中声明的。Lambda表达式一种常见的用途是作为参数传递给方法。
2023-04-02 21:14:57
426
原创 启动go报错启动go项目报错package : unrecognized import path “_/C_/Users/hez
微服务整理的知识
2023-03-18 13:06:24
737
原创 springboot自定义cookieHttpSessionIdResolver
在上面的代码中,SessionConfig 类定义了一个名为 httpSessionIdResolver 的 Spring Bean,这是我们自定义的 Session ID 解析器。HttpSessionIdResolver 可以获取该会话 ID,并将其用于各种目的,例如在集群环境中跟踪用户会话,处理会话 ID 上的安全性等。这样一来,通过配置我们的 CustomSessionIdResolver,我们已成功实现了 Spring Boot 中自定义 Session ID 的场景。
2023-03-14 15:52:24
1026
1
合工大分布式程序设计综合设计报告
2023-06-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人