自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 hive调优

hive调优explain select count(*) from table_name;explain extended select count(*) from table_name;核心思想把hive sql当作mapreduce程序去优化以下sql 不会转为Mapreduce来执行 select 及查询本表字段,where仅对本表字段条件过滤hive对某些情况的查询不需要使用map reduce1.抓取策略 set hive.fetch.task.conversion=n

2021-03-27 10:09:20 119

原创 Hadoop Map-Reduce源码分析(Map)

Hadoop Map-Reduce源码分析(Map)Mapper注本文前提条件,您已知道Map的逻辑和其具体的细分步骤以WordCount代码为例子public class MyMapperMap extends Mapper<Object, Text, Text, IntWritable> public class MyMapperReduce extends Reducer<Text, IntWritable, Text, IntWritable> 我们自己写的

2021-02-27 16:47:14 231

原创 设计模式(二)观察者模式

责任链模式为请求创建了一个接收者对象的链。这种模式给予请求的类型,对请求的发送者和接收者进行解耦。这种类型的设计模式属于行为型模式。在这种模式中,通常每个接收者都包含对另一个接收者的引用。如果一个对象不能处理该请求,那么它会把相同的请求传给下一个接收者,依此类推。就是用来处理相关事务责任的一条执行链,执行链上有多个节点,每个节点都有机会(条件匹配)处理请求事务,如果某个节点处理完了就可以根据实际业务需求传递给下一个节点继续处理或者返回处理完毕。避免请求发送者与接收者耦合在一起,让多个对象都有可能接

2020-08-30 14:06:11 130

原创 设计模式(一) 单例模式/工厂模式

设计模式一 单例模式,工厂模式单例模式简述:是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。单例类只能有一个实力单例类必须自己创建自己的唯一实力单例类可以给所有其他对象提供这一个实例如今实际开发中,单例模式都交给spring的bean工厂进行处理/** * 饿汉式 * 类加

2020-08-30 13:21:30 136

原创 DDD领域驱动设计

DDD 领域驱动设计思想首先DDD是一种编程思想编程思想的变化pop–面向过程编程,是一种线性思维,相对简单,复杂的业务会导致代码冗余,实现复杂oop–面想对象编程,封装继承多态,相对可以应对复杂情况,减少代码的冗余;aop–面向切面编程,解决面对对象的静态问题,能突破类的限制,动态拓展类的功能;任意拓展功能,代码的复用;oop的静态问题对象生成分为2种:编译时确定运行时确定对象即为一个整体,可以修改属性值等,但是其本身是稳定不变的;其对象的功能可

2020-08-23 19:04:33 442

原创 大数据5-NameNode和DataNode详解

Hadoop----NameNode和DataNode详解NameNodenamenode概述namenode是整个文件系统的管理节点。它维护着整个文件系统的文件目录树;文件/目录的元信息和每个文件对应的数据块列表。接收用户的操作请求。 namenode包含两个文件:FsImage(元数据镜像文件。存储某一时段NameNode内存元数据信息)和Editlog(操作日志文件)Nam...

2020-04-11 18:19:50 2690

原创 大数据4-HDFS API(java)

HDFS–api操作(java)引入maven<dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>RELEASE</version> &lt...

2020-04-01 19:22:54 94

原创 大数据3-HDFS

HDFS产生的背景和定义1.1 背景​ 随着数据量的增大,在一个操作系统中存不下所有的数据,那么久分配到更多的操作系统管理的磁盘中,但不方便管理和维护,迫切需要一种系统来管理多台机器上面的文件,这是分布式文件管理系统,hdfs只是分布式文件管理系统中一种;1.2 定义​ HDFS(Hadoop Distrubuted File System),它是一个文件系统,用于存储文件,通过目录树来定...

2020-03-28 20:44:09 160

原创 大数据2-Hadoop搭建

HADOOP搭建前提在linux系统上需要安装JDK 才能正常运行hadoop,JDK版本建议1.8;安装HadoopHadoop下载地址:https://archive.apache.org/dist/hadoop/common/hadoop-2.7.2/将Hadoop.tar.gz 放置在/opt/software 目录下解压至/opt/module 下 命令:t...

2020-03-21 18:37:28 102

原创 大数据1-Hadoop概述

大数据1-Hadoop概述特点4V数据量大高速多样低密度价值Hadoop是什么是Apache基金会所开发的分布式系统基础框架主要解决,海量数据的存储和海量数据的分析计算问题广义上讲,Hadoop通常指更广泛的概念-----Hadoop生态圈发展历史Lucene框架是Doug Cutting开创的开源软件,用Java书写代码,实现与Google类似的全文搜索功能,...

2020-03-15 18:08:13 267

原创 JUC与JVM(7)JVM GC垃圾回收器与java内存模型(volatile解析)

GC日志信息如第6话所说:第6话.[GC (Allocation Failure) [PSYoungGen: 2028K->495K(2560K)] 2028K->603K(9728K), 0.0008646 secs] [Times: user=0.00 sys=0.00, real=0.01 secs]详解[GC (Allocation Failure)[PSYoungG...

2020-03-14 19:19:08 316

原创 JUC与JVM(6)JVM堆Heap内存详解

JVM堆内存划分逻辑上分为3区:新生代Young Gen伊甸园区 --Eden幸存者0区 --S0/from幸存者1区 --S1/to默认比例 eden:S0:S1=8:1:1老年代Old Gen元空间(jdk7:永久区)Perm Gen物理上分为:新生代+老年代新生代:老年代 = 3 : 1;堆new对象流程新生区是对象的创建,成长,销毁的区域,一个对象在这...

2020-03-08 19:42:40 481 1

原创 JUC与JVM(5)本地方法栈/java栈/寄存器

JUC与JVM(5)本地方法栈/java栈/寄存器native method stack本地方法栈/本地方法接口/本地方法库问题引出:运行以下代码 public static void main(String[] args) throws ClassNotFoundException { Thread t1 = new Thread(); t1.st...

2020-03-07 18:58:27 138

原创 JUC与JVM(4)类加载器

JVM(1)类加载器JVM位置:jvm是运行在操作系统之上的;它和硬件没有直接交互;JVM架构体系:类加载器 Class loader负责加载class文件(java -c编译的java文件),class文件在文件开头有特定的文件标示(class文件由开头,作为校验,判断该文件是否合法),将class文件字节码内容加载到内存中,并将这些内容转换成方法区中—运行时数据结构,并且class...

2020-03-05 16:54:20 171

原创 JUC与JVM(3)线程之间精确调度

JUC与JVM 线程通信之JDK1.8Lock锁 线程间隔调度题目:利用多线程编程,实现依次,A打印5次,B打印10次,C打印15次;至此为一轮,要求共进行10轮;背景知识:link.private Condition condition = lock.newCondition();condition.await();condition.signal();condition.sign...

2020-03-01 17:53:58 183

原创 JUC与JVM(2)锁机制/线程通信

JUC与jvm(2)锁机制/线程通信8种情况讨论java synchronized的锁机制代码如下public class Lock8Demo { public static void main(String[] args) throws Exception { Phone phone = new Phone(); Phone phone2 = new...

2020-02-29 17:58:41 144

原创 JUC与JVM(1)多线程

JUC与jvmJUC–java.util.concurrent;(并发)1.1 进程/线程1.2 并发/并行3个包java.util.concurrenjava.util.concurren.atomicjava.util.concurren.locksjava.util.concurrent.locksinterface Lock;结构:All Known Impleme...

2020-02-23 20:41:31 264

原创 算法和数据结构(18)图的相关算法2

图的相关算法2有向图​ 在有向图中,边是单向的,每条边所链接的两个顶点都是一个有序堆,它们的邻接性是单向的,许多应用(网络,任务调度,电话)的图都是天然的有向图;定义:一副有方向性的图,是由一组顶点和一组有方向的边组成,每条有方向的边都连接着有序的一对顶点;概念1. 出度:由该顶点指出的边的总数2. 入度:指向顶点的边的总数;有向图的数据结构public class Digrap...

2020-02-16 17:10:57 130

原创 算法和数据结构(17)图的相关算法 1

图的相关算法(1)补充–连接表的图的代码若不了解图请看前文:背包背包是一种不支持从中删除元素的的数据结构,它的目的是负责收集元素,并且能够迭代遍历所有收集到的元素,背包中不保存存储数据时候的顺序;随后实现连接表的图的结构时会利用到这个背包的数据结构public class Bag<T> implements Iterable{ private T[] array;...

2020-02-15 17:29:47 161

原创 算法和数据结构(16)堆排序

优先队列1之前的堆中有提及过优先队列,链接:https://blog.csdn.net/qq_32193775/article/details/104115268前言许多应用程序都需要处理有序的元素,但不一定要求它们全部有序,例如,绝大多数手机分配给来电的优先级都会比游戏程序的高;在这种情况下一个合适的数据结构应该支持两种操作,删除最大元素和插入元素,这种数据类型叫做优先队列,优先队列的使...

2020-02-08 18:57:19 94

原创 算法和数据结构(15)快速排序

快速排序核心思想:切分过程中排定一个元素,把它放在合适的index中(即该数组排序后它应该有的index)。随后递归调用,直到整个数组排好序;注意,该元素a[lo],左边<=a[lo],右边>=a[lo];要实现这个,需要实现这个切分的方法,把a[lo]作为切分元素,即那个将要被排定的元素,然后从数组左端开始向右扫描,直到找到一个>=它的元素,再从数组右边开始向左扫描,直...

2020-02-08 14:19:31 107

原创 算法和数据结构(14)归并排序

归并排序所讨论的算法都基于归并这个简单的操作,即将两个有序的数组归并称一个更大的有序数组,很快人们就根据这个操作发明了一种简单的递归排序算法,归并排序,要将一个数组排序,可以先递归地将它分成两半分别排序,然后将结果归并起来;归并排序的性质:它能够保证任意长度为N的数组排序所需时间和NlogN成正比;缺点:所需额外空间和N成正比;归并示意图M E R G ...

2020-02-06 17:30:26 116

原创 算法和数据结构(13)初级排序算法

前言:​ 排序是将一组对象按照某种逻辑顺序重新排序的过程,比如信用卡账单中的交易是按照日期排序—这种排序很可能使用了某种排序算法,计算机早期,大家认为30%的计算周期是用在排序上,如果这种比例降低了,可能的原因之一是如今的排序算法更加高效了,而非排序的重要性降低了,现在计算机的广发使用使得数据无所不在,而整理数据的第一步通常就是排序;​ 即使你只使用标准库中的排序函数,学习排序算法依然有三大实...

2020-02-05 17:09:11 129

原创 算法和数据结构(12)最短路径1

最短路径问题最短路径在上篇007的问题中,若想求得可行路径中,路径最短的一条路是什么呢?无权图的单源最短路径复习:无权图。权:在图的边和弧相关的数,权可以表示从一个顶点到另一个顶点的耗费/距离等;算法思想:通过bfs算法,当每一层的结点都遍历,判断当前层的结点的属性;判断这层结点是否符合你的end要求(例如 007是否跳至岸边);因为bfs算法是每层的扫描,当前层入符合end要求,必然...

2020-02-04 16:53:46 115

原创 算法和数据结构(11)图2 --应用篇

题目1:拯救007如图所示,007在一个初始位置的岛上,岛的四周为湖泊,假设湖泊内有若干的鳄鱼,鳄鱼静止不动,湖泊的周围是岸边,007采取的拯救方案为:从岛跳至鳄鱼的头上,在跳至另一只鳄鱼的头上,假设007每次跳动的长度为1,写程序,求007能否跳到岸边;可以把每只鳄鱼看作一个点;如图所示,把每个鳄鱼的点,看作为一个结点,就可以把这个问题看作为图的dfs或者bfs来进行求解,只有两点之间...

2020-02-02 17:58:16 154

原创 算法和数据结构(10)图1

图(Graph)表示多对多的关系复习:线性表 1对1的关系树 1对多的关系图 多对多的关系上述即是一个图的理解模型;图的定义和术语:一个图(G)定义为一个耦对(V,E),记为G=(V,E);其中V是顶点(Vertex)的非空有限集合,记为V(G);E是边的集合,记为E(G);理解:如上图,每个村庄为一个结点 ,即每个村庄为一个顶点,边表示顶点和顶点之间的关系,即引出了单向...

2020-02-01 16:17:07 195

原创 算法和数据结构(9)集合归并---树的使用

算法题目集合类并集题目:有10台电脑,编号如下:{1,2,3,4,5,6,7,8,9,10},已知下列电脑间完成了连接,1和2,2和4,3和5,4和7,5和8,6和9,6和10 ;如1和2,2和4连接,则认为1和4也连接上了,求2和7之间,5和9之间是否连接?c-check检查,i–input 输入思想:将这10台电脑看成10个集合,{1},{2},{3},{...

2020-01-31 18:46:31 418

原创 算法和数据结构(8)哈夫曼树/哈夫曼编码

哈夫曼(huffman)树/哈夫曼编码ASCII码表中,8位转为一个具体的字符,如字母e和字母p,1万字的文章即一共8万位,即1万字节,但实际文章中字母e出现的频率远大于其他字母,故可以将字母e设计为5位或者4位,一些不常用的字母设计为10位,11位或者12位等,以获得效率的提升和空间的节省;带权路径长度wpl:设二叉树有n个叶子结点,每个结点的带权值为wk,从根结点到该结点的长度为lk,则每...

2020-01-30 16:45:57 793

原创 算法和数据结构(7)堆

堆堆有两个特性用数组表示的完全二叉树任一结点的关键(root)字是其所有子树所有结点的最大值(最大值)最大堆:最大值,下图最小堆:最小值,下图特性: 路径有序目的,实现优先队列,取出元素按优先级,而非插入的顺序;插入操作理解:插入这个数组表达的完全二叉树的最末尾,然后对比其父结点,是否大于,大于则互换位置,小于则break;删除操作理解:如图删除max即index=1时的元素...

2020-01-30 15:19:02 60

原创 算法和数据结构(6)树2

二叉树的查找和搜索定义:二叉搜索树(binary search tree),利用二分法 的思想定义的树,满足以下性质非空左子树的所有健值小于其根节点的键值;非空右子树的所有健值大于其根节点的键值所有左右子树都是二叉搜索树//伪代码如下public SearchTree find(int target,SearchTree st){ if(st==null){ re...

2020-01-29 17:14:43 102

原创 算法和数据结构(5)树1

树的基本概念树的定义树是n>=0个结点的有限集合T;有且仅有一个特殊结点成为树的根结点n>1时,分为了不相交的子集,每个子集本身又是一棵树(相交的子集不能称为树);树的基本术语结点:包含数据元素,和指向其他分支;结点的度:包含的子树的棵树;树的度:树中结点的度最大的值;叶子结点:度=0;非叶结点:度不等于0;子结点:兄弟结点,顾名思义;层次路径:从根结...

2020-01-18 20:51:54 154

原创 算法和数据结构(4)栈和队列的运用

栈的应用由于栈具有“后进先出”的固有特性;(1) 括号匹配问题;​ 如leetcode上一题:检验括号的正确性:(){}->true[]]->false[(])->false[()]->truejava代码如下class Solution { public boolean isValid(String s) { char[] cha...

2020-01-17 21:45:18 170

原创 算法与数据结构(3)栈和队列

栈和队列的实现(1)栈基本概念栈:限制在一端进行插入和删除的线性表,first in last out – FILO的线性表;栈顶(top):允许插入和删除的一端,又称为表尾;栈底(bottom):表头;空栈:栈内没有元素;压栈:插入元素弹栈:删除元素基本运算:是否为空,进栈,出栈,读栈顶元素,销毁栈;栈的顺序结构:public class Stack { pri...

2020-01-12 17:58:22 100

原创 算法与数据结构(2)线性表

线性表定义n个元素组成的有限的有序的一组数据,且都是相同的数据类型,个数n记为长度;概念:首节点,尾节点,空表,前驱,后继,直接前驱,直接后继-->顾名思义代码实现依靠顺序存储结构实现依靠链式存储结构实现顺序结构实现接口://public interface List { void clear(); Boolean isEmpty(); ...

2020-01-04 16:32:52 108

原创 算法与数据结构(1)

算法(1)算法和数据结构的关系数据结构: 一组数据的存储结构算法: 操作数据的一组方法故:特定的算法在特定数据结构的基础上。数据结构为算法服务。数据结构基础概念数据 Data数据元素 Data Element数据项 Data Item数据对象 Data Object数据结构 Data Structure数据项 < 数据元素 < 数据数据结构的组...

2020-01-04 14:50:05 68

空空如也

空空如也

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

TA关注的人

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