自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 程序员如何决定自己的未来?是不断学习新技术还是打好基础

个人感悟刚毕业出来的时候,我学技术只为应付项目需求,大学学习也不够认真。整天吃喝玩乐醉生梦死,现在想起自己当初为什么不能努力点?可惜世界没有后悔药,能做到的就是亡羊补牢,及时醒悟才能给自己一个美好未来。学习新技术不应该仅限于学会上次面试一个java开发工程师,我问他知不知道solr的实现原理?他就回答了一句:”工具学会用就可以啊,为什么要知道原理,上网查就得了“。其实我觉得不应该有这种想法...

2020-04-22 12:39:30 553

原创 使用Docker部署EMQX

在物联网中,大多通信协议使用的都是MQTT,而EMQX是基于 Erlang/OTP 平台开发的 MQTT 消息服务器,它的优点很多,我这里就不一一讲解,今天我们先来学习下如何部署EMQX(我这里使用的开源版)。

2023-07-30 10:29:04 1145 1

原创 一文教你轻松部署Hadoop集群

配置的话基本都是4G内存+3核CPU在搭建Hadoop集群,我们需要安装JDK、配置NTP服务器、配置SSH免密登录。

2023-07-23 16:22:11 278

原创 今天我们来说说常用的三种排序算法:选择排序、插入排序、快速排序

选择排序、插入排序、快速排序这三种算法算是比较常用的排序算法,对它们的原理和技巧,可以方便我们对后面的算法理解。

2023-07-16 17:01:20 277

原创 分布式数据库HBase,它到底是怎么组成的?

大数据的核心问题无非就是存储和计算这两个。Hadoop中的HDFS解决了数据存储的问题,而HBase就是在HDFS上构建,因此Hbase既能解决大数据存储的问题,又能解决数据实时查询的问题。

2023-07-13 23:52:28 2003

原创 HDFS的工作原理是怎么样的?是如何实现HA模式?

HDFS是能够提供一个分布式文件存储的系统,在大型数据文件的存储中,能够提供高吞吐量的数据访问,那么它是如何实现数据文件的读写的呢?作为集群老大的NameNode当出现服务不可用的情况,HDFS又如何启用备用节点来实现HA的呢?今天我们来好好说下。

2023-06-23 15:19:07 1404

原创 今天我们来说说MySQL的缓存机制

当我们向数据库服务器发送一条SQL的时候,但数据库收到后就会执行,但是如果在短时间内都执行同一条SQL,如果每次数据库都会执行,并且每次执行的结果都是一样,那就有点多余。所以MySQL就会将查询的结果缓存起来,后面的相同查询将会直接返回结果。

2023-06-18 17:29:36 1229

原创 作为一个程序员,怎样才能获得更好的未来?

很多时候,一个人并不能单单只是为了工作而工作,更多的需要思考,这能带给我什么?我能从中收获什么,其实鸡汤有时候真的是非常有用,因为鸡汤能带给的更多的是个人的心理暗示,只有自己相信自己可以做到,才能真的做的到。

2023-06-11 19:26:55 126

原创 Hadoop的核心组件HDFS架构是怎样的?有什么优缺点?今天我们来聊下

Hadoop主要有两个核心项目,分别是HDFS(分布式文件存储系统)和YARN(资源管理器)。就是因为这两个的存在,才会衍生出Spark、MapReduce、HBase等组件。今天我们就来聊下HDFS的核心原理。![](http://img.ibearzmblog.com/blog/hdfs.jpeg)

2023-06-11 16:27:31 672

原创 SpringBoot将文件打包成zip存放或导出

目录前言环境准备将文件打包成Zip存放代码测试将文件打包成zip并导出代码测试结尾前言相信各位看官在工作中都会遇到过要把多个文件打包成一个压缩文件然后导出,或者将文件打包成Zip存放,这就来上代码,废话不多说。环境准备其实也没什么准备,准备好Springboot就行,还有几张图片:将文件打包成Zip存放代码Controller代码:@RequestMapping("/zip")@RestControllerpublic class ZipController { /**

2021-06-09 17:25:30 7175 5

原创 一文教你OAuth+SpringSecurity搭建分布式安全框架

大数据管理系统接口文档首页首页图表展示接口名称URL请求方式备注是否使用功能描述权限标识leftNumber/project/projecoverview/leftNumberGET首页左边数据统计是首页左边数据无CountNumberPieLeft/project/projecoverview/CountNumberPieLeftGET首页统计饼图大于1000万数据是首页统计饼图大于1000万数据无CountNumberPieLeft

2021-05-31 12:15:33 1076 1

原创 一文告诉你JVM的标记-清除、标记-复制、标记-整理三种垃圾收集算法

前言无论是面试,还是平时JVM学习都遇到垃圾回收(简称GC),GC常用的垃圾收集算法有三种:标记-清除标记-复制标记-整理当然,从算法的名称就知道,标记这个操作是必须的,剩下的就是操作核心。下面我们来看看这三者的优劣势。GC ROOT根在开始前我们还是要了解下一些相关概念,上面提到的算法中都有标记这个操作,其实标记代表对可回收对象进行标识。那一个对象是用什么条件来判断是否可回收?答案就是GC ROOT根。一般正常情况下,如果一个对象还在其它类或方法引用的话,那么该对象的引用链是能够到达G

2020-10-21 14:29:20 2646

原创 来人!教我实现Springboot+Jwt+SpringSecurity实现认证请求

前言近排因为项目原因,承接了甲方大佬的系统,其它的还好,熊某还是比较注重权限的部分,毕竟我这方面还是毕竟薄弱,发现用的是JWT+SpringSecurity的认证方式,就好好学习下,顺便写下自己的笔记!认证流程开始前我们还是要了解下总体流程是什么样的:...

2020-09-10 11:49:00 394

原创 啊!线程池原来也不是想象中那么可怕

前言当初熊某第一次接触数据库连接池的时候,简直是一脸懵逼!(令我想起一次在惠州罗浮山的天然游泳池上游泳的经历)连接对象我知道,还会有连接池?!生活中的一些事物都可以用到代码中吗?!顿时觉得我自己原来是那么渺小。后来得知是提前创建预先约定好的连接对象,然后放到一个容器上(可以是数组、队列或者其它),这样就能减少连接创建时间。那线程池也是同样的道理,在比较简单的程序下,你直接new Thread()也不会有什么大问题,毕竟在简单业务情况,创建和销毁线程的微小变化可以小到你都察觉不出来。可惜啊,在二十一

2020-06-28 17:12:32 331

原创 大佬,能给我讲讲什么是读写锁和锁的升级吗?

故事开端在一个阳光灿烂的早晨,熊某突然从别人的口中听到读写锁和锁的升级这个名词,脑海中第一反应就是——“What‘s this???”,锁还能分读写?锁还能升级?我的天,怎么感觉在升级打怪一样。于是熊某带着满头的疑虑去请求公司的技术大佬,这位技术大佬很耐心的给我说:"熊兄弟,并发编程没你想得那么简单的,下面让我一一为你道来。"于是,担起小板凳,拿着扇子马上开讲!何为“读写锁”?读写锁是一个很多地方都使用的技术,基本上实现读写锁都要遵循三个原则:允许多个线程同时读一个共享变量只能有一个线程对共

2020-06-17 16:27:52 650

原创 糟糕!计算机网络居然比我想象中高深很多

目录前言网络分层结构端点间如何交互什么是网络协议TCP协议前言近排熊某在研究《计算机网络自顶向下方法》这本书,感觉个人的思想得到了进化,为什么我们传输数据可以准确无误的到达对方主机?为什么我访问www.baidu.com就能访问百度的网页?为什么我们的电话能够互相通话?这些答案都可以在这本书中找到,各位小伙伴们如果感兴趣的话可以研究下,我这里就不一一·说明了,毕竟篇幅有限。网络分层结构一般来说,网络都会分为5层,自顶到下分别是应用层、传输层、网络层、数据链路层、物理层。但是随着时代的发展,就出现了比

2020-06-16 15:33:55 1073

原创 并发编程学习(9) ——Lock的初步使用以及分析

前言在并发编程学习(8) —— 管程的文章中介绍了管程,管程中最需要解决的问题是互斥和同步,而Lock就负责解决互斥问题,Condition就负责解决同步问题。但是,之前提到的synchronized也是一种管程的实现方式,那既然有了synchronized为什么还要再造Lock和Condition?在之前的并发编程学习(5) —— 如何解决死锁中提到过死锁这个问题,死锁的解决方法有三种:...

2020-06-11 17:12:15 347

原创 带你轻松了解设计模式之------代理模式

目录什么是代理模式?代理模式的结构图代理模式的用途代理模式的实现静态代理动态代理什么是代理模式?在上一篇带你轻松了解设计模式之------装饰器模式中简单介绍过了代理模式,为了方便理解,我这里复制一下不过分吧!代理模式是为其他对象提供一种代理以控制这个对象的访问,一般情况下代理模式有三个角色:被代理方、代理方和调用方,同样,代理模式也是结构型模式。举个例子,一个有甲乙丙三人,甲喜欢丙,想送一朵玫瑰来示意,不过又不好意思(很正常的事),于是委托乙来将这朵玫瑰送给丙。那么这个过程,甲就是被代理方,

2020-06-10 15:27:24 197

原创 带你轻松了解设计模式之------装饰器模式

目录什么是装饰器模式?什么是代理模式?什么是装饰器模式?装饰器模式,其实就是对一个现有功能的对象进行扩展,同时又不影响对象本身的结构,就像我们穿衣服一样,我们的肉体就是一个对象,我想我的肉体好看一点,就穿上几件漂亮大方的衣服(不更改修改原结构),而不是在肉体上纹下不同的图案(修改原结构),所以装饰器模式是结构型模式。这时候问题就来了!!!!!!!有小伙伴提出:听老兄介绍了装饰器模式,为什么感觉跟代理模式差不多呢?两个同样都是对原有功能扩展,并且不影响其本身的结构。这时候就要介绍下代理模式了!什么是

2020-06-09 14:41:06 268

原创 带你轻松了解设计模式之------单例模式

目录为什么需要设计模式什么是单例模式?如何实现单例模式?为什么需要设计模式相信大家在看招聘信息的时候都会看到下面一则内容:熟悉JAVAEE设计模式,为什么公司都注重设计模式?因为熟练设计模式的同学们可以写出复用性和逻辑性非常强的代码。就像我叫你写一个MySQL的分页操作,你今天就做完了,这很好,如果明天我叫你叫你弄一个Oracle的分页操作,你不就又要重新把一些可复用的代码又写一遍?学过设计模式的同学就可以通过工厂模式和策略模式搭配组合,让客户端决定实例化哪一种数据库,而他们自己只需要写不同数据库对

2020-05-13 15:46:13 245

原创 利用OkHttp实现调用第三方接口

目录什么是OkHttp准备OkHttp配置GET请求无请求头有请求头什么是OkHttpOKhttp是一个处理网络请求的开源项目,它主要的优势有:1.允许连接到同一个主机地址的所有请求,提高请求效率2. 共享Socket,减少对服务器的请求次数3.通过连接池,减少了请求延迟4.缓存响应数据来减少重复的网络请求5.减少了对数据流量的消耗6.自动处理GZip压缩-------------------------------------------------------------------

2020-05-12 20:45:51 4052

原创 Hessian源码研究(1)----先学会用再研究

xx

2020-04-25 15:46:58 250

原创 轻松实现将数据导出为Excel文件(EasyExcel篇)

先附上阿里EasyExcel的GitHub地址:https://github.com/alibaba/easyexcel目录什么是EasyExcel环境准备开始写代码测试结尾什么是EasyExcelJava解析、生成Excel比较有名的框架有Apache poi、jxl。但他们都存在一个严重的问题就是非常的耗内存,poi有一套SAX模式的API可以一定程度的解决一些内存溢出的问题,但POI还...

2020-04-22 16:22:19 2206 5

原创 轻松愉快实现Redis分布式锁

前言相信在互联网公司工作的各位小伙伴都深刻认识到,当不同进程操作同一个对象的时候都要保证原子性,这时候就会用到锁,但是在同一个进程里修改可以用sychronized、LockCondition来加锁。...

2020-04-21 16:57:28 216

原创 啥是缓存雪崩、缓存击穿和缓存穿透?我来告诉你

前言像关于Redis的数据穿透、数据雪崩和数据击穿这些问题除了各位看官面试遇到外,在实际的开发中也遇到很多。在互联网公司中,并发量一大就容易出现各种问题,因此了解下这些问题和怎么解决还是很有必要滴,毕竟别人不会的东西你会,说不定就能升职加薪!数据雪崩先来个比较好理解和解决------数据雪崩。用过Redis的人都知道,Redis里的数据并不是持久化的(当然,Redis也可以实现数据持久化这个...

2020-03-15 22:43:37 212 1

原创 JVM内存模型之线程栈和堆内存

JVM内存模型相信有很多人面试的时候都会被问到有关于JVM的问题,我相信很多大牛都可以很轻松的回答出来,但是也有很多的人(包括我)只懂其表不懂其里,因此通过这篇文章可以令大家对JVM有个认识。首先看一下JVM的内存模型:这图大家应该很熟悉,后面我会一一介绍他们之间相互的作用,先把JVMTest的代码奉上:public class JVMTest { public int comp...

2020-03-07 20:14:06 869

原创 Netty学习(一)——Netty为何出现

BIO编程一般网络编程模型是Client/Server模型,也就是服务端(Server)提供IP地址和监听的端口Port,客户端(Client)则通过连接操作向服务器监听的地址和端口,通过三次握手来建立连接,如果连接建立成功,双方就会通过网络套字节(Socket)进行通信。 – 以上这段话摘自《Netty权威指南》那么这里我要介绍下BIO模型:我们可以看到Client的连接请求是先发送到A...

2019-08-12 17:01:14 308

原创 Springboot连接Redis

前言随着数据量的日益增长,很多时候如果直接用SELECT * FROM XXX这些SQL语句来对上千万的数据进行查询,那耗费的时间可想而知。作为用户一方,肯定希望系统响应越快越好,没什么人喜欢点一个按钮要等到吃完一顿饭回来还没能够响应成功,何况像我这些急性子的人,哈哈!对Redis不了解的同学,可以自己先去查阅一下,网上有很多关于这方面的说法,我这里就不做阐述了。开始引入依赖在pom....

2019-07-01 11:24:34 20940 2

原创 时间工具类

前言前阵子项目需求,需要对各种的时间格式进行转换,于是就记录下来,方便下次使用。代码public class TimeUtil { /** * 获取当前时间,Date类型 * @param timeFormat * @return */ public static Date getCurrentTime(String timeForm...

2019-07-01 10:05:17 150

转载 消息中间件(ActiveMQ)

原文地址:手把手教你如何玩转消息中间件(ActiveMQ) 情景引入小白:起床起床起床起床。。。。快起床~ 我:怎么了又,大惊小怪,吓到我了。 小白:我有事有事想找你,十万火急呢~~ 我:你能有什么事?反正我不信。。那你说说看~~ 小白:就是我有两个小表弟,叫大白和二白,他们现在每天睡觉之前都要分别和我聊天,让我给他们讲故事,如果不讲他们就不睡觉。但是,如果一个个的跟他们轮流来说...

2019-06-24 15:36:48 287

原创 JAVA——MD5加密

代码由于MD5加密相对比较简单,并且破解比较难,因此很多的敏感信息,如密码这些都才用MD5来加密,我这里提供一个MD5的工具类:public class MD5Util { /** * MD5加密 * @param str * @return */ public static String getMD5String(String str...

2019-06-24 14:57:44 228

原创 SpringBoot设置定时任务

前言在实际开发中,很多时候都会需要用到定时任务,能够自动执行所需要执行的方法,不过不同框架配置定时任务的方法也是不同的,下面我介绍下在Springboot中如何配置定时任务。开启定时任务@RestController@EnableScheduling // 这个注解必须添加public class BatchController { @Scheduled(fixedRate ...

2019-06-24 14:43:57 597

原创 Springboot —— Logback日志配置

什么是Logback?Logback 继承自 log4j。Logback 的架构非常的通用,适用不同的使用场景。Logback 被分成三个不同的模块:logback-core,logback-classic,logback-access。logback-core 是其它两个模块的基础。logback-classic 模块可以看作是 log4j 的一个优化版本,它天然的支持 SLF4J,所以你...

2019-06-17 17:21:18 336

原创 并发编程学习(8) —— 管程

什么是管程在之前我提到过管程这一概念,那管程到底是什么呢?管程其实指的是管理共享变量以及管理共享变量的操作过程。在并发领域中,最主要解决两个问题,第一个问题就是互斥,即同一时间只对一个共享变量继续操作。第二个问题就是同步,线程间如何通信、协调。管程解决互斥管程解决互斥问题相对简单,把共享变量以及共享变量的操作都封装在一个类中,如下图:管程互斥模型图当线程A和线程B需要获取共享...

2019-04-16 09:52:54 1614 1

原创 HIVE创建动态和静态分区表

Permission denied: user=anonymous, access=WRITE, inode="/user/anonymous":hdfs:supergroup:drwxr-xr-x

2019-04-07 16:14:07 2916 1

原创 并发编程学习(7) —— 线程的生命周期

通常的线程生命周期在编程世界中,很多东西都有它的生命周期,都会经历“生老病死”,线程也是。线程一共有以下几种状态:初始状态、可运行状态、运行状态、休眠状态、终止状态。初始状态:线程已创建但还不被允许分配CPU。在操作系统上线程还没有真正的创建。可运行状态:线程可以分配CPU,同时意味着线程真正的创建成功。运行状态:当有空闲的CPU时,操作系统会将其分配给一个可运行状态下的线程,获得CP...

2019-04-03 12:41:12 298

转载 CDH6离线安装

本文是在CentOS7.5下进行CDH6集群的完全离线部署。CDH5集群与CDH6集群的部署区别比较大。说明:本文内容所有操作都是在root用户下进行的。文件下载首先一些安装CDH6集群的必须文件要先在外网环境先下载好。Cloudera Manager 6.0.1CM6 RPM:https://archive.cloudera.com/cm6/6.0.1/redhat7/yum/RPM...

2019-04-03 09:12:23 629

原创 并发编程学习(6) —— 线程的安全问题、活跃问题和性能问题

并发编程中我们注意的方面有很多,但是最主要的还是这三个方面:安全性问题、活跃性问题、性能问题。安全性问题线程安全是什么?其实简单来说就是**线程能按照我们的期望来执行。**但是在并发编程中却没那么美好,在并发编程学习(2) —— 并发编程Bug源头中我们介绍了并发Bug的主要源头:可见性原子性有序性一般在存在共享变量并且该变量会改变,同时有至少一个线程写这个变量这种情况下才会考虑这...

2019-04-01 14:27:09 272

原创 利用Sqoop将数据从MySQL到HDFS、从MySQL到HIVE

什么是Sqoop?Sqoop是一款开源的工具,主要用于在Hadoop(Hive)与传统的数据库(mysql、postgresql…)间进行数据的传递,可以将一个关系型数据库(例如 : MySQL ,Oracle ,Postgres等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。摘自百度百科从MySQL到HDFS[root@nn ~]# sqoop i...

2019-03-31 21:07:03 351

原创 HDFS中的fsimage文件和editlog文件

在HDFS中,为了满足大量读和写的需求,将读写分开,fsimage放在内存里,方便查询,editlog则负责记录已经对元数据产生更改的事务。fsimage和editlong是两份的元数据,当HDFS重启的时候,namenonde会将fsimage和editlog融合在一起,形成一个新的fsimage,此时的namenode换断掉所有的服务,进入一个休眠期,也就是常说的安全模式(safemode)。...

2019-03-24 22:08:48 1345

空空如也

空空如也

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

TA关注的人

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