自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

hmi1024@163.com

java 大数据

  • 博客(30)
  • 资源 (1)
  • 收藏
  • 关注

原创 MapReduce执行流程(图解+注解)

MapReduce执行流程(图解+注解)

2022-07-06 16:11:37 2724

原创 HBase RowKey的设计原则

HBase RowKey的设计原则

2022-06-13 22:19:45 3160

原创 Flink 经典WordCount入门案例

FLlink 流批处理WordCount案例实现Flink 从文件读取数据实现WordCountFlink 从Socket读取数据WordCount

2022-04-21 15:35:49 2114

原创 Flink运行时架构及各部署模式下作业提交流程

1.运行时架构1.1 核心组件1.1.1 JobManager作业管理器,对于一个提交执行的作业,JobManager 是真正意义上的“管理者”(Master),负责管理调度,是一个 Flink 集群中任务管理和调度的核心,是控制应用执行的主进程。在不考虑高可用的情况下只能有一个JobManager ,只有一个是正在运行的领导节点(leader),其他都是备用节点(standby)JobManager包含三大核心组件:JobMasterJobMaster是JobManager的核心组件

2022-04-20 15:15:54 2049

原创 FLINK ON YARN 的三种部署方式

1.会话(session)模式特点:需要事先申请资源,启动JobManager 和 TaskManager优点:不需要每次递交作业申请资源,使用已有资源缺点:作业执行完成后,资源不会被释放,因此会一直占用系统资源使用场景:适合小作业比较多,作业递交比较频繁的场景作业方式:bin/yarn-session.sh -n 2 -tm 800 -s 1 -d #申请资源bin/flink run examples/batch/WordCount.jar #递交作业2.分离(per-job)模式

2022-04-19 15:04:38 1330

原创 MapReduce Map的个数分析

1.概述通常情况下,Map作业会通过input的目录产生一个或者多个map任务主要的决定因素有:input的文件总个数,input的文件大小,集群设置的文件块大小(目前为128M,可在hive中通过set dfs.block.size;命令查看到,该参数不能自定义修改)2.举例假设input目录下有1个文件a,大小为780M,那么hadoop会将该文件a分隔成7个块(6个128m的块和1个12m的块),从而产生7个map数假设input目录下有3个文件a,b,c大小分别为10m,30m,150m

2022-03-24 16:58:51 2616

原创 java 两个栈实现最小栈

leetcode -155. 最小栈设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。 push(x) —— 将元素 x 推入栈中。 pop()—— 删除栈顶的元素。 top()—— 获取栈顶元素。 getMin() —— 检索栈中的最小元素。public class MinStack { private Stack<Integer> inStack; private Stack<Integ...

2021-04-18 09:26:09 140

原创 java 两个队列实现栈

public class MyStack { private Queue<Integer> inQueue; private Queue<Integer> outQueue; public MyStack() { inQueue = new LinkedList<>(); outQueue = new LinkedList<>(); } /** * 进栈 */ .

2021-04-18 09:07:32 218 1

原创 java 两个栈实现队列

public class MyQueue { private Stack<Integer> inStack; private Stack<Integer> outStack; public MyQueue() { inStack = new Stack<>(); outStack = new Stack<>(); } /** * 入队 * * @para.

2021-04-17 18:05:56 108

原创 Redis学习之一文弄懂Redis持久化机制: RDB 及 AOF

1.什么是持久化持久化就是将有用的数据以某种技术保存起来,将来可以再次取出来应用,数据库技术,将内存数据一文件的形式保存在永久介质中(磁盘等)都是持久化的例子。2.为什么Redis要做持久化redis的数据都是存放到内存中的,如果服务器突然宕机,数据就会全部丢失,因此必须有一种机制来保证Redis在内存中的数据不会丢失,这种机制就叫Redis持久化机制。3.Redis持久化机制3.1 RDB1. 概念(Redis DataBase) RDB 其实就是把数据以快照的形式保存在磁盘上,可以理解成把

2021-03-30 18:09:05 196

原创 Redis学习之Redis 6.0 Redis.conf详解

# Redis configuration file example.# Note that in order to read the configuration file, Redis must be# started with the file path as first argument:# # 通过指定配置文件启动Redis服务# ./redis-server /path/to/redis.conf# Note on units: when memory size is needed.

2021-03-24 11:02:00 528

原创 Redis学习之NoSql概念及分类

1.NoSql概念NoSql(Not Only Sql)不仅仅是sql,泛指非关系型数据库;2.NoSql背景大数据时代,传统的关系型数据库无法满足对数据库的高可扩展性和高可用性的需求,关系型数据库无法存储和处理半结构化/非结构化数据;3.NoSql优点1.方便扩展,数据之间无关系,易扩展;2.大数据高性能,NoSQL 数据库具有非常高的读写性能,尤其在大数据量下,能够同样保持高性能,Redis 一秒写8万次,读取11万;3.数据类型多样性,可以处理半结构化/非结构化的大数据,.

2021-03-23 15:47:55 89

原创 程序员小灰漫画算法合集

2017合集2018合集2019合集2020合集

2020-11-25 15:49:43 736

原创 讲给面试官听的单例模式

单例模式是我们在面试过程中最常接触的一个设计模式,现在我们来聊聊什么是单例模式一.什么是单例模式单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。属于创建型模式,它提供了一种创建对象的最佳方式。单例模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。为了保证内存中有且仅有一个对象,避免频繁的创建对象造成对内存的消耗,让所有需要调用这个对象的地方都使用这一个对象。二.单例模式的类型1.懒汉式懒汉式指的是在需要使用的时候才会去创建该单例对象。

2020-08-08 17:58:26 1015 1

转载 IDEA快捷键

CtrlCtrl + F 在当前文件进行文本查找 (必备)Ctrl + R 在当前文件进行文本替换 (必备)Ctrl + Z 撤销 (必备)Ctrl + Y 删除光标所在行 或 删除选中的行 (必备)Ctrl + X 剪切光标所在行 或 剪切选择内容Ctrl + C 复制光标所在行 或 复制选择内容Ctrl + D 复制光标所在行 或 复制选择内容,并把复制内容插入光标位置下面 (必备)Ctrl + W 递进式选择代码块。可选中光标所在的单词或...

2020-06-18 09:45:10 151

转载 IDEA导入Mybatis源码

一、下载1、下载mybatis源码2、从mybatis pom文件可发现是聚合工程,下载其父工程下载过程:github链接:https://github.com/mybatis/mybatis-3我下载的是最新版,可以选择自己需要的版本下载下载解压后,在pom文件可以看到,这是个聚合工程,当然也要下载其父工程parent(版本要对应mybatis pom指定的版本)github地址:https://github.com/mybatis/parent最终,文件解.

2020-06-17 09:55:21 912

原创 Java NIO缓冲区(Buffer)实现数据的存取

1.什么是NIONIO 是java New IO的简称,在jdk1.4里提供的新API。1. 为所有的原始类型提供(Buffer)缓存支持。2. 字符集编码解码解决方案。3. Channel:通道(一个新的原始I/O抽象)。4. 支持锁和内存映射文件的文件访问接口。5. 提供多路(non-bloking)非阻塞式的高伸缩性网络...

2020-03-25 16:54:41 277

原创 Java IO序列化与反序列化及自定义序列化

序列化:把对象转换为字节序列的过程称为对象的序列化。通过实现Serializable接口实现序列化。反序列化:把字节序列恢复为对象的过程称为对象的反序列化。自定义序列化:通过实现Externalizable接口,重写它的方法writeExternal()和readExternal()。package com.hmi.io;import java.io.FileInputStrea...

2020-03-23 11:38:48 144

转载 关于java中InputStream和BufferedInputStream的比较以及缓冲区概念

BufferedInputStream是一个带有缓冲区域的InputStream,它的继承体系如下:InputStream|__FilterInputStream|__BufferedInputStream以看作是BufferedInputStream对外提供滑动读取的功能实现,通过预先读入一整段原始输入流数据至缓冲区中,而外界对BufferedInputStream的读...

2020-03-22 15:54:50 900

原创 Java IO流实现文本复制

package com.hmi.io;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;public class InputStreamTest { public static void main(String[] args) throws IO...

2020-03-21 20:35:24 129

原创 Java 通过File类的listFiles()遍历文件夹

首先我们看下File类的listFiles()的源码: public File[] listFiles() { String[] ss = list(); //用ss存放子文件名 if (ss == null) return null; //若为空则返回null int n = ss.length; File[] fs = ...

2020-03-21 18:13:50 8258

原创 Java 多线程模拟简单死锁

1.首先我们要知道什么是死锁以及死锁产生的条件?死锁:死锁是指两个或两个以上的线程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作 用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程。死锁产生的条件:互斥条件:一个资源每次只能被一个进程使用,即在一段时间内某 资源仅为一...

2020-03-19 10:51:09 174

原创 Java 二叉查找树的插入及遍历的简单实现

1.何为二叉查找树?(1)若左子树不空,则左子树上所有结点的值均小于它的根结点的值;(2)若右子树不空,则右子树上所有结点的值均大于它的根结点的值;(3)左、右子树也分别为二叉排序树;(4)没有键值相等的结点。2.二叉查找树的简单实现:package com.hmi.test;public class BinarySearchTree { int data; // ...

2020-03-08 20:56:01 202

原创 Java HashMap为什么通过(n - 1) & hash 获取哈希桶数组下标?

看过HashMap源码人应该都知道HashMap是如何根据hash值来计算哈希桶数组下标的,就是通过(n - 1) & hash来计算的,那么为什么用的是位运算而不是取模运算(hash % n)呢?HashMap源码的简单解析 if ((p = tab[i = (n - 1) & hash]) == null) tab[i] = newNode(h...

2020-03-03 13:55:59 4633 3

原创 Java8 HashMap源码的简单分析(1)

首先在阅读HashMap源码前,我们需要知道的:一.数组:连续的存储结构,存储相同类型的数据。对于指定下标的查找,时间复杂度为o(1);对于定值的查找,需要遍历数组,时 间复杂度为o(n),对于有序数组,则可采用二分查找,插值查找,斐波那契查找等方式,可将查找复杂度提高为O(logn)。二.单链表:离散的存储结构。单链表是由结点组成,而每个结点是由数据域和指针组成。单链表查询...

2020-03-02 23:09:13 287

原创 Java HashMap之tableSizeFor方法

jdk1.8中HashMap的tableSizeFor方法是相对于jdk1.7版本的一个新增方法。tableSizeFor的功能(不考虑大于最大容量的情况)是返回大于输入参数且最近的2的整数次幂。例如输入13则返回16,输入63返回64。/** * Returns a power of two size for the given target capacity. */...

2020-03-01 19:44:44 220

原创 Java 队列和栈的简单实现

一.队列和栈1.队列(Queue):是限定只能在表的一端进行插入和在另一端进行删除操作的线性表2.栈(Stack):是限定只能在表的一端进行插入和删除操作的线性表3.队列先进先出(FIFO),栈先进后出(FILO)二.队列实现package com.hmi.collection;import java.util.ArrayList;import java.util.Li...

2020-02-29 19:48:09 117

原创 java中String类重写的equals及hashcode方法

equals方法: public boolean equals(Object anObject) { //如果为同一对象的不同引用,则返回true if (this == anObject) { return true; } //判断该对象是否是String的实例 if (anObjec...

2020-02-28 15:10:26 2069

原创 Java重写equals方法后为什么还需要重写hashcode方法?

一.equals的作用及与 == 的区别1.equals通常用来比较两个对象的内容是否相等;2.==用来比较两个对象的地址是否相等,equals方法默认等同于“==”;3.Object类中的equals方法定义为判断两个对象的地址是否相等,地址相等则认为是对象相等。这也就意味着,我们新建的所有类如果没有复写equals方法,那么判断两个对象是否相等时就等同于“==”,也就是两个对象的地...

2020-02-28 14:44:29 234

原创 SSM配置详解:Spring + Spring MVC + Mybatis(SSM)

一.Java Web三层结构对于像我这样的小白来说,学习SSM配置之前,我觉得我们需要知道是Java Web的经典三层结构:1.dao层(数据层):负责对数据向数据库的增删查改操作;2.service层(业务层):负责数据的处理,如果没有数据处理,则传向dao层,相当于对dao层的又一次封装;3.controller(web)层 (控制层):负责页面和程序之间传递数据,还有页面跳转...

2020-02-26 19:58:02 632

eclipse-jee-2019-03-R-win32-x86_64.zip

Java开发工具eclipse,解压后可直接使用,用于开发java EE,java等,适用于32位和64位操作系统,安装时,安装系统会自行判定操作系统环境,无需担心,亲测可用。

2020-05-26

空空如也

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

TA关注的人

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