- 博客(79)
- 资源 (10)
- 收藏
- 关注
转载 终于知道啥是回调了·
以前一直用回调回调,其实不咋知道啥是回调,今天终于想起来去搜一下,其实也就10分钟的事情。多么简单,同步回调,异步回调!!!look~~~https://www.cnblogs.com/prayjourney/p/9667835.html
2020-05-28 19:50:18 392
原创 spark 存储分析(六)
文章目录前言1. 整体架构2. RDD存储过程2.1 存储级别2.2 RDD存储调用2.3 RDD读数据过程2.3.1 本地读取数据2.3.2 远程读取:2.4 RDD写数据过程3 shuffle 存储过程3.1 shuffle的写操作3.2 Shuffle的读操作4 序列化和压缩4.1 序列化4.2 压缩(具体展开还需要查阅资料)5 共享变量(细节需要查阅资料)5.1 广播变量5.2 累加器前...
2019-09-01 22:41:52 351
原创 关于AQS的思考
关于AQS的思考1概述在java中,常常使用synchronized实现并发访问,但是ReentrantLock是基于AQS实现的,AQS仅仅是一个工具类,没有使用更底层的机器指令,不是关键字,也不依靠 JDK 编译时的特殊处理,仅仅作为一个普通的类就完成了代码块的并发访问控制。在介绍AQS之前,先讲讲CLH锁,引用网上的定义,CLH锁是一种基于链表的可扩展、高性能、公平的自旋锁,申请...
2019-08-30 14:23:00 302
原创 spark 容错HA(五)
spark 容错HA1. Executor 异常spark在各种运行模式中的集群管理器会为任务分配运行资源,在运行资源中启动Executor,由Executor是负责执行任务的,最终会把任务运行状态发送给Driver。首先看Executor启动过程:1)Master给APP分配资源2)在Worker中启动ExecutorRunner3)ExecutorRunner会启动一个线程向Dr...
2019-08-24 21:51:53 189
原创 spark 调度分析(四)
1. 概述job - stage -TaskSet - Task.spark调度中,最重要的就是DAGScheduler和TaskScheduler调度器:DAGScheduler负责任务的逻辑调度。TaskScheduler负责具体任务的调度执行。根据图1从整体上对Spark的作业和任务调度做了分析spark 的APP 进行各种转换操作,通过行动操作触发作业运行。根据RDD之间的D...
2019-08-23 07:12:29 181
转载 AQS结构及原理分析和Reentrant非公平锁
AQS介绍AQS,即AbstractQueuedSynchronizer, 队列同步器,它是Java并发用来构建锁和其他同步组件的基础框架。来看下同步组件对AQS的使用:AQS是一个抽象类,主是是以继承的方式使用。AQS本身是没有实现任何同步接口的,它仅仅只是定义了同步状态的获取和释放的方法来供自定义的同步组件的使用。从图中可以看出,在java的同步组件中,AQS的子类(Sync等)一般是...
2019-07-22 15:26:56 345
转载 Java并发编程:CountDownLatch、CyclicBarrier和Semaphore
Java并发编程:CountDownLatch、CyclicBarrier和Semaphore 目录Java并发编程:CountDownLatch、CyclicBarrier和Semaphore一.CountDownLatch用法二.CyclicBarrier用法三.Semaphore用法在java 1.5中,提供了一些非常有用的辅助类来帮助我们进行并发编程,比如Co...
2019-07-21 22:16:29 189
原创 java基础(二)对象和内存控制
文章目录1 实例变量和类变量2 实例变量和类变量的内存属性3 父类构造器1 实例变量和类变量java 变量大体可分为:成员变量局部变量局部变量分为以下三种:形参:申明方法时定义的变量,随着方法结束而结束。方法内定义的局部变量:必须在方法内显示的初始化,随着方法结束而结束。代码块的局部变量:也需要在代码块中显示初始化,随着代码块结束而结束 类中定义的变量为成员变量。...
2019-07-18 06:56:32 161
原创 java基础(三)关于内存回收
文章目录1 前言2 引用2.1 对象的状态2.1 引用1 前言 虽然在《死磕JVM》的博文中已经写了关于内存回收的内容,但是最近看了在复习基础时,看到了关于引用的一些内容,对之前的学习是很大的补充。我们都知道根据可达性垃圾回收算法,对于那些引用不可达的对象,会进行回收。这么说是没错,但是本文不对这部分内容过多赘述,主要是补充一下关于引用的内容和避免内存泄漏的方法。2 引用2.1 对象...
2019-07-02 22:46:48 426
转载 linux shell 实现 四则运算(整数及浮点) 简单方法
文章目录1.简单方法2.其它方法3.浮点运算在刚刚学习写shell 批处理时候,进行逻辑运算中,少不了需要进行基础的:四则运算,这里说说在linux shell 里面简单的实现方法。1.简单方法[chengmo@centos5 ~]$ b=((5∗5+5−3/2))[chengmo@centos5 ]((5*5+5-3/2)) [chengmo@centos5 ~]((5∗5+...
2019-07-02 13:35:54 523
转载 linux强制复制文件并覆盖的方法
linux强制复制文件并覆盖的方法1、这么就用不会提示了:# \cp -rf2、 原因:# vi ~/.bashrc如果你看到如下内容,以下命令都会用别名执行了,就是说自动加了 -i 参数:alias rm='rm -i'alias cp='cp -i'alias mv='mv -i'为了让复制和移动大量文件去覆盖目标时,不会产生一个个的提示,命令应该这样写...
2019-06-29 11:26:49 38944
原创 java基础(一) 数组的内存控制
文章目录1 数组初始化1.1 数组是静态的1.2 是谁需要初始化?2 使用数组 当数组的所有元素都被分配了合适的内存空间,并指定了初始值时,数组初始化完成。程序以后将不能重新改变数组对象在内存中的位置和大小。1 数组初始化1.1 数组是静态的 Java语言的数组变量是引用类型的变量,因此具有Java独有的特性。 Java的数组是静态的,即当数组被初始化之后,该数组的长度...
2019-06-28 07:23:47 169
转载 死磕elasticsearch(七)搜索速度优化
文章目录1 为文件系统cache预留足够的内存2 使用更快的硬件3 文档模型4 预索引数据5 避免使用脚本6 优化日期搜索7 为只读索引执行force-merge8 预热文件系统cache9 调节搜索请求中的batched_reduce_size10 利用自适应副本选择(ARS)提升ES响应速 度1 为文件系统cache预留足够的内存 在一般情况下,应用程序的读写都会被操作系统“cach...
2019-06-24 22:25:54 3455
转载 死磕elasticsearch(六)写入速度优化
文章目录1 前言2 translog flush间隔调整2.1 index.translog.durability2.2 index.translog.flush_threshold_size3 索引刷新间隔refresh_interval4 段合并优化1 前言 在集群正常运行的前提下,如果是集群首次批量导入数据时,可以将副本数设置为0,导入完毕后再将副本数调整为正常值,这样副分片就只需...
2019-06-24 21:44:20 11675 1
转载 【Intellij IDEA系列】IDEA右键没有Git或svn处理方法
1.VCS--->Enable Version Control Integration2.选择要关联的版本工具
2019-06-21 14:07:20 458
原创 死磕elasticsearch(三)集群启动过程
文章目录1 总体流程2 选主流程3 gateway过程1 总体流程 关于集群启动流程,网上有很多源码分析,但是介绍流程的却没有几篇,看得我很揪心,学es的同学水平都这么高的吗,随便整整都是源码了?但是个人觉得在对启动流程没有概念时,看源码就会云里雾里异常吃力,带着理解和问题看源码才会更会更有收获。 集群启动总体流程:其中:selectMaster是选取主节点gateway选举...
2019-06-17 17:20:45 748
原创 死磕Elasticsearch(二)选主流程
文章目录1 选举算法2 相关配置3 流程概述4 流程分析4.1 选举临时Master流程1 选举算法 elasticsearch的选举算法是基于Bully算法改造的。 Bully是Leader选举的基本算法之一。 它假定所有节点都有一个惟一的ID,该ID对节点进行排序。 任何时候的当前Leader都是参与集群的最高id节点。 该算法的优点是易于实现,但是,当拥有最大 id...
2019-06-15 10:20:03 1983
原创 死磕Elasticsearch(五)Get流程和Search流程
文章目录1 前言2 GET/MGET2.1 GET/MGET:官网介绍2.2 可选参数:2.3 GET粗粒度流程2.4 GET详细分析2.4.1协调节点执行流程2.4.1.1内容路由2.4.1.2 转发请求2.4.2 数据节点2.4.2.1 读取和过滤3 Search流程3.1 索引和搜索3.1.1 建立索引3.1.2 执行搜索3.2 Search Type3.2.1 DFS_QUERY_THEN...
2019-06-08 17:21:20 7189
转载 死磕Elasticsearch(四)写入过程
文章目录参考来源1 基础数据模型2 粗粒度流程3 细粒度流程3.1 协调节点流程:3.1.1 参数检查3.1.2 处理pipeline请求3.1.3 自动创建索引3.1.4 对请求的预先处理3.1.5 检测集群状态3.1.6 内容路由,构建基于shard的请求3.2 主分片写入流程3.2.1 预处理:3.2.1.1 检查请求3.2.1.2 是否延迟执行3.2.1.3 判断主分片是否已经发生...
2019-06-04 22:26:23 1354
转载 死磕Elasticsearch(一)---宏观架构原理及基本操作介绍
提供优秀的博客,比自己写的半吊子有价值的多!!!!ElasticSearch从入门到精通,史上最全(名副其实):https://blog.csdn.net/JENREY/article/details/81290535Elasticsearch架构原理(面面俱到)https://blog.csdn.net/wangnan9279/article/details/7928...
2019-05-17 22:52:30 678
转载 Redis必学(八)缓存雪崩、缓存击穿、缓存穿透
目录1 缓存穿透2 缓存雪崩3 缓存击穿缓存系统是我们平时开发经常使用到的,也是在高并发场景下减少或防止流量对DB等底层系统冲击的最有效手段之一。下面就简单谈谈缓存系统经常提及的三个问题以及解决方案。1 缓存穿透首先回忆下通常情况我们设置的缓存机制,如下图所示:缓存加载机制这套机制,由于出于容错考虑,从存储层查不到数据则不写入缓存,这就导致每次请求不...
2019-04-26 21:17:13 208
原创 Redis必学(一)redis RDB和AOF持久化
1 概述 Redis持久化的目的是为了保存数据,在redis重启时可以恢复。但是在开发环境中,如果测试数据量大,每次都加载数据,很麻烦,如果遇到并不需要旧数据的场景,就更无需持久化了,所以我这里就先介绍取消持久化的方式,再介绍两种持久化方式(RDB和AOF)。2 取消持久化取消持久化无非就是设置配置文件:设置 save “”,还要把持久化的本地文件干掉设置 save "将配置中d...
2019-04-10 21:19:27 392
原创 Redis必学(三)redis多节点集群
1 概述 集群,即Redis Cluster,是Redis 3.0开始引入的分布式存储方案。 集群由多个节点(Node)组成,Redis的数据分布在这些节点中。集群中的节点分为主节点和从节点:只有主节点负责读写请求和集群信息的维护;从节点只进行主节点数据和状态信息的复制。 集群的作用,可以归纳为两点:数据分区:数据分区(或称数据分片)是集群最核心的功能。 集群将数据分散到多个...
2019-03-31 22:11:53 3192
原创 Redis必学(二)redis主从模式和哨兵模式
1 概述一般的文档,都把redis的集群方式分成三种:主从、哨兵、集群(这里的集群只是广义集群的一种)。但是这么分类很不严谨,哨兵模式,单独使用是没有意义的,哨兵的作用有两个:监控:监控主节点和从节点是否正常运行提醒:当被监控的某个Redis节点出现问题时, 哨兵(sentinel) 可以通过 API 向管理员或者其他应用程序发送通知。故障迁移:主数据库出现故障时自动将从数据库转换为主数...
2019-03-16 21:59:19 15912 5
原创 死磕JVM(八)中场休息-总结
前言死磕JVM系列的写了七篇了,基本是按照《深入理解Java虚拟机》的章节顺序写的,但是很明显我跳过几章,比如Class文件结构、虚拟机的字节码执行引擎、编译器和运行期的优化、还有JVM调优的实战,这些内容磕起来真是非常耗时间和耐心,最近牙口又不好,暂时磕不动了,等我换副镶金的假牙,慢慢啃。在买得起金牙之前,决定先换个清淡口味的东西写写,比如spring(目测也是硬茬儿,啃下来肯定得一嘴血),...
2019-03-02 14:12:28 230
原创 死磕JVM(五)对象的创建
死磕JVM(四)对象的创建对象的创建1 检查引用2 分配内存空间2.1空间分配方案2.2 解决在创建对象时内存空间冲突的问题3 内存分配完成后需要初始化值4 虚拟机需要对对象内存进行设置4.1 对象头4.2 实例数据4.3 对齐填充5 执行6 访问对象对象的创建整体流程1 检查引用虚拟机遇到new指令时,首先去检查这个指令的参数能否在常量池中定位到一个类的符号引用,并且检查这个符号引用代...
2019-02-26 18:23:48 363
原创 死磕JVM(三)内存溢出
目录内存泄漏内存溢出1 java堆溢出1.1 溢出场景1.2 解决方法2 虚拟机栈和本地方法栈溢出2.1 溢出场景2.2 解决方法:3 方法区和运行常量池溢出3.1 溢出场景3.2 解决方法死磕JVM(一)内存区域https://blog.csdn.net/u012133048/article/details/85344025死磕JVM(二)内...
2019-02-23 20:41:07 259
原创 死磕JVM(二)内存模型
目录1 Java内存模型概述1.1 主内存和工作内存1.2 主内存和工作内存的交互操作死磕JVM(一)内存区域 https://blog.csdn.net/u012133048/article/details/85344025死磕JVM(二)内存模型 https://blog.csdn.net/u012133048/article/details/87886352死磕J...
2019-02-22 22:28:52 246
转载 mybatis的缓存机制
mybatis缓存机制详解转自:https://www.cnblogs.com/winclpt/articles/7511672.htmlmybatis提供了缓存机制减轻数据库压力,提高数据库性能mybatis的缓存分为两级:一级缓存、二级缓存一级缓存是SqlSession级别的缓存,缓存的数据只在SqlSession内有效二级缓存是mapper级别的缓存,同一个namespa...
2019-02-22 16:50:15 113
原创 为什么要同时重写equals和hashcode方法
现在有两个Student对象:Student s1=new Student("小明",18);Student s2=new Student("小明",18);此时s1.equals(s2)一定返回true(注意,以下是关于hashcode的一些规定:两个对象相等,hashcode一定相等两个对象不等,hashcode不一定不等hashcode相等,两个对...
2019-02-22 15:09:07 5846 5
转载 基于Zookeeper的分布式锁与领导选举(转)
原创文章,转载请务必将下面这段话置于文章开头处。本文转发自技术世界,原文链接 http://www.jasongj.com/zookeeper/distributedlock/Zookeeper特点Zookeeper节点类型如上文《Zookeeper架构及FastLeaderElection机制》所述,Zookeeper 提供了一个类似于 Linux 文件系统的树形结构。该树形结...
2019-01-18 22:19:12 247
转载 一文读懂Zookeeper原子广播原理(转)
原创文章,转载请务必将下面这段话置于文章开头处。本文转发自技术世界,原文链接 http://www.jasongj.com/zookeeper/fastleaderelection/Zookeeper是什么Zookeeper是一个分布式协调服务,可用于服务发现,分布式锁,分布式领导选举,配置管理等。这一切的基础,都是Zookeeper提供了一个类似于Linux文件系统的树形结构(可认...
2019-01-18 22:17:57 2287 1
转载 Java 浅析 Thread.join()
概要本文分为三部分对 Thread.join() 进行分析:1. join() 的示例和作用2. join() 源码分析3. 对网上其他分析 join() 的文章提出疑问 1. join() 的示例和作用1.1 示例1 // 父线程2 public class Parent extends Thread {3 public void run() {4...
2019-01-18 16:32:09 143
转载 【分布式】Zookeeper的Leader选举
【分布式】Zookeeper的Leader选举转自https://www.cnblogs.com/leesf456/p/6107600.html一、前言 前面学习了Zookeeper服务端的相关细节,其中对于集群启动而言,很重要的一部分就是Leader选举,接着就开始深入学习Leader选举。二、Leader选举 2.1 Leader选举概述 Leader选举是保证分...
2019-01-14 22:29:09 125
转载 大白话说Java反射:入门、使用、原理
大白话说Java反射:入门、使用、原理目录一个简单的例子 反射常用API 获取反射中的Class对象 通过反射创建类对象 通过反射获取类属性、方法、构造器 反射源码解析文章首发于【博客园-陈树义】,点击跳转到原文《大白话说Java反射:入门、进阶、原理》反射之中包含了一个「反」字,所以想要解释反射就必须先从「正」开始解释。一般情况下,我们使用某个类时必定知道它是...
2019-01-04 13:51:12 341
转载 Java并发编程:线程池的使用(深入浅出)
如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。 那么有没有一种办法使得线程可以复用,就是执行完一个任务,并不被销毁,而是可以继续执行其他的任务? 在Java中可以通过线程池来达到这样的效果。今天我们就来详细讲解一下Java的线程池,首先我们从最核心的ThreadPoolExecutor...
2019-01-04 09:40:40 205 1
图解Spark核心技术与案例实战&&elasticsearch;-the-definitive-guide&&JVM;高级特性与最佳实践(最新第二版)
2018-10-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人