自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(39)
  • 问答 (1)
  • 收藏
  • 关注

原创 360°全方位告诉你生产环境如何全面配置Kafka参数

360°全方位告诉你生产环境如何全面配置Kafka参数,kafak在核心外卖及数据分析平台的核心参数优化。

2022-09-23 15:35:50 2362 1

原创 flink的架构原理常用代码实现

文章目录1.1 什么是flink1.2 flink特点1.3 编程API二 flink架构2.1 架构图2.2 含义三 flink和其他框架对比3.1 与spark角色对比3.2 三大实时计算框架整体对比四 flink环境搭建4.1 standalone模式4.1.1 架构4.1.2 搭建步骤4.1.3 启动集群并检测4.1.4 提交flink任务4.2 flink on yarn4.2.1 官网资料4.2.2配置4.2.3 flink run4.2.3.1 任务提交4.2.3.2 提交结果4.2.3.3

2020-12-04 22:20:15 1619

原创 基于Spark的电商推荐系统

ECommerceRecommendSystem基于spark的商品推荐系统项目体系架构设计1.1 项目系统架构项目以推荐系统建设领域知名的经过修改过的中文亚马逊电商数据集作为依托,以某电商网站真实业务数据架构为基础,构建了符合教学体系的一体化的电商推荐系统,包含了离线推荐与实时推荐体系,综合利用了协同过滤算法以及基于内容的推荐方法来提供混合推荐。提供了从前端应用、后台服务、算法设计实现、...

2020-07-16 08:56:17 5791 3

原创 Redis的基础命令、事物、集群模式、持久化机制

配置文件详解daemonize : 默认为no,修改为yes启用守护线程port :设定端口号,默认为6379bind :绑定IP地址databases :数据库数量,默认16save <second> <changes> :指定多少时间、有多少次更新操作,就将数据同步到数据文件#redis默认配置有三个条件,满足一个即进行持久化save 900 1 #900s有1个更改save 300 10 #300s有10个更改save 60 10000 #60s有10000更

2020-07-15 13:59:44 269

原创 SpringBoot的启动流程

springboot源码解析(一):启动过程1、springboot的入口程序@SpringBootApplicationpublic class StartupApplication { public static void main(String[] args) { SpringApplication.run(StartupApplication.class, args); }}当程序开始执行之后,会调用SpringApplication的构造方法,进行某些

2020-07-07 12:36:51 387

原创 Ribbon核心工作原理

Ribbon核心工作原理1.Ribbon的核心接口接口描述默认实现IClientConfig定义 Ribbon 中管理配置的接口DefaultClientConfiglmplIRule定义 Ribbon 中负载均衡策略的接口ZoneAvoidanceRuleIPing定义定期 ping 服务检查可用性的接口DummyPingServerList定义获取服务列表方法的接口ConfigurationBasedServerListServerLis

2020-07-07 10:37:17 952

原创 Mysql的索引、性能分析与SQL优化

文章目录存储引擎1.INnnoDB与MyISAM索引1.索引的定义2.索引的优势3.索引的劣势4.索引的分类5.哪些情况需要创建索引6.哪些情况不要创建索引性能分析1.执行计划信息2.索引失效SQL优化1.join语句的优化2.like语句的优化3.group by关键字优化语句优化慢查询日志1.查看是否开启及如何开启锁机制1.表锁2.行锁存储引擎1.INnnoDB与MyISAM对比...

2020-02-20 22:30:01 393 1

原创 Hbase的刷写、合并与分片

文章目录一、前言二、Hbase的刷写合并与分片1.刷写MemStore 刷写时机2.合并3.分片Region Split 时机一、前言​ 在上一次的Hbase的分享中我们主要了解了Hbase的系统结构、各组件、读写流程(HBase的系统结构与读写流程);在本次我们将继续深入了解Hbase的刷写与合并。下面进入正题。二、Hbase的刷写合并与分片1.刷写​ MemStore 的刷...

2020-01-15 15:24:24 848 1

原创 HBase的系统结构与读写流程

文章目录一、系统结构与环境角色1.架构图2.HMaster3.RegionServer4.Client5.Zookeeper6.HDFS二、组件1.Write-Ahead-logs(hlog)2.Region3.Store4.HFile5.MemStore三、读写存操作1.Hbase的写流程2.Hbase的读流程一、系统结构与环境角色1.架构图2.HMaster监控RegionServ...

2020-01-14 19:54:10 348

原创 Hive常见的优化方式

文章目录一、前言二、调优1.替换执行引擎为tez2.Fetch抓取3.本地模式4.MapJoin5.Group By6.笛卡尔积7.动态分区调整8.执行推测9.JVM重用10.严格模式11.并行执行一、前言Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张表,并提供类SQL查询功能。本质是:将HQL转化成MapReduce程序。此篇文章对于hive如何使用、如何配...

2020-01-06 17:05:00 804

原创 Spark的运行模式讲解

文章目录一、背景二、yran-client模式1.yran-client运行流程图2.yarn-client的工作流程三、yran-cluster模式1.yran-cluster运行流程图2.yran-cluster的工作流程四、yran-client与yran-cluster对比一、背景yran是hadoop体系中的资源调度管理机制,在上面可以运行多套计算框架比如MapReduce;同样也...

2019-12-28 16:53:09 354

原创 Spark应用程序运行关键词与作业执行关键词讲解

文章目录1.应用程序运行关键词2.作业执行关键词1.应用程序运行关键词Application(应用程序):是指用户编写的spark应用程序,包含驱动程序(Driver)和分布在集群中多个节点上运行的Executor代码,在执行过程中有一个或多个作业组成。Driver(驱动程序):Spark中的Driver即运行上述Application的main函数并创建SparkContext,其中创建...

2019-12-27 16:26:54 273

原创 Hive运行引擎Tez

文章目录tez是什么安装1.下载地址2.安装目录3.hive中配置tez测试问题总结1.Tez运行时检查到用过多内存而被NodeManager杀死进程tez是什么Tez是一个Hive的运行引擎,性能优于MR。为什么优于MR呢?看下图。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hz3I51Ts-1576490945344)(G:\资料-md\assets\t...

2019-12-16 18:11:37 920

原创 hdfs-yarn参数调优

文章目录HDFS参数调优hdfs-site.xmlYARN参数调优yarn-site.xmlHDFS参数调优hdfs-site.xmldfs.namenode.handler.countdfs.namenode.handler.count=20 * log2(Cluster Size),比如集群规模为8台时,此参数设置为60The number of Namenode RPC ser...

2019-12-12 10:36:57 324

原创 MapReduce的Join操作

背景前几日在微信的大数据技术交流群中,有水友面试深圳的某家证券公司并将部分笔试题发出来了,广大水友就开始讨论起来了;当然作为吃瓜群众中的一员我不仅吃了瓜还丢了籽!嘿嘿,当然也记录下来了,下面请看题:题目 在关系型数据库中的差运算在MR中是如何实现的。假设两个表R、T,现需要计算R-T,找出R中存在T中不存在的数据。分析首先限定了是在 MR环境中。“关系型数据库中的差运算”说明...

2019-12-07 16:34:31 309 3

原创 第四节 spring容器的扩展功能

文章目录前言核心过程1.ClassPathXmlApplicationContext2.refresh()函数1:)prepareRefresh-环境准备2:)obtainFreshBeanFactory-初始化beanfactory,并加载xml文件读取3:)prepareBeanFactory-容器功能扩展4:)invokeBeanFactoryPostProcessors-激活bean的工厂...

2019-12-05 15:18:45 201

原创 十三:Callable、Future和FutureTask之间的关系

文章目录Callable与RunnableFutureFutureTaskCallable与Runnable先说一下java.lang.Runnable吧,它是一个接口,在它里面只声明了一个run()方法:public interface Runnable { public abstract void run();}由于run()方法返回值为void类型,所以在执行完任务之后无...

2019-11-29 10:23:38 319 1

原创 十二:JVM调优及参数配置

JVM 的参数类型标配参数-version-helpX 参数(了解)-Xint:解释执行-Xcomp:第一次使用就编译成本地代码-Xmixed:混合模式XX 参数Boolean 类型:-XX:+ 或者 - 某个属性值(+ 表示开启,- 表示关闭)-XX:+PrintGCDetails:打印 GC 收集细节KV 设置类型:-XX:key=value-X...

2019-11-28 15:18:34 354 2

原创 十一:JVM的内存模型与GC算法

文章目录一、JVM结构1.类加载器(ClassLoader)2.执行引擎3.内存区(也叫运行时数据区)4.本地方法接口二、内存分配三、垃圾检测、回收算法1.标记-清除(Mark-sweep)2.复制(Copying)3.标记-整理(Mark-Compact)4.分代收集算法4.1为什么要运用分代垃圾回收策略?4.2如何划分?一、JVM结构根据《java虚拟机规范》规定,JVM的基本结构一般如下...

2019-11-28 15:05:10 322 1

原创 十:强、软、弱、虚四大引用类型

在Java语言中,除了基本数据类型外,其他的都是指向各类对象的对象引用;Java中根据其生命周期的长短,将引用分为4类。强引用特点:我们平常典型编码Object obj = new Object()中的obj就是强引用。通过关键字new创建的对象所关联的引用就是强引用。 当JVM内存空间不足,JVM宁愿抛出OutOfMemoryError运行时错误(OOM),使程序异常终止,也不会靠随意回...

2019-11-25 10:48:51 202

原创 九:jvm垃圾的确定与GC ROOT对象

JVM 垃圾回收的时候如何确定垃圾?知道什么是 GC Roots ?什么是垃圾简单来说就是内存中已经不在被使用到的空间就是垃圾要进行垃圾回收,如何判断一个对象是否可以被回收?引用计数法枚举根节点做可达性分析为了解决引用计数法的循环引用问题,Java 使用了可达性算法。跟踪收集器采用的为集中式的管理方式,全局记录对象之间的引用状态,执行时从一些列GC Roots的对象...

2019-11-22 11:32:12 306

原创 八:死锁编码以及定位分析

死锁编码以及定位分析产生死锁的原因死锁是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种相互等待的现象,如果无外力的干涉那它们都将无法推进下去,如果系统的资源充足,进程的资源请求都能够得到满足,死锁出现的可能性就很低,否则就会因争夺有限的资源而陷入死锁。代码案例public class DeadLockDemo { public static void main...

2019-11-21 09:42:59 224

原创 七: 深入理解Java之线程池

一、JDK线程池的总体api架构:二、ThreadPoolExecutor类public class ThreadPoolExecutor extends AbstractExecutorService {.......public ThreadPoolExecutor(int corePoolSize,int maximumPoolSize,long keepAliveTime,T...

2019-11-20 10:50:50 450

原创 六:阻塞队列的理解

1.阻塞队列有哪些强烈推荐参考:https://www.cnblogs.com/bjxq-cs88/p/9759571.html队列有界性锁数据结构ArrayBlockingQueuebounded(有界)加锁arrayListLinkedBlockingQueueoptionally-bounded加锁linkedListPriorityB...

2019-11-19 10:32:39 342

原创 五:线程计数器的理解

CountDownLatch让一些线程堵塞直到另一个线程完成一系列操作后才被唤醒。CountDownLatch 主要有两个方法,当一个或多个线程调用 await 方法时,调用线程会被堵塞,其他线程调用 countDown 方法会将计数减一(调用 countDown 方法的线程不会堵塞),当计数其值变为零时,因调用 await 方法被堵塞的线程会被唤醒,继续执行。假设我们有这么一个场景,教室里有...

2019-11-18 11:03:26 502

原创 四:java中的锁分类

java 中锁有哪些1.公平和非公平锁是什么**公平锁:**是指多个线程按照申请的顺序来获取值**非公平锁:**是值多个线程获取值的顺序并不是按照申请锁的顺序,有可能后申请的线程比先申请的线程优先获取锁,在高并发的情况下,可能会造成优先级翻转或者饥饿现象两者区别**公平锁:**在并发环境中,每一个线程在获取锁时会先查看此锁维护的等待队列,如果为空,或者当前线程是等待队列的第一...

2019-11-15 09:08:47 269

原创 三:ArrayList的理解

ArrayList 线程不安全的案例和解决方案故障现象public class ContainerDemo { public static void main(String[] args) { List<Integer> list = new ArrayList<>(); Random random = new Random(...

2019-11-15 09:05:19 261

原创 第三节 Spring加载bean的过程

前言通过前面两节的学习我们已经知道了Spring是如何解析XML与装载BeanDefinition的;在本章节中我们将继续学习bean的装载过程这将会面临更大的挑战,bean加载的功能实现远比bean的解析要复杂得多,不过没关系,步步深入层层解析终将会有收获。我们还是以一个例子开始:BeanFactory beanFactory = new XmlBeanFactory(new ClassPa...

2019-11-13 19:47:18 654

原创 二:CAS的理解

CAS 是什么CAS 的全称 Compare-And-Swap,它是一条 CPU 并发操作。它的功能是判断内存某一个位置的值是否为预期,如果是则更改这个值,这个过程就是原子的。CAS 并发原体现在 JAVA 语言中就是 sun.misc.Unsafe 类中的各个方法。调用 UnSafe 类中的 CAS 方法,JVM 会帮我们实现出 CAS 汇编指令。这是一种完全依赖硬件的功能,通...

2019-11-08 10:17:16 489

原创 一:Volatile的理解

一、轻量级的同步机制保证可见性禁止指令排序不保证原子性二、基本概念JMM 本身是一种抽象的概念并不是真实存在,它描述的是一组规定或则规范,通过这组规范定义了程序中的访问方式。JMM 同步规定线程解锁前,必须把共享变量的值刷新回主内存线程加锁前,必须读取主内存的最新值到自己的工作内存加锁解锁是同一把锁由于 JVM 运行程序的实体是线程,而每个线程创建时 JVM 都会为...

2019-11-08 09:49:03 286

原创 第二节 Spring解析XML与装载BeanDefinition的过程

引子我们都知道创建IOC容器的方式有以下常用几种:FileSystemXmlApplicationContext fileSystemXmlApplicationContext=new FileSystemXmlApplicationContext("/application.xml");FileSystemXmlApplicationContext fileSystemXmlApplica...

2019-10-21 15:45:45 404 1

原创 第一节 Spring bean 的核心类介绍

一、版本与目录结构对于所有非初学者来说认识一个maven项目的结构是很容易上手的,在此还是啰嗦的说一句创建过程,本猿是通过ideal工具直接new一个spring项目之后得到一个项目如下包含了spring核心的所有依赖jar文件;src/main/java 用于展现 Spring 的主要逻辑。src/main/resources 用于存放系统的配置文件。src/test/java...

2019-10-16 17:24:54 378

转载 责任链模式

>本文转载至 “码农小胖哥” 原文地址 https://www.felord.cn/chainpattern.html#两种实现方式前言很多框架如mybatis的插件,servlet的filter,dubbo,安全框架诸如Spring security、apache shiro都会用到设计模式中的责任链模式,所以学习责任链模式成为帮助你学习以上这些框架的一个好的手段之一。今天我们就来了...

2019-10-14 09:34:10 1031

原创 学好Spring Security 和Apache Shiro你需要具备这些条件

前言web应用达到生产需要就必须有安全控制。java web领域经常提及的两大开源框架主要有两种选择 Spring Security和Apache Shiro 。所以学习这两种框架也是java开发者提高水平的必经之路。从今天开始连续一段时间内,研究一下Spring Security。如果想学习的同学可以关注一下公众号:Felordcn 或者通过https://felord.cn来及时获取相关的干...

2019-10-12 09:57:18 1074

原创 Java8新特性

之前给大家谢了几篇关于java8的文章,由于这段时间比较忙就没有继续更近,致歉!现在具体说明一下java8到底有哪些新特性,再次连接我的另一篇文章,希望大家喜欢![下面是链接地址](https://www.zybuluo.com/kiraSally/note/839116)

2017-08-10 10:19:56 315

翻译 Springboot 配置详解

不多说直接上货mvcspring.mvc.async.request-timeout 设定async请求的超时时间,以毫秒为单位,如果没有设置的话,以具体实现的超时时间为准,比如tomcat的servlet3的话是10秒.spring.mvc.date-format 设定日期的格式,比如dd/MM/yyyy.spring.mvc.favicon.enabled 是否支持favicon.ico,

2017-07-28 11:22:10 1430

原创 Java NIO-之管道Pipe的用法

首先给大家介绍下原理Pipe就是个空管子,这个空管子一头可以从管子里往外读,一头可以往管子里写,并且是FIFO结构操作流程:1.首先要有一个对象往这个空管子里面写。写到哪里呢?这个空管子是有一点空间的,就在这个管子里。写的时候就是写到管子本身包含的这段空间里的。这段空间好像是1024个字节(根据需求设置)。2.然后另一个对象才能将这个装满了的管子里的内容读出来。import java.io

2017-07-28 11:13:27 3851

原创 Java NIO-之Channel与Charset

本篇文章主要介绍java8之nio相关的编码级的设置,以及通道channels的使用,如何利用通道直接复制文件等,欢迎大家交流讨论!不多说作为码农直接上代码………………… import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import j

2017-07-28 11:01:03 733

原创 Java NIO-之缓冲区Buffer

import java.nio.ByteBuffer; import org.junit.Test; public class Nio01 { /* * 一、缓冲区(Buffer):在 Java NIO 中负责数据的存取。缓冲区就是数组。用于存储不同数据类型的数据 * * 根据数据类型不同(boolean 除外),提供了相应类型的缓冲区: *

2017-07-26 17:21:47 475

空空如也

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

TA关注的人

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