图说线性表-搞懂链表从这篇文章开始

上篇文章是数据结构的基础部分,主要介绍了一些注意事项。 今天开始线性表部分的梳理,线性表主要分为了基础概念和基本操作两大部分,由于某些过程或概念比较抽象,我添加了部分图示,希望能够把这些抽象的东西直观的表达出来。 基本操作模块重点主要在单链表和顺序表两部分,本文着重梳理了线性表插入、删除、查询等基础 ... »

用它匹配大数据长文本,让你的处理效率提升 100 倍 !

原来文本匹配的方式一直是用中规中矩的正则来做,最近在实际生产中由于数据量骤升,现有数据量提高了大约 3-4 倍,原本使用正则处理已经到了瓶颈,这次又有增量对生产来说可谓雪上加霜,而且随着正则词越加越多,匹配效率也越来越差,数据量的激增再加上正则词越加越多,提升生产的匹配效率已是迫在眉睫。 最近一段时 ... »

大数据存储利器 - Hbase 基础图解

由于疫情原因在家办公,导致很长一段时间没有更新内容,这次终于带来一篇干货,是一篇关于 Hbase架构原理 的分享。 Hbase 作为实时存储框架在大数据业务下承担着举足轻重的地位,可以说目前绝大多数大数据场景都离不开Hbase。 今天就先从 Hbase 基础入手,来说说 Hbase 经常用到却容易疏 ... »

Hive 这些基础知识,你忘记了吗?

Hive 其实是一个客户端,类似于navcat、plsql 这种,不同的是Hive 是读取 HDFS 上的数据,作为离线查询使用,离线就意味着速度很慢,有可能跑一个任务需要几个小时甚至更长时间都有可能。 在日常开发中 Hive 用的还是挺广泛的,常做一些统计工作,就我自己工作来看其实 80% 的工作 ... »

Hadoop压缩的图文教程

近期由于Hadoop集群机器硬盘资源紧张,有需求让把 Hadoop 集群上的历史数据进行下压缩,开始从网上查找的都是关于各种压缩机制的对比,很少有关于怎么压缩的教程(我没找到。。),再此特记录下本次压缩的过程,方便以后查阅,利己利人。 本文涉及的所有 jar包、脚本、native lib 见文末的相 ... »

从没听说过的并发的名词-管程

在接触并发之前,我只听说过进程、线程,管程这个词倒是头回听说,抱着认真好学的态度,去找了找关于 管程 的资料,不学不知道,原来并发里的两大难题--互斥和同步都可以用管程来解决,可以说,管程是一把解决并发的万能钥匙。 那什么是管程呢?原来管程并不像进程、线程这样来形容一个特指东西的名词,管程是指管理共 ... »

Java 中的 syncronized 你真的用对了吗

生活中随处可见并行的例子,并行 顾名思义就是一起进行的意思,同样的程序在某些时候也需要并行来提高效率,在上一篇文章中我们了解了 Java 语言对缓存导致的可见性问题、编译优化导致的顺序性问题的解决方法,下面我们就来看看 Java 中解决因线程切换导致的原子性问题的解决方案 -- 锁 。 说到锁我们并 ... »

happen before 原则

并发一直都是程序开发者绕不开的难题,在上一篇文章中我们知道了导致并发问题的源头是 : 多核 CPU 缓存导致程序的可见性问题、多线程间切换带来的原子性问题以及编译优化带来的顺序性问题。 原子性问题我们暂且不谈,Java 中有足够健壮的锁机制来保证程序的原子性,后面学习的重点也是在这方面。今天我们就先 ... »

重构_使用模板模式替代重复业务操作

在日常开发中经常有重复的业务操作,每次写这些重复操作时总感觉冗余,又少点管理。今天我在开发中又遇到了这个问题,却发现项目组中的大牛已经帮我将重复的操作管理好了,于是便请教一番,偷偷学了这个 模板设计模式。 模板设计模式要注意以下几点: 将重复的业务操作抽取出一套模板; 将实现模板的实现类放到管理器中 ... »

一文了解 Hadoop 运行机制

大数据技术栈在当下已经是比较成熟的了,Hadoop 作为大数据存储的基石,其重要程度不言而喻,作为一个想从 java 后端转向大数据开发的程序员来说,打好 Hadoop 基础,就相当于夯实建造房屋的地基,本文以上图结构为基本,旨在帮助大家快速了解 Hadoop 运行机制。 HDFS 篇 HDFS 篇 ... »