自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 收藏
  • 关注

原创 缓存雪崩,缓存穿透和缓存击穿

缓存雪崩我们可以简单的理解为:由于原有缓存失效,新缓存未到期间所有原本应该访问缓存的请求都 去查询数据库了,而对数据库 CPU 和内存造成巨大压力,严重的会造成数据库宕机。从而形成一系列 连锁反应,造成整个系统崩溃。缓存穿透是指用户查询数据,在数据库没有,自然在缓存中也不会有。这样就导致用户查询的时候,在 缓存中找不到,每次都要去数据库再查询一遍,然后返回空(相当于进行了两次无用的查询)。这样请 求就绕过缓存直接查数据库,这也是经常提的缓存命中率问题。有很多种方法可以有效地解决缓存穿透问题。

2023-06-11 17:06:59 113

原创 Java自带的线程池

每当提交一个任务就创建一个工作线程,如果工 作线程数量达到线程池初始的最大数,则将提交的任务存入到池队列中。创建一个单线程化的 Executor ,即只创建唯一的工作者线程来执行任务,它只会用唯一 的工作线程来执行任务,保证所有任务按照指定顺序( FIFO, LIFO, 优先级)执行。多线程运行时间,系统不断的启动和关闭新线程,成本非常高,浪费时间,会过度消耗系统资源,以及过渡切换线程的危险,从而可能导致系统资源的崩溃。创建一个定长的线程池,而且支持定时的以及周期性的任务执行,支持定时及周期性任 务执行。

2023-06-11 15:45:31 336

原创 Hive中partition by和distribute by区别

通常查询时会对整个数据库查询,而这带来了大量的开销,因此引入了partition的概念,在建表的时候通过设置partition的字段, 会根据该字段对数据分区存放,更具体的说是存放在不同的文件夹,这样通过指定设置Partition的字段条件查询时可以减少大量的开销。1)partition by [key..] order by [key..]只能在窗口函数中使用,而distribute by [key...] sort by [key...]在窗口函数和select中都可以使用。

2023-06-05 10:17:11 1830 2

原创 Shell中单引号和双引号区别

2、执行 test.sh 2023-06-02 ,双引号内部嵌套单引号,取出变量值。单引号内部嵌套双引号,不取出变量值。反引号,执行引号中命令。

2023-06-02 16:55:49 108

原创 Spark RDD算子

RDD的创建方式有以下三种:从 Hadoop 文件系统(或与Hadoop兼容的其他持久化存储系统,如Hive、Cassandra、HBase)输入(例如 HDFS)创建。从父 RDD 转换得到新 RDD。通过 parallelize 或 makeRDD 将单机数据创建为分布式 RDD。

2023-06-01 17:40:02 164

原创 Kafka数据存储设计

首先明确kafka中的一些概念:Kafka 是一种高吞吐量、分布式、基于发布/订阅的消息系统,最初由 LinkedIn 公司开发,使用 Scala 语言编写,目前是 Apache 的开源项目。1. broker:Kafka 服务器,负责消息存储和转发2. topic:消息类别,Kafka 按照 topic 来分类消息3. partition:topic 的分区,一个 topic 可以包含多个 partition,topic 消息保存在各个 partition 上。

2023-05-30 19:57:42 206 1

原创 Java反射机制和应用

动态语言,是指程序 在运行时 可以改变其结构:新的函数可以引进,已有的函数可以被删除等结构上的变化。比如常见的 JavaScript 就是动态语言,除此之外 Ruby,Python 等也属于动态语言,而 C、C++则不属于动态语言。从反射角度说 JAVA 属于半动态语言。

2023-05-29 22:37:07 118 1

原创 Java异常分类和处理

如果某个方法不能按照正常的途径完成任务,就可以通过另一种路径退出方法。在这种情况下 会抛出一个封装了错误信息的对象。此时,这个方法会立刻退出同时不返回任何值。另外,调用 这个方法的其他代码也无法继续执行,异常处理机制会将代码执行交给异常处理器。

2023-05-29 17:04:24 185 1

原创 输出螺旋矩阵(回型矩阵)的巧妙做法

遇到一个输出回型矩阵的题目,这个题目本科的时候就做过多次了,但是最近发现一个用Python zip函数巧妙转置矩阵的方法,记录一下。

2023-05-11 14:41:46 334 1

原创 Hive总结

如果一个任务有很多小文件(远远小于块大小128m),则每个小文件也会被当做一个块,用一个map任务来完成,而一个map任务启动和初始化的时间远远大于逻辑处理的时间,就会造成很大的资源浪费。比如有一个127m的文件,正常会用一个map去完成,但这个文件只有一个或者两个小字段,却有几千万的记录,如果map处理的逻辑比较复杂,用一个map任务去做,肯定也比较耗时。(2)另外,有多少个Reduce,就会有多少个输出文件,如果生成了很多个小文件,那么如果这些小文件作为下一个任务的输入,则也会出现小文件过多的问题;

2023-05-10 20:53:08 91 1

原创 Hive Metastore 理解

本地元存储和远程元存储都采用外部数据库来存储元数据。本地元存储和远程元存储的区别是:本地元存储不需要单独起 metastore 服务,用的是跟 Hive 在同一个进程里的 metastore 服务。Hive 的元数据,默认是存储在 derby 中的,但是我们一般会修改其存储在关系型数据库比如 MYSQL 中(其可以在 hive 配置中修改),在关系型数据库中会有一个 hive 库,存放相应的表。元数据是描述数据的数据,例如数据表的大小是 100KB, 数据表是数据,表大小是数据的数据。

2023-05-10 19:11:55 686 1

空空如也

空空如也

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

TA关注的人

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