- 博客(30)
- 收藏
- 关注
原创 一文搞懂Kafka:女朋友看了也懂的Kafka
文章目录前言:为什么需要Kafka1.初识kafka1.1 消息队列的好处:1.2 **消息队列的两种模式**没有消息队列我们怎么做?传统MQ怎么做?这时候,Kafka就”闪亮登场“了2. Kafka基本架构2.1 **前备知识**:1.消息和批次2.消息模式2.2 架构分析2.3Kafka 特点1.多个生产者2.多个消费者3.基于磁盘的数据存储4.伸缩性5.高性能3 总结前言:为什么需要Kafka举个例子:麦当劳点餐时,当我们选择外带的时候,餐厅制作好餐之后会放在一个取餐台,而且取餐台是按照不同的取餐
2021-06-09 21:05:55 2149 4
原创 Hadoop从入门到精通第二篇之YARN基础架构剖析
详解Yarn1.Hadoop Yarn 目录组织结构YARN API(hadoop-yarn-api 目录):给出了 YARN 内部涉及的 4 个主要 RPC 协议的 Java 声明和 Protocol Buffers 定义,这 4 个 RPC 协议分别是 ApplicationClientProtocol、 ApplicationMasterProtocol、ContainerManagementProtocol 和 ResourceManagerAdmi nistrationProtocol。Y
2021-05-21 11:21:00 589 6
原创 超详解内部排序算法之(一)冒泡排序
常见的八种内部排序算法 -(一)冒泡排序简单介绍开篇这是一篇小白开始接手写简单算法的小白文。写这边文章的主旨就是看到有小伙伴觉得算法一定会很难,纵观已有的文章,大多都是将整个处理代码帖出来的,让很多初次接触的小伙伴觉得不是很好理解。所以写这篇文章就是通过简单的示例+从特殊到一般的推导过程,帮助初次想要了解的小伙伴更好的理解算法。旨在消除小伙伴对于算法这一名词的莫名恐惧。先简单说一下内部排序的算法...
2020-03-29 17:16:26 357
原创 详尽全面而又简单易懂的Scala学习笔记(参上)【不适合零基础】
文章目录写在前边的话一、变量和数据类型1、注释2、标识符的命名规范3、变量4、字符串5、键盘输入6、数据类型7、数字与字符串的转换1、数字与数字的转换2、数字与字符串的转换二、运算符三、流程控制1、块表达式:2、分支控制[if语句]3、for循环4、while、do-while循环5、break、continue四、函数式编程1、方法1、定义语法:2、方法的简化3、方法的参数2、函数1、定义2、高阶函数3、方法与函数的区别4、方法与函数的联系5、匿名函数6、函数柯里化与闭包7、递归8、控制抽象9、惰性求值五
2021-06-30 10:13:13 501
原创 Redis入门权威指北
文章目录前言看看业务遇到了什么问题?网站初期网站中期网站后期网站再后期现阶段大致架构NoSQL解决方案Redis1. 简介:Redis的优势Redis 与其他 key-value 存储有什么不同?Redis的应用场景2.Redis的安装3.Redis配置文件1.单位配置2.include参数3.Network参数配置4.general参数配置5.其他4.持久化Redis是怎么进行持久化的?Redis数据都在内存中,内存本身就不是一个持久化设备,一断电或者重启不就木有了嘛?4.1.RDB持久化方式4.1.1R
2021-06-16 21:29:00 1248
原创 Hadoop系列番外篇之一文搞懂Hadoop RPC框架及细节实现(深度好文,纯干货)
网络通信模块是分布式系统中最底层的模块。它直接支撑了上层分布式环境下复杂的进程间通信(Inter-Process Communication, IPC)逻辑,是所有分布式系统的基础。远程过程调用(Remote Procedure Call, RPC)是一种常用的分布式网络通信协议。它允许运行于一台计算机的程序调用另一台计算机的子程序,同时将网络的通信细节隐藏起来,使得用户无须额外地为这个交互作用编程。
2021-05-29 09:07:44 890 1
原创 Hadoop深入浅出MapReduce详解(全网最细)
文章目录前言-MR概述1.Hadoop MapReduce设计思想及优缺点设计思想优点:缺点:2. Hadoop MapReduce核心思想3.MapReduce工作机制剖析MapReduce运行机制过程描述第一阶段:作业提交(图1-4步)第二阶段:作业初始化(图5-7步)第三阶段:任务的分配(图8)第四阶段:任务的执行(图9-11)第五阶段:作业完成Tips 知识点:进度和状态更新4.MR各组成部分工作机制原理4.1概览:4.2 MapTask工作机制4.3 ReduceTask工作机制4.4shuffl
2021-05-28 15:10:23 12747 2
原创 Hive split()、explode()和lateral view 应用单列,多列炸裂
导航基本概念示例数据准备函数应用split()explode()函数总结基本概念在对于SQL的使用中,常常会遇到列转行,或者将一列的数据散列成多行进行统计分析处理的需求,这时候,结合split()、explode()和lateral view 处理这些需求会使得我们得心应手许多。先来了解一下这三个基本的介绍吧。1.Split(str, separator):将字符串按照后面的分隔符切割,转换成字符array。第一个参数是我们需要进行分割的字符串,第二个参数是我们的分割符,其结果时一个数组。和Java
2021-05-25 19:56:20 5319
原创 Hadoop从入门到精通第一篇之HDFS详解——HDFS(分布式文件系统)到底是什么?
导航条例集群NameNode失效会发生什么?引入HDFS设计结论冷热启动怎么抉择?集群NameNode失效会发生什么?Hadoop作为大数据入门的基石内容,其中HDFS更是所有生态的地基,so,我们有必要更深入去理解HDFS,以及HDFS在高可用的演变过程。如果有小可爱说hadoop和HDFS有啥区别的。の。。。,那容我之后在做背书来说明,暖男行为的先提一下:目前我们所说的Hadoop更多是指Hadoop的生态,包括hadoop本身及其他组件,如flume、kafka、hive、Hbase等等,如下图所
2021-05-14 16:42:00 979
原创 Linux常用基本命令之大数据开发篇
快速导航Linux大数据开发常用基础命令前言一、常用基础命令之帮助命令1.man命令2.help命令3.常用快捷命令二、文件目录类(重点掌握)1.pwd 显示当前工作目录2.cd 切换目录3.ls 列出目录内容4.mkdir 创建目录5.rmdir 删除空目录6.touch 创建空文件7.cp 复制8.mv 移动文件或重命名Linux大数据开发常用基础命令前言Linux操作系统作为服务器端的主流系统,开发人员难以避免与Linux系统打交道,初步从Windows用户使用Linux系统时,总是有一些不适
2021-05-11 21:13:02 844 1
原创 Java基础之上转型下转型
上下转型class Person{ String name; int age; public void eat(){ System.out.println("人要学会吃饭"); } public void sleep(){ System.out.println("人类必须睡觉才能活着"); }}// 程序员class Programmer{ boolean isCoding; public void sleep(){ System.out.println("程序
2021-05-06 19:03:50 79
原创 Linux之磁盘、网络,RPM和yum及JavaEE环境搭建
磁盘磁盘情况查询1.查询系统整体磁盘使用情况基本语法df -h应用实例查询系统整体磁盘使用情况2.查询指定目录的磁盘占用情况,默认为当前目录基本语法df -lhdu -h /目录-s 指定目录占用大小汇总-h 带计量单位-a 含文件–max-depth=1 子目录深度-c 列出明细的同时,增加汇总值应用实例 查看/opt目录的情况命令du -ach --max-depth=1 /opt3.WorkSpace 实用指令1)统计/home文件夹下
2021-05-06 19:00:37 144
原创 Linux之VIM编辑器操作命令
文章目录三种模式VI/VIM 是什么?一、一般模式1.1 复制1.2 删除1.3 移动1.4 粘贴和撤销二、编辑模式2.1 进入编辑模式2.2 退出ESC三、命令模式3.1 命令四、模式之间的转换关系三种模式VI/VIM 是什么?VI是Unix操作系统和类Unix操作系统中最通用的文本编辑器。VIM编辑器是从VI发展出来的一个性能更强大的文本编辑器。可以主动的以字体颜色辨别语法的正确性,方便程序设计。一、一般模式以vi/vim打开一个档案就直接进入一般模式了(这是默认的模式)可以使用『上下左右』
2021-05-06 18:55:46 257
原创 正则表达式
正则表达式学习笔记正则表达式正则表达式(Regular Expression)是一种文本模式,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为"元字符")。正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串。正则表达式是繁琐的,但它是强大的,学会之后的应用会让你除了提高效率外,会给你带来绝对的成就感。先来一个小例子:从字符串 str 中提取数字部分的内容(匹配一次):var str = "abc123def";var patt1 = /[0-9]+/;write
2020-12-01 15:35:36 428
原创 Python的深拷贝与浅拷贝【代码演示+底层讲解】
Python深浅拷贝浅析我们先直接来看下创建两个字符串,a,b 字面量值都一致在Python解释器中,是对于变量所对应的值比较a = "python 123"b = "python 123"if a== b: print("好久不见")我们创建一个变量c ,将a 的值赋给c,用c is a判断是否是同一个变量,运行看结果c = aprint(c)print(c is a)从结果来看,a 和c都是指向内存空间中的同一个地址的值我们在通过一个迭代对象进行深浅拷贝的进一步
2020-09-16 20:00:16 216
原创 JAVA关键字——abstract
抽象类及抽象方法abstract 修饰类:抽象类此类不能实例化抽象类中一定有构造器,便于子类实例化时调用(子类对象实例化的全过程)开发中,都会提供抽象类的子类,让子类对象实例化,完成相关操作。⇒\Rightarrow⇒继承性abstract 修饰方法:抽象方法抽象方法只有方法的声明,没有方法体;包含抽象方法的类一定是抽象类,抽象类不一定包含抽象方法若子类重写了父类中的所有的抽象方法之后,此子类可以实例化若子类没有重写父类中所有的抽象方法,则此子类不能实例化,也是一个抽象类,需要用关键字ab
2020-09-16 18:35:08 379
原创 java单例模式及线程安全
单例模式私有化类的构造器声明或创建类的对象提供公共的静态方法,返回类的对象// 饿汉式calss Bank(){ // 1.私有化类的构造器 private Bank(){ } // 2.内部创建类的对象 // 要求此对象也必须声明为静态的 private static Bank instance = new Bank(); // 3.提供公共的静态方法,返回类的对象 public static Bank getInstance(){ return instance;
2020-09-13 13:30:19 131
原创 Java——方法重载与重写详解(值传递机制)
Java笔记整理——再谈方法(重载、值传递机制)方法的重载可变形参的方法方法参数的值传递机制递归方法重载——OverLoad重载的概念:在同一个类中,允许存在一个以上同名方法,只要他们的参数个数或者参数类型不同即可。两同一不同:同一个类、相同方法名参数列表不同:参数个数不同,参数类型不同重载的特点:与返回值类型无关,只看参数列表,且参数列表必须不同。(参数个数或参数类型)。调用时,根据方法参数列表的不同来区别。重载示例// return sum about two int
2020-08-22 18:30:16 294
原创 数据分析Python常用包Numpy学习笔记【持续更新】
Python——numpy模块学习笔记认识数组数组:是同一类型的数据组成的一个队列。2. #### Numpy介绍是Python进行数据科学计算的基础软件包,核心是ndarray对象功能强大的N维数组对象精密广播功能函数集成C/C++ 和Fortran 代码的工具强大的线性代数、傅里叶变换和随机数功能结合稀疏矩阵框架scipy 更加高效实现矩阵运算Numpy基础安装Numpya.{a.}a. 使用pip安装:⟶{\longrightarrow}⟶ pip
2020-08-17 23:50:45 1075
原创 MarkDown数学符号查阅手册和最佳入门教程【持续更新】
标记函数x2+y2=z2(1′)x^2+y^2=z^2 \tag{1$'$}x2+y2=z2(1′)KaTeX parse error: Undefined control sequence: \leqno at position 11: x^2 = y \̲l̲e̲q̲n̲o̲{1.1}x4+y4=z4(*)x^4+y^4=z^4 \tag{*} x4+y4=z4(*)x6+y6=z6(1-1)x^6+y^6=z^6 \tag{1-1} x6+y6=z6(1-1)KaTeX p
2020-07-26 18:07:45 718
原创 超详解排序算法之(六)归并排序
归并排序归并排序简介归并排序是利用归并的思想实现排序的方法,这个排序算法采用了经典的分治策略【所谓分治法,先将问题***分***成一些小的问题然后递归求解,***治***的处理是将分的阶段中得到的各个答案“修补”在一起,从而实现分而治之。 】看图释义我们第一步递归的将原始数组分为不可再分的单元第二步,归并到一起是归并算法的精髓,我们从最小单元开始合并,每一次合并就是一次有序化。通...
2020-04-06 22:11:11 185 1
原创 超详解内部排序算法之(五)快速排序
快速排序快速排序简单介绍快速排序:QuickSort 是对冒泡排序的一种改进。基本思想通过一趟排序将要排序的数据分割成两个独立的部分,其中一部分的所有数据都比另外一部分的所有数据都要小,【可以在这思考一下怎么做- ,或许已经知道怎么做了,等下就验证一下是否是自己想的一样】,然后在按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据有序。图解分析快速排序的...
2020-04-06 20:12:05 290
原创 超详解排序算法之(四)希尔排序
希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键词越来越多,当增量减至1时,整个文件恰被分成一组,算法便终止。
2020-04-05 22:00:20 249
原创 超详解内部排序算法之(三)简单插入排序
插入排序插入排序的基本介绍插入排序,是对于将要排序的元素以插入的方式寻找该元素的适当位置,以达到排序的目的。插入排序的思想插入排序的基本思想是:把N个待排序的元素看做一个有序表和一个无序表,开始时有序表中只包含一个元素(即第一个元素),无序表中包含有N-1个元素,排序过程中每次从无序表中去除第一个元素,把它的排序码依次与有序表元素的排序码进行比较,将它 插入到有序表中的适当位置,是指...
2020-04-05 18:31:06 219
原创 超详解内部排序算法之(二)选择排序
选择排序选择排序的思想选择排序是一张简单的排序方法,基本思想:第一次从数组中【arr[0]~arr[n-1]】选取最小值,与arr[0]交换,第二次从【arr[1]-arr[n-1]】选取最小值与arr[1]进行交换,第三次从arr[2]-arr[n-1]选取最小值与arr[2]进行交换,…,第i次从arr[i]-arr[n-1]中选取最小值,与arr[i-1]进行交换,…,第n-1次从ar...
2020-04-05 16:49:58 145
原创 MSSQL 按照某一列分组后获取前几条记录
MSSQL 按照某一列分组后去前几条记录背景记录一下在日常处理后台数据时遇到的问题,先简单描述一下需求因为客户操作失败【也可以说是产品问题】,导致的后台多了很多数据,需要先查看数据看下判断,过多的需求不浪费时间在此赘述了,我们直接进入正题先上模板Method 1 方法1① SELECT 要输出的列,除nn外 FROM(SELECT nn=ROW_NUMBER() OVER(...
2020-03-27 18:14:08 793
原创 ElasticSearch 初学习总结 一
第一次了解到ElasticSearch是公司内部的报表查询的数据表过于庞大,引用缓存机制下载导致客户初次获取缓存信息下载时间过长,软件无法使用的情况而引用的。不采用直接查询数据库的原因简单说一下,是因为这个客户信息相关的表第一数据量太大了,遍历表查询很容易超时,也不符合业务逻辑,第二,相关表信息的引用处理真的太多了,存在嵌套查询和循环遍历的问题。从而决定了我们不能采用这种缓存和直接查询的方式处理。...
2019-10-31 16:24:28 337
原创 C# ref和out区别
我们都知道函数/方法的基本格式大致如下: class Program { //static 返回值类型 方法名(参数 列表){/*实现*/} static int Add(int x, int y) {return x+y;} }我们使用参数是为了保证方法处理的结果使我们希望看到的。 参数传入的默认行为是值传递。简单来说,如果没有为...
2018-09-17 18:05:34 109
原创 C#泛型、集合概念
为了满足灵活的数据结构,需要生成一种动态伸缩或只保存某个标准的对象。 集合类可划分为两大类: 非泛型集合(主要位于System.Collections命名空间) 通常设计为操作System.Object类型,因此是非常松散类型的容器。 泛型集合(主要位于System.Collections.Generic) 装箱可以正式定义为:显示的将值类型分配给System.Object变量的过程。 ...
2018-09-17 17:20:30 586
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人