自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Spark解决数据倾斜的几种方式

1、使用Hive ETL处理数据相当于将数据倾斜提前到Hive中,Hive的底层是MapReduce,运行稳定,不容易失败,而Spark如果出现数据倾斜,很容易崩溃报错。2、过滤导致少数倾斜的key比如数据中有很多null的数据,对业务无影响的前提下,可以在shuffle之前过滤掉。3、提高shuffle操作的并行度 groupbykey(100)提高并行度,相当于增加了reducetask的数量,每一个reducetask中分区的数据量就会减小,可以缓解数据倾斜。4、双重聚合增加随机前缀聚合

2022-03-17 21:28:42 3015

原创 hive sql实战50题

查询课程编号为“01”的课程比“02”的课程成绩高的所有学生的学号(重点)思路:将score做自连接select *from studentwhere s_id in(select distinct s1.s_idfrom score s1join score s2on s1.s_id = s2.s_idwhere s1.c_id = "01"and s2.c_id = "02" ands1.s_score>s2.s_score)结果:2..

2022-02-23 11:27:25 3467

原创 Hadoop中NN和2NN工作机制

一、我们为什么要有2NN我们知道,hdfs的元数据信息存储在NameNode中,每次对hdfs的文件进行操作,那么将会不断地访问元数据信息。如果将元数据信息放在磁盘中,必然会造成效率低下,访问速度慢等问题,所以将元数据的信息存储在内存中。但将元数据信息存储在内存中,如果集群在使用的的过程中因为异常中断,那么元数据信息将会全部丢失,因此要将元数据信息备份在在磁盘里,生成fsimage镜像文件。如果每次对元数据的操作都要同步到fsimage(磁盘)中,则和原来没什么两样,同样的效率低下,因此引入ed

2022-02-14 21:18:27 450

原创 TreeSet中add()方法源码分析——去重复以及自动排序

List item一、IO的分类1、按流向分类(以java程序为中心)输入流 读取数据输出流 写出数据2、按数据类型分类字节流:字节输入流 读取数据 InputStream字节输出流 写出数据 OutputStream字符流:字符输入流 读取数据 Reader字符输出流 写出数据 Writer如何区分使用的是字节流还是字符流呢?使用windows自带的记事本打开。如果能够看懂里面的内容,就是用字符流,如果不能够读懂,就使用字节流字节流可以读取任何数据,

2022-02-12 21:38:44 149

原创 idea中git的简单使用(包括安装、上传和连接)

一、git的下载以及初始化1、git的下载可以直接去百度gitee的官网下下载最新版,然后无脑点击下一步安装即可,当安装成功后,会在搜索栏会出现三个git小程序即为安装成功2、打开idea,创建相关项目,然后右击项目,点击open in-> exlporer,这里我创建的是一个maven项目,使用的idea是2021.33、点击你所在的项目,我这里的项目为test4、进入项目后右击,再点击git bash here,进入控制台5、进入控制台后,输入 git init初...

2022-01-09 20:30:22 5166

原创 java多线程

一、线程和进程的区别进程:正在运行的程序,是系统进行资源分配和调用的独立单位。每一个进程都有它自己的内存空间和系统资源。线程:是存在于进程中的,一个进程可以包含多个线程的。单个线程是进程中的单个顺序控制流,或者说就是一个单独执行路径一个进程如果只有一条执行路径,称之为单线程程序一个进程如果包含多条执行路径,称之为多线程程序。二、串行、并行、并发1、串行,指的是所有的任务都是按照先后顺序执行的,在前一个任务没处理完的情况下是不会处理下一个任务的,就像理发店只有一..

2021-12-30 22:24:13 268

原创 java的IO流操作

一、IO的分类1、按流向分类(以java程序为中心)输入流 读取数据输出流 写出数据2、按数据类型分类字节流:字节输入流 读取数据 InputStream字节输出流 写出数据 OutputStream字符流:字符输入流 读取数据 Reader字符输出流 写出数据 Writer如何区分使用的是字节流还是字符流呢?使用windows自带的记事本打开。如果能够看懂里面的内容,就是用字符流,如果不能够读懂,就使用字节流字节流可以读取任何数据,如果不懂用什么,就

2021-12-29 20:45:20 407

原创 java实现基本的排序算法(非递归实现)

一、冒泡排序冒泡排序是一种简单的排序算法,通过不断的两两比较将想要的数字不断前移,到达顶端代码实现public class BubbleSorting { public static void main(String[] args) { int[] arr = new int[]{1,2,4,23,5,6,4,74,7,5,7,5,3,0,1}; //冒泡排序 for (int i = 0;i<arr.length-1;i++){

2021-12-26 22:00:31 274

原创 使用集合实现斗地主洗牌发牌的功能

Collections工具类为我们提供了一系列方法去操作集合,今天我们将使用里面的某些工具类实现斗地主洗牌和发牌的功能。首先确定思路1、首先要创立一个牌集合,用于存放所有的牌,这里我们选用ArrayList2、确定所有牌,从1-k一共13张牌,每张牌四种花色,外加一张大王一张小王,分别使用数组存放,这里使用双重for将数字和花色拼接。3、使用shuffle方法将集合打乱,模拟洗牌4、确定玩家,两个农名一个地主,每次洗牌取前三张给地主,后面平均发牌,这里同样使用ArrayList存放玩家手

2021-12-26 19:43:13 479

原创 TreeSet中add()方法源码分析——去重复以及自动排序

1、TreeSet类功能概述首先,TreeSet类使用元素的自然顺序进行排序,或者根据创建set时提供的Comparator进行排序,具体取决于使用的构造方法。我们知道,TreeSet底层的数据结构是红黑树,下面我们就通过源码来看看TreeSet是如何保证数据的自动排序和唯一性的2、案例public class TreeSetDemo2 { public static void main(String[] args) { //创建一个TreeSet对象

2021-12-22 17:23:25 1285 1

空空如也

空空如也

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

TA关注的人

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