一般来说,一个spark程序包含两种 JVM 程序,Dirver 和 Executor。Dirver 是主要的控制程序,负责创建 context,提交任务,那 job 转换为 task 并且协调 task 在 executor 中的执行。Executor 主要是负责执行计算任务并且将结果返回给 Dr ...
分类:
其他好文 时间:
2020-05-24 23:52:11
阅读次数:
70
加载:查找并且加载类的二进制数据 连接:1,验证,确保被加载累的正确性。2,准备,为类的静态变量分配内存,并且初始化默认值,3,解析,把类中的符号引用 装换我直接引用。 初始化:为类的静态变量赋予正确的初始值。 ...
分类:
其他好文 时间:
2020-05-24 12:00:44
阅读次数:
51
基于redis的分布式锁(redisson) 分布式锁介绍: 我们在开发应用时,如果需要对一个共享变量进行多线程同步访问的时候,我们可以使用Java多线程的各个技能点来处理,保证完美运行无BUG。 但是这里的都只是单机应用,即在同一个JVM中;然后随着业务发展、微服务化,一个应用需要部署到多台服务器 ...
分类:
其他好文 时间:
2020-05-24 10:13:11
阅读次数:
47
在分布式系统中,为保证同一时间只有一个客户端可以对共享资源进行操作,需要对共享资源加锁来实现,常见有三种方式: 基于数据库实现分布式锁 基于 Redis 实现分布式锁 基于 Zookeeper 实现分布式锁 高并发下数据库锁性能太差,本文不做探究。仅针对Redis 和 Zookeeper 实现的分布 ...
分类:
其他好文 时间:
2020-05-24 09:53:33
阅读次数:
65
一、内存溢出(OOM)的原因 在JVM中,有哪些内存区间? 堆溢出 public static void main(String args[]){ ArrayList<byte[]> list=new ArrayList<byte[]>(); for(int i=0;i<1024;i++){ lis ...
分类:
其他好文 时间:
2020-05-24 00:46:04
阅读次数:
54
一、什么是ClassLoader? 大家都知道,当我们写好一个Java程序之后,不是管是CS还是BS应用,都是由若干个.class文件组织而成的一个完整的Java应用程序,当程序在运行时,即会调用该程序的一个入口函数来调用系统的相关功能,而这些功能都被封装在不同的class文件当中,所以经常要从这个 ...
分类:
其他好文 时间:
2020-05-23 22:59:57
阅读次数:
94
本章节我们将为大家介绍如何使用 Ruby 语言来编码和解码 JSON 对象。 环境配置 在使用 Ruby 编码或解码 JSON 数据前,我们需要先安装 Ruby JSON 模块。在安装该模块前你需要先安装 Ruby gem,我们使用 Ruby gem 安装 JSON 模块。 但是,如果你使用的是最新 ...
分类:
Web程序 时间:
2020-05-23 18:44:26
阅读次数:
70
[TOC] 异常 异常的继承体系 JVM默认处理运行期异常 异常的处理方式 throws try catch finally try catch处理单个异常 try catch处理多个异常 JDK 1.7针对多个平级异常的处理 好处:简化代码; 弊端:对多个异常的处理方式是一致的。 注意事项: 多个 ...
分类:
其他好文 时间:
2020-05-23 18:19:52
阅读次数:
55
CGI::Session 可以为用户和CGI环境保存持久的会话状态,会话使用后需要关闭,这样可以保证数据写入到存储当中,当会话完成后,你需要删除该数据。 实例 #!/usr/bin/ruby require 'cgi' require 'cgi/session' cgi = CGI.new("htm ...
分类:
其他好文 时间:
2020-05-23 18:08:01
阅读次数:
44
一、现象 当上传附件时,系统反复出现宕机问题(内存溢出)。 二、分析 dump线程日志和GC日志,发现JVM启动参数未设置,初始内存较小,当附件上传时,附件较大,内存剧增,来不及扩容就OOM了。 三、解决方法 设置初始JVM启动参数(生产上应该先考虑项目JVM初始参数设置值,不是等到出问题了再跑去解 ...
分类:
其他好文 时间:
2020-05-23 16:36:41
阅读次数:
46