一、本文的目的
 
    Straggler是目前研究的热点,Spark中也存在Straggler的问题。GC问题是总所周知的导致Straggler的重要因素之一,为了了解GC导致的Straggler问题,首先需要学习GC问题以及如何监控Spark的GC。GC问题的讨论比较多了,推荐一篇系列文章用于学习:成为Java的GC专家
 
二、本文所需工具
 
    本文所需工具很简单,基本不用下载。监控GC的前提是:
    1、已经在集群上安装了Spark并可以正常提交作业;
    2、本地装有jdk1.6以上版本。
 
    本文实际使用的工具是:java自带的jvisualvm。
 
三、配置jvisualvm
 
    1、远程集群:需要简单配置并启动jstatd。方法比较简单,共两步:
        i. 在JAVA_HOME的bin目录下新建一个jstatd.all.policy的文件,文件内容为:

grant codebase "file:${java.home}/../lib/tools.jar" {
permission java.security.AllPermission;
};

ii. 执行:jstatd -J-Djava.security.policy=jstatd.all.policy -J-Djava.rmi.server.hostname=yourip。

将命令中的yourip替换成Spark的master所在的node的地址,该地址也是jvisualvm需要连接的地址。确保不会报RMI和Connect的错误。

2、本地主机:无需配置,启动jvisualvm即可。

在jvisualvm中新建远程主机,IP地址为之前填写的地址,使用jstatd连接,默认端口1099。然后就可以看到远程运行的jvm虚拟机了。

四、监控

1、在jvisualvm的“工具”选项中的插件一栏下载Visual GC插件,然后就可以看到虚拟机的监控页面多出一栏GC监控。

2、在集群上通过Spark submit提交一个应用,本地就可以监控到了,双击查看其信息。

3、监控到的截图如下:

 

Spark的Straggler深入学习(1):如何在本地图形监控远程Spark的GC情况——使用java自带的jvisualvm的更多相关文章

  1. Spark的Straggler深入学习(2):思考Block和Partition的划分问题——以论文为参考

    一.partition的划分问题 如何划分partition对block数据的收集有很大影响.如果需要根据block来加速task的执行,partition应该满足什么条件? 参考思路1:range ...

  2. Spark如何与深度学习框架协作,处理非结构化数据

    随着大数据和AI业务的不断融合,大数据分析和处理过程中,通过深度学习技术对非结构化数据(如图片.音频.文本)进行大数据处理的业务场景越来越多.本文会介绍Spark如何与深度学习框架进行协同工作,在大数 ...

  3. [源码解析] 深度学习分布式训练框架 horovod (9) --- 启动 on spark

    [源码解析] 深度学习分布式训练框架 horovod (9) --- 启动 on spark 目录 [源码解析] 深度学习分布式训练框架 horovod (9) --- 启动 on spark 0x0 ...

  4. [源码解析] 深度学习分布式训练框架 horovod (10) --- run on spark

    [源码解析] 深度学习分布式训练框架 horovod (10) --- run on spark 目录 [源码解析] 深度学习分布式训练框架 horovod (10) --- run on spark ...

  5. Spark随机森林实现学习

    前言 最近阅读了spark mllib(版本:spark 1.3)中Random Forest的实现,发现在分布式的数据结构上实现迭代算法时,有些地方与单机环境不一样.单机上一些直观的操作(递归),在 ...

  6. Spark记录-SparkSQL相关学习

    $spark-sql  --help  查看帮助命令 $设置任务个数,在这里修改为20个 spark-sql>SET spark.sql.shuffle.partitions=20; $选择数据 ...

  7. Spark记录-官网学习配置篇(二)

    ### Spark SQL Running the SET -v command will show the entire list of the SQL configuration. #scala/ ...

  8. Spark记录-官网学习配置篇(一)

    参考http://spark.apache.org/docs/latest/configuration.html Spark提供三个位置来配置系统: Spark属性控制大多数应用程序参数,可以使用Sp ...

  9. 这是一套Java菜鸟到大牛的学习路线之高级教程,由工作了10年的资深Java架构师整理。

    这是一套Java菜鸟到大牛的学习路线之高级教程,由工作了10年的资深Java架构师整理.        01-java高级架构师设计-基础深入        J2SE深入讲解        Java多 ...

随机推荐

  1. 分布式事务二阶提交DTS系统

    前端时间写新交易系统时,经常碰到事务一致性问题,网上搜了一下,有一些解决方法,采用了扫表补偿的方式来完成,刚开始只有几个接口需要处理,工作量还可以,但是后续随着需求的增加,这些场景错综复杂,导致大量时 ...

  2. OneProxy添加license

    proxy-license=XXXX-XXXX-XXXX-XXXX 放到proxy.conf中,然后重启proxy

  3. jquery实现可拖拽的div

    由于项目中并未引入前端开发框架easyui.ext.没有现成的控件可以使用,今天时间算是充裕的时候,自己写了一个可以拖拽.放大缩小的例子.欢迎大家指正. 不啰嗦,上代码: 依赖的文件:jquery.j ...

  4. JavaScript实现快速排序

    思想: 通过分治思想.递归方法将数据依次分解为包含较小元素和较大元素的不同子序列 1.在数组中选择一个元素为基准 2.对数组进行遍历,小于基准的元素都移到基准的左边,大于基准的元素都移到基准的右边 3 ...

  5. 常用备份工具是mysql自带的mysqldump

    常用备份工具是mysql自带的mysqldump,mysqldump -u root -p密码 dbname >d:\test.sql ------------备份某个库mysqldump -u ...

  6. Sort Colors [LeetCode]

    Given an array with n objects colored red, white or blue, sort them so that objects of the same colo ...

  7. chrome经常崩溃解决过程

    之前chrome常崩溃,也没有找到原因,就将就着用吧,一直用到今天,今天连续几次崩了,突然想到,难道是因为我访问的域名没有解析(能想到这个,是因为今天分配公司域名测试的时候常输错),于是就输入一个不存 ...

  8. 利息?hii

    #include<stdio.h> void main() { for(;;) { float bj,lx=0,ll,d; printf("输入本金:"); scanf ...

  9. 神奇的margin之豆瓣豆瓣么么哒

    在经过周末的豆瓣主页和这周的豆瓣电影,表示网页什么的已经被我玩坏了. 老师在周末布置豆瓣主页,对于只学了四天的css和html的我,表示鸭梨山大. 最开始的两个小时只能做出一个连自己都看不下去的导航栏 ...

  10. AJAX(一、基本知识)

    AJAX:Asynchronous ([ə'sɪŋkrənəs; eɪ-])Javascript (['dʒɑ:və,skrɪpt])and XML 异步的Javascript和XMLAJAX不是新的 ...