自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(36)
  • 资源 (1)
  • 收藏
  • 关注

原创 用得上的jstat,jinfo,jmap,jhat,jstack

文章目录jps1.常用命令2.实战jinfo1.常用命令参数2.实战输出指定参数输出所有默认参数和设置的参数开启关闭指定参数动态修改指定参数jmap1. 常用命令参数2. 实战转存dump文件。打印等待回收对象打印heap重要信息打印class信息jhatjstack1. 常用命令参数2. 实战强制输出线程堆栈输出堆栈信息和锁的信息jstat1.常用命令参数2.实战类加载统计:编译统计垃圾回收统计堆内存统计新生代垃圾回收统计新生代内存统计老年代内存统计元数据空间统计总垃圾回收统计垃圾回收原因内容大纲:

2020-06-12 01:04:00 2549 1

原创 万字长文总结!吐血推荐的JVM面试题干货

文章目录1.什么是JVM2.JVM基本结构3.运行时数据区4 hotspot方法区的实现5 堆的结构6 为何新生代要设置两个survivor区7 对象访问定位8 判断对象存活方式9 GC安全点10 GC11 内存回收和分配策略12 GC收集器13 类加载过程1.什么是JVM说一说什么是JVMJVM,即 Java Virtual Machine,Java 虚拟机。它通过模拟一个计算机来达到一个计算机所具有的的计算功能。JVM 能够跨计算机体系结构来执行 Java 字节码,主要是由于 JVM 屏蔽了与

2020-06-10 00:01:08 2095 3

原创 超清晰明了的解释Java序列化和反序列化

1. 序列化是将对象写入到IO字节流,反序列化是从IO字节流中恢复对象2. 序列化的两个主要作用是用来存储和网络传输

2020-03-16 18:44:38 166

原创 scala这写的都是啥?一篇文章搞清隐式转换

文章目录前言常规问题:隐式转换是什么鬼如何实现隐式转换快速入门例子强大的扩展功能有哪些隐式转换隐式方法隐式值隐式类最后前言​ 我们都知道scala以简洁著称,怎么简单怎么来。对于scala的简洁语法,阔以说熟悉的人爱死scala,不熟悉的人被scala折磨死。对于scala这种语言,习惯了java的同学经常听到一些新的名词,不可思议而且神神秘秘,对,没错,说的就是你——隐式转换,掖着藏着,快让...

2020-03-14 11:01:52 531 1

原创 scala这写的都是啥?一篇文章搞懂柯里化

一篇文章给你解释清楚什么是柯里化本文通过scala函数的写法,特性,嵌套和简化等几方面简述了scala柯里化和闭包,希望通过本文能大概解释清楚。

2020-03-10 22:04:24 650 1

原创 进程,线程与多核,多cpu之间的关系

文章目录cpu架构和工作原理多核cpu和多cpu架构cpu的缓存进程和线程进程和线程在多核cpu,多cpu中的运行关系cpu架构和工作原理计算机有5大基本组成部分,运算器,控制器,存储器,输入和输出。运算器和控制器封装到一起,加上寄存器组和cpu内部总线构成中央处理器(CPU)。cpu的根本任务,就是执行指令,对计算机来说,都是0,1组成的序列,cpu从逻辑上可以划分为3个模块:控制单元、运算单元和存储单元。这三个部分由cpu总线连接起来。CPU的运行原理就是:控制单元在时序脉冲的作用下,将指令计数

2020-06-16 16:53:27 3075

原创 kafka伪集群Docker单机搭建,及其与spring boot集成

kafka & springboot文章目录kafka & springboot一、使用docker单机搭建kafka集群二、springboot和kafka的整合三、kafka的多种处理方式一、使用docker单机搭建kafka集群环境准备:docker环境,docker-compose工具创建一个自定义的文件夹,创建docker-compose.yml文件version: '2'services: zookeeper: image: wurstmeiste

2020-06-16 11:32:37 500

原创 Java OOM问题如何排查

文章目录OOM 问题什么是OOM导致OOM问题的原因排查手段实战MAT分析OOM 问题什么是OOMOOM为out of memory的简称,来源于java.lang.OutOfMemoryError,指程序需要的内存空间大于系统分配的内存空间,OOM后果就是程序crash;可以通俗理解:程序申请内存过大,虚拟机无法满足,然后自杀了。导致OOM问题的原因为什么会没有内存了呢?原因不外乎有两点:1)分配的少了:比如虚拟机本身可使用的内存(一般通过启动时的VM参数指定)太少。2)应用用的太多,并且用

2020-06-15 12:07:40 4678

原创 三步排查JVM cpu 100%问题

文章目录详细步骤1. 定位哪个服务导致的cpu满载2. 定位哪个线程导致的cpu满载3. 查看堆栈,定位到具体代码段本文将通过一个简单的案例,展示几下几点:如何定位是哪个服务进程导致CPU过载哪个线程导致CPU过载哪段代码导致CPU过载首先是写一个死循环的代码demo,用于模拟cpu100%的场景(此处不一定达到100%,只是为了演示排查过程尽量模拟)public class BusyCpu { public static void main(String[] arg

2020-06-14 14:15:53 957

原创 一篇文章搞清JVM死锁问题及排查

关于死锁,一直是面试和日常开发中的熟悉话题,本文将进行一下探讨:什么是死锁出现死锁的原因如何避免死锁代码中死锁问题怎么排查文章目录1. 什么是死锁2. 出现死锁的原因3. 如何预防和避免死锁4. 实战JVM死锁问题排查4.1 死锁代码案例4.2 死锁问题JVM工具排查4.2.1 jps+jstack方式排查4.2.2 jconsole方式排查4.2.3 jvisualvm方式1. 什么是死锁死锁是指两个或两个以上的进程或线程,在执行过程中,由于竞争资源而造成的一种阻塞的现象,若无外力作.

2020-06-13 14:39:04 1330

原创 kafka的消费者

kafka的消费者文章目录kafka的消费者1.重要概念消费者和消费组消费者和消费组的简单使用2. 消息接收2.1 重要参数2.2 订阅主题和分区2.3 位移提交(1)重复消费和消息丢失(2)自动提交(3)手动同步提交和手动异步提交2.4 指定位移提交2.5 再均衡监听器2.6 消费者拦截器内容大纲深入学习kafka数据消费大致流程创建并使用消费者kafka消费者常用配置1.重要概念消费者和消费组消费者负责订阅 Kafka 中的主题(Topic),并且从订阅的主题上拉取消息。与其他一些

2020-06-05 20:22:40 278

原创 Java从静态代理到动态代理

文章目录0 代理模式1 静态代理2 动态代理(JDK)3 cglib动态代理使用方法4 总结0 代理模式代理模式是一种设计模式,说的简单一点,代理模式就是设置一个中间代理来控制访问原目标对象,以达到增强原对象的功能和简化访问方式。代理模式图例:针对该图进行解释,以下几点需要说明:用户只关心接口功能(Subject),而不在乎谁提供了功能。接口真正实现者是RealSubject,但它不与用户直接接触,而是通过代理。代理是 Proxy,它实现了 Subject 接口,能够直接与用户接触。用户

2020-05-18 10:57:57 217

原创 关于Java反射的总结

文章目录0.反射和类加载关系1.获取Class对象的方法2.获取Class对象的信息构造方法3.反射操作实例对象判断是否为类的实例两种方式:创建实例PS反射的本质就是:在运行时,把 Java 类中的各种成分映射成一个个的 Java 对象。**0.反射和类加载关系类加载过程如下:编译,Java 编译器将 .java 编译产生 .class 二进制文件。加载,JVM 中的类加载器解析.class 文件内的信息。类加载器会根据类的全限定名来获取此类的二进制字节流,生成代表这个类的 java.l

2020-05-09 10:37:59 199

原创 Redis持久化

文章目录RDB配置原理优缺点AOF原理优缺点两者比较Redis 4.0 混合持久化数据恢复Redis有两种持久化方式RDB和AOFRDB是快照方式,是⼀次全量备份;AOF是命令日志方式,连续的增量备份。redis默认采用RDB持久化方式RDBSnapshot 快照,在指定的时间间隔内将内存中的数据集快照写入磁盘,恢复时是将快照文件直接读到内存里配置指定在多长时间内,有多少次更新操作...

2020-05-06 15:46:40 382

原创 Linux top命令详解

命令详解top显示系统当前的进程和其它状况,是一个动态显示过程,即可以通过用户按键来不断刷新当前状态.如果在前台执行该命令,它将独占前台,直到用户终止该程序为止。比较准确的说,top命令提供了实时的对系统处理器的状态监视。它将显示系统中CPU最“敏感”的任务列表。该命令可以按CPU使用、内存使用和执行时间对任务进行排序。top常用命令格式如下:top [参数]命令参数说明如下:-b 批...

2020-04-17 17:25:53 379

原创 从Java线程到线程池

文章目录线程模型线程池基础概念线程池的使用线程池的工作状态附1.线程池设置多少合适:2. 线程工厂的demo2. 自定义饱和策略线程模型线程模型分为两类,用户级线程(ULT)和内核级线程(KLT)用户级线程(ULT):user level threads,系统内核对ULT无感知,线程的创建和调度都由用户级APP进程管理;即APP自行管理的线程,就是用户级线程内核级线程(KLT):k...

2020-04-08 11:38:41 261 4

原创 ZooKeeper系列 (二) zookeeper-shell操作

文章目录zk-shell基本操作创建zk的四种节点类型1.持久节点2.持久顺序节点3.临时节点4.临时顺序节点读取更新删除zk自带命令行工具,bin目录下zkCli 脚本,linux下可通过执行 zkCli.sh 连接命令: ./zkCli.sh [-server ip:port] 远程地址可选,不填情况下连接本地服务器zk-shell基本操作创建 create更新 set查...

2020-04-02 10:43:51 581

原创 ZooKeeper系列 (一) zookeeper的概念

文章目录zookeeper是什么zookeeper提供什么能力zookeeper的特点可构成集群顺序访问高性能zookeeper的基本概念集群角色会话节点1.机器节点2.数据节点 ZNode版本ACLWatcherzookeeper是什么定义:zookeeper是一个开源的分布式协调服务,一个典型的分布式数据一致性解决方案。前世今生:Yahoo创建,最初为 hadoop的子项目,是googl...

2020-04-02 10:43:09 440

原创 超简单的zookeeper的完全分布式安装

下载地址apache索引目录 Index of /dist分布式部署选择3台机器,这里选择了3台机器172.23.7.9172.23.7.10172.23.7.12创建一个data目录,存放zk数据 例如/home/hadoop/apache/zookeeper/data在每台机器的data目录下,创建文件 myid,按机器编号写入1,2,3第一台机器 ...

2020-03-31 22:15:20 169

原创 Java的字符表示格式

Java的字符表示格式是什么?JVM的设计者当初决定JVM中所有字符的表示形式时,是不允许使用各种编码方式的字符并存的。原因:如果内存中的Java字符可以以GB2312、UTF-16、BIG5等各种编码存在,那么对于开发者来说,连最基本的字符串打印,连接等操作都寸步难行。例如:一个GB2312的字符串后面连接一个UTF-8的字符串,那么连接之后的结果是混乱的,无法选择。Java开发者牢

2020-03-29 20:42:59 1812

原创 Hadoop系列(九)Hadoop三大核心之Yarn-资源调度详解

文章目录Yarn的调度流程详解Yarn的调度策略1.FIFO先进先出调度2.Capacity 容量调度机制3.Fair 公平调度机制Yarn的调度流程详解Client端提交作业到ResourceManager中的ApplicationManager,申请JobID(唯一ID)RM返回一个作业ID,并且将一个临时hdfs路径返回给 Client,要求Client将要上传的文件发送到这...

2020-03-27 23:43:37 515

原创 Hadoop系列(八)Hadoop三大核心之Yarn-资源调度初探

文章目录0. Yarn的来源1. YARN概述2. YARN的重要组成部分2.1 ResourceManager(1)Application Manager 应用程序管理器(2)Scheduler 资源调度器2.2 NodeManager2.3 逻辑上的组件Application Master3. Container 资源池4. 小结0. Yarn的来源​ hadoop 1.x的时代...

2020-03-27 23:41:23 682

原创 Hadoop系列(七)Hadoop三大核心之MapReduce-程序编写

文章目录1. 准备部分2. jar包依赖3. Map部分4.Reduce部分5.提交部分6.打包提交接下来以一个简单的WordCount为例子,介绍Java版本的MapReduce的程序编写。mapreduce程序主要分三部分:1.map部分,2.reduce部分,3.提交部分。1. 准备部分hadoop中,针对数据类型自成一体,与java的数据类型对应。封装在hadoop.io包中,主要...

2020-03-27 23:39:59 315

原创 Hadoop系列(六)Hadoop三大核心之MapReduce 基础

文章目录MapReduce背景MapReduce是什么MapReduce的架构简单介绍MapReduce背景在程序由单机版扩成分布式版时,会引入大量的复杂工作。为了提高开发效率,可以将分布式程序中的公共功能封装成框架,让开发人员可以将精力集中于业务逻辑。Hadoop 当中的 MapReduce 就是这样的一个分布式程序运算框架。MapReduce是什么MapReduce是一个分布式运算程序...

2020-03-27 23:39:11 415

原创 Hadoop系列(五)Hadoop三大核心之HDFS 读写流程

文章目录HDFS写数据流程HDFS读流程首先,再回顾一下HDFS的架构图HDFS写数据流程客户端发送请求,调用DistributedFileSystem API的create方法去请求namenode,并告诉namenode上传文件的文件名、文件大小、文件拥有者。namenode根据以上信息算出文件需要切成多少块block,以及block要存放在哪个datanode上,并将这些信息返...

2020-03-27 23:37:50 269

原创 Hadoop系列(四)Hadoop三大核心之HDFS Java API

文章目录概念具体操作HDFS 设计的主要目的是对海量数据进行存储,也就是说在其上能够存储很大量的文件。HDFS 将这些文件分割之后,存储在不同的 DataNode 上,HDFS 提供了通过Java API 对 HDFS 里面的文件进行操作的功能,数据块在 DataNode 上的存放位置,对于开发者来说是透明的。使用 Java API 可以完成对 HDFS 的各种操作,如新建文件、删除文件、读...

2020-03-27 23:36:20 288

原创 Hadoop系列(三)Hadoop三大核心之HDFS shell常用命令

文章目录HDFS常用命令help 查看所有命令查看路径文件创建文件夹创建多级文件夹查看指定目录下和子目录下所有文件上传文件下载文件合并下载复制移动或重命名删除强制删除查看文件内容统计文件行数返回文件前n行(以10行为例)返回文件后n行(以10行为例)随机返回n行(以10行为例)显示文件大小testweb界面HDFS常用命令help 查看所有命令[172.23.7.9:hadoop]$ had...

2020-03-27 23:35:02 588

原创 Hadoop系列(二)Hadoop三大核心之HDFS基础

文章目录hdfs基础重要概念数据块NameNode(NN)DataNode(DN)Secondary NameNode (SNN)Hadoop 特点Hadoop HA可靠性单点故障问题针对海量数据,核心问题始终是计算和存储。当数据集的大小超过一台独立物理计算机的存储能力时,就有必要对它进行分区并存储到多台机器上。跨机器存储的文件系统就被成为分布式文件系统。分布式系统架构于网络之上,势必引入网...

2020-03-27 23:32:40 563

原创 Hadoop系列(一)开篇简介

文章目录Hadoop是什么总结Hadoop的起源Hadoop版本与架构核心Hadoop理念PS谁说大象不会跳舞Hadoop是什么Hadoop的官网:http://hadoop.apache.org/官网定义:The Apache Hadoop software library is a framework that allows for the distributed processing...

2020-03-27 23:14:38 205

原创 Hadoop部署安装 Hadoop3.1.2的完全分布式部署

文章目录大纲〇、Hadoop下载地址一、分配机器环境二、SSH配置三、分布式配置部署启动大纲机器环境及SSH预处理hadoop安装部署〇、Hadoop下载地址采用apache官网下载地址进行下载apache索引目录 Index of /dist此处使用了 hadoop-3.1.2.tar.gz一、分配机器环境共3台机器172.23.7.9172.23.7.10172...

2020-03-27 23:12:36 284

原创 一篇文章搞清spark内存管理

文章目录1.堆内存和堆外内存1.1 堆内存1.2 堆外内存2. 内存空间分配2.1 早期的静态内存管理2.2 统一内存管理机制3. 存储内存(Storage)缓存RDD怎么存储4. 执行内存(Execution)怎么管理​ 在执行Spark的应用程序时,Spark集群会启动Driver和Executor两种JVM进程,前者为主控进程,后者负责执行具体的计算任务。由于Driver的内存管理相对简...

2020-03-27 15:02:38 4440 4

原创 Spark的Shuffle是怎么回事

Shuffle的中文含义是混洗,官方定义是:一种让数据重新分布以使得某些数据被放在同一分区里的一种机制。Shuffle的过程中,存在着大量的网络消耗传输数据,会在磁盘上产生大量的中间文件,在平时的工作中了解shuffle的运行机制能帮助我们写出更优秀的代码。此篇文章从shuffle的含义开始讲起,按照spark中shuffle的几中不同运行机制进行了解析,并最终附上了一些shuffle调优的建议。

2020-03-22 23:15:44 2355

原创 一篇文章搞清spark任务如何执行

本文将针对spark中的Driver和Executor讲起,简述了spark的运行流程,部署模式以及内部任务调度机制,希望针对spark任务执行过程进行尽可能好理解的解析文章目录1.两个重要的主角DriverExecutorSpark 运行流程2.spark的部署模式2.1 spark部署类型2.2 Yarn模式下的运行机制3.Spark 任务调度3.1 Spark Stage级调度3.2 ...

2020-03-20 16:58:08 2793

原创 synchronized关键字

文章目录定义应用synchronized使用的两个细节问题附录,完整代码定义synchronized方法是java中常用的关键字,属于JVM层面,java的内置锁,Java中的每一个对象都可以作为锁,当对象被synchronized锁住之后,此对象当前是被该锁和该线程独占。应用分为修饰方法和修饰代码块两大类:具体如下4种用法:修饰实例方法修饰静态方法同步实例方法中的代码块同步...

2019-08-22 00:01:18 148

原创 java线程通信

文章目录等待通知 *wait* *notify*经典模型状态分析线层之间的IO这是Java线程技术的第二篇,主要讲解java线程之间的通信和交互.等待通知 wait notify​ 想要实现一个这样的需求:一个线程修改了一个对象的值,而另一个线程感知到了变化,然后进行相应的操作。类似于消费者和生产者的概念,只是对象是两个线程。这时候,简单的操作,是另一个线程一直不断的循环...

2019-08-21 23:59:19 204

原创 java线程基础

文章目录创建java线程的两种方式和启动线程的优先级别线程的状态Daemon线程线程中断的概念和使用总结[外链图片转存失败(img-TODEoiai-1566193209488)(https://img.shields.io/badge/private-tag-blue.svg)]github: https://github.com/ValjeanShawblog: https...

2019-08-19 13:41:18 128

android距离检测与报警 教程视频

Android距离检测与报警实现 教程视频 详细

2016-02-19

空空如也

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

TA关注的人

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