范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

大数据框架中的JAVA虚拟机优化(一)概述

  近年以来,大数据应用取得了长足的进展,各种大数据处理框架也应运而生,并得到了业界的高度认可,如Hadoop生态、Spark系列、Flink、Cassandra、Hive等等。这类编程模型通常采用分治的思想,将大的数据处理作业拆分为多个小的计算任务,分配到分布式集群中的不同节点中运行,然后将结果汇聚起来,得出最终结果。
  由于使用习惯等关系,业内主流的大数据处理框架都采用Java语言进行编写。原因在于以下几点:
  1、很多程序开发人员对于Java语言比较熟悉,使用起来轻车熟路;
  2、Java提供了便捷的自动内存管理机制,避免了用户在处理内存过程中可能出现的问题;
  3、Java基于JVM运行的特性使得Java程序可以一次编写,多处运行,摆脱分布式集群中不同操作系统和硬件处理框架带来的束缚,使得开发者可以更加专注于代码逻辑的开发;
  4、Java语言拥有成熟的社区和丰富的编程资源,可以实现快速开发,出现问题也可以快速寻求帮助。
  正是基于这些优点,Java语言成为了目前最主流大数据编程技术。但是,在实际使用的过程中,开发者们发现了一系列JVM相关的性能瓶颈,主要包括以下几个方面:
  1、垃圾回收(GC)占用时间长,在一些大数据应用中,GC时间甚至可以达到总执行时间的50%;
  2、GC频率高,造成任务执行频繁暂停,应用吞吐率降低,响应延迟升高;
  3、GC算法挤占应用线程CPU资源,存在GC线程竞争时,大数据应用执行时间增长可达60%;
  4、数据对象在分布式节点间传输时需要序列化和反序列化,在某些大数据应用中,用时占比可达30%;
  5、JVM冷启动时需要大量的类加载和代码即时编译工作,在应用执行中的用时可达数十秒;
  6、JVM运行和维护需要内存消耗,在内存紧张的情况下,可能因为内存耗尽或内存碎片触发OOM错误。
  总的来说,这些问题的产生,可以归纳为以下一些原因:
  1、内存使用压力增大
  与普通的Java应用不同,大数据应用是"内存密集"型的,应用的内存使用量更大,在大数据处理框架下,JVM的内存使用压力具体来源于:
  (1)大数据应用数据计算和存储产生的大量内存消耗,大量数据在计算过程中需要同时被读取到内存中,而一些应用为了更进一步加快处理速度,将中间数据的聚合和可重用数据也缓存在内存当中,这决定了JVM在执行大数据应用时将面对更大的内存使用量;
  (2)数据在JVM堆内存当中以对象的形式存储需要额外的内存占用,对象在JVM当中的数据结构包含了对象头以及对其它对象的引用,而数据本身在对象中的空间占比往往不超过一半。这些对象的外壳伴随着数据缓存在内存当中,也需要占用相当数量的空间;
  由于JVM垃圾回收机制的原因,会经常触发全局暂停,而这个问题很难通过简单的增减内存大小来解决,如果降低内存大小,GC的触发频率会增加,对象被扫描和的去的次数增加,应用程序的吞吐量相应降低。可用内存不足还会影响到应用的正常缓存和处理机制,甚至引发内存溢出。而如果提升内存大小,单次GC则需要处理更多的数据对象,平均的暂停时间加长,应用程序的最大延迟相应增加。对于周期性标记扫描的GC算法而言,还会在最终触发GC之前消耗更多CPU时序进行不必要的标记。
  2、内存使用模式变化
  大数据应用中数据在内存当中保留的时间周期与普通应用不尽相同。在传统应用中,堆内存中创建的绝大部分对象在产生之后不久就不再被使用,经典的GC算法正是基于这种内存使用模式,将堆内存进行粗粒度的年代划分,绝大部分瞬时对象会在针对年轻代的Minor GC当中很快被清理。而大数据应用产生的对象有两种,一种是由控制大数据处理框架运行逻辑的代码产生的,即控制路径对象,它们的内存使用模式一般依旧符合弱世代假设。另一种是输入数据和计算中间数据在大数据处理框架中封装生产的,统称为数据路径对象。这种对象的内存使用模式要更加复杂,它们可能在内存中长时间累积或缓存,也可能在一个迭代轮次后被清理和输出。通常来说,数据路径所创建的对象数量远超控制路径。传统GC算法并不能适应大数据环境下内存使用模式的这种变化,原因在于:
  (1)当前GC算法下,长时间存活的数据路径对象最终都会晋升到老年代中,它们在数次Minor GC当中幸存并最终晋升的过程中,需要在内存中多次移动。而对象移动是GC循环当中最耗时的部分,每一次移动都意味着内存读写,而内存位置的改变也需要对相关引用的指针进行更新。考虑到数据路径对象的数量极为庞大,整个晋升过程会消耗大量CPU时间,触发多次GC暂停;
  (2)数据路径对象在晋升到老年代之后,在作业执行的时间尺度上,短时间内也不会被回收。传统的GC算法不会考虑这些对象的存活时间,在涉及到老年代空间的Major GC或者Mixed GC之前还是会整个堆内存空间进行标记扫描,这些标记扫描过程对于长时间存活的数据对象来说是不必要的。当长时间存活对象占用老年代的比例过高,每次传出较大代价的Major GC就只能回收有限大小的空间,可能造成GC频繁触发,部分缓存数据被迫转移到磁盘,甚至出现OOM错误,浪费大量的CPU时间和全局暂停时间,影响到应用执行效率。
  3、JVM与上层框架存在隔阂
  大数据处理框架将计算任务分配到各个执行器JVM节点之后,并不会干预JVM的具体执行过程,每个执行器JVM独立运行,并不感知分布式集群中其它执行器JVM的执行情况,作业的整体进度,以及集群和节点的内存资源使用情况,只是根据自身的运行状态作出触发GC,调整堆内存,进行代码即时编译等决策,而这些决策从历史和全局的角度上观察可能并不是最优的。原因在于:
  (1)JVM不清楚任务执行产生的数据对象特征,例如对象数量、内存占用大小、生命周期等,只能根据弱世代假说,对所有对象进行统一的管理。由于大数据应用产生的大量对象长时间存活,JVM的内存管理效率会受到严重影响,而这些对象本可以通过大数据框架对用户代码和数据流的全局静态分析进行甄别。
  (2)大数据处理框架并不考虑JVM具体的内存管理机制,将所有JVM节点的内存当做连续的全局地址空间,但是实际上JVM在GC算法下对堆内存采取分代管理,存在非连续区域,对象在内存中离散分布,另外大数据处理框架在采用全局地址空间的物理架构下,可能产生大量跨节点对对象引用,给JVM的GC任务带来了远程内存访问的负担。
  (3)大数据处理框架下的JVM之间不清楚彼此的运行情况,如果大数据操作需要在各个JVM之间同步,由于JVM独立进行GC决策,大数据操作的执行就可能被不同的JVM的GC连续打断,另外由于互相不感知,处于同一物理节点的JVM之间可能内存资源分配不合理,而大数据框架在相关问题上缺少统筹协调。
  因此,开发者们需要针对这些问题产生的原因,进行针对性优化。我们下次文章将会继续讨论这个问题。
  喜欢本文的话,欢迎关注活在信息时代 哦:)

陈道明陈宝国发声缅怀陈家林导演,遗愿曝光不搞追悼会一切从简7月7日,导演陈家林因长期患病医治无效去世,享年79岁。据悉,陈家林是长春电影制片厂国家一级导演,也是中广联电视剧导演委员会首任会长,他1979年开启导演生涯,首部作品就获得了文化日本第26届国会参议院选举投票开始修宪与民生议题成为焦点当地时间7月10日7时,日本第26届国会参议院选举投票正式开始。总台记者何欣蕾三年一次的日本参议院选举在10日进行投票,在过去三年中,日本所面对的国际国内局势,都已经发生复杂深刻的国家一级导演陈家林去世,享年79岁,曾执导康熙王朝康熙王朝导演陈家林去世,享年79岁,官方讣告引众网友悲痛7月9日,曾拍摄过康熙王朝的国家一级导演陈家林传出噩耗,他因为长期患病医治无效,于2022年7月7日在北京不幸去世,享年79一起同过窗3首播,口碑扑街,满屏一星差评,换导演,成硬伤7月8日晚间,电视剧一起同过窗第三季正版视频平台多集上线,开启了首播模式。这部电视剧的第一季拿下了9。1分的观众评分,第二季则拿下了8。9分的观众评分。因为观众口碑非常不错,因此,康熙王朝导演陈家林去世,刘晓庆杨幂李光洁卢勇等发文悼念7月9日,娱乐圈再传噩耗,中广联合会电视剧导演委员会对外发布讣告,宣布导演陈家林于7月7日因长期患病医治无效逝世,享年79岁。据悉,陈家林导演出生于1943年,毕业于北京电影学院表知道活在当下,就是修行的开始!真的看懂了搬运原创大方老师身体自我修复研究者昨天有咨询健康的朋友,问怎么加入修行的圈子。又有另外一位读者感叹,修行这件事,别人是真的帮不上忙。我原来也想建一个共修场,集体冥想的共振效应,确实1972年,蒋介石病重,宋美龄不满医生处方,蒋介石这方子妙极了1972年5月20日,蒋介石以85岁的高龄在台北宣布连任,然而在开心之余蒋介石也遇到了很多糟心事,尤其是身体状况的持续恶化让蒋介石更是忧心忡忡。在连任不久后,蒋介石就病重卧床不起,曾国藩家训里的四句话,讲透人生真谛提起晚清名臣曾国藩,相信大家无人不知,无人不晓吧?曾国藩集政治家战略家理学家文学家书法家这几大头衔于一身,又是湘军的创立者和统帅,可谓是能文能武。而且在晚清,能够突破桎梏,提出向西叛逃孤岛,9名英国兵与土著女人联合剿灭土著男人,孕育罪恶习俗追求自由英国作家笛福所写的小说鲁冰逊漂流记讲述了一个探险者流亡海外荒岛,却依靠自己双手建造出一个乐园的故事。但现实里,像小说这样单纯的故事几乎是不可能存在的。很多人都幻想过自己远赴巾帼英雄贺子珍与毛主席历十年风雨,生死与共,后因思念四上庐山在举世闻名的红一方面军的二万五千里长征中,有三十多名女同志跟随部队从瑞金出发,经过江西广东湖南广西贵州云南甘肃等十一个省,历时一年,成功抵达陕北,其中就有刚结束生产的贺子珍。贺子珍荷尔蒙旺盛的女人,一般会有什么特征呢?你中了几条?你觉得是什么让女性朋友觉得自己衰老了呢?是脸上出现的皱纹,还是身上不断变多的赘肉呢?其实女性的衰老和体内的荷尔蒙分泌有着直接的关系,受到女性生理机能的影响,卵巢会不断分泌雌激素来维
最想过的日子上午,我俩出去觅食的路上,聊起了以后想过什么样的日子,毕竟孩子明年就要住校了,新的打算也该想想了。他说他挺同意我的想法,去自己喜欢的地方,过自己喜欢的生活,那样挺好的,一生没有遗憾灯火阑珊处一好梦留人睡一hr旁观者星星躲开了城市的灯光月光倾斜在颓废的短墙二hr百卉千葩灯红酒绿车水马龙莺歌燕舞。现代化的大都市,每一天都有人来,每一天又有人走。有的人来了,有的人走了来的人必然揣着万种总有人在偷看你的朋友圈我们隔着屏幕,相互羡慕作者拾玖天蝎女,即社恐又爱做梦图片来源于网络,侵权联系后台删除仰望星空的人,总以为星星就是宝石,晶莹透亮没有纤瑕。但真正飞上星空的人都知道,那儿也有灰尘石渣,和地球一样复杂。雷抒雁深夜情绪emo文案深夜情绪emo文案1日落归山海,山海藏深意。2故事很短,从陌生人变回了陌生人。3别爱太满,物极必反。4什么都能妥协,也什么都能接受。图片来源于网络,如有侵权请联系删除5心里有一场大来害你的人,喜欢开这几种玩笑01hr老祖宗告诫我们害人之心不可有,防人之心不可无。人与人交往,需要真诚,不要使出任何的诡诈。如果内心有见不得光的一面,社交就会失败,甚至会因此被孤立,蒙受耻辱。做人的道理,很容为什么说,朝鲜满大街的美女都是光棍呢?朝鲜导游无奈地说出隐情为什么说,朝鲜满大街的美女都是光棍呢?朝鲜导游无奈地说出隐情。走进朝鲜旅游,导游作为连接游客与朝鲜各大景点的联络员,导游的作用很大,更何况朝鲜旅游是禁止自由行的,这样一来,朝鲜导游一次搭讪美女顾客后,她对我产生好感,结局她成为我的女人我是一个90后发型师,我这个人最大的爱好莫过于喜欢看美女,跟美女顾客聊天。虽然我这人颜值不高,但是我性格比较开朗活泼幽默风趣。也是如此,吸引了不少的女顾客的喜欢,特别是我身高185你脱发吗?你会种植头发吗?在植发和假发套之间选,你选哪一个?现在的人脱发很严重,不到四十岁很多人就出现了发际线后移的现象,甚至出现局部光秃。于是乎很多人又发现的新的商机,就是种植头发,我最早发现这个业务还是我家孩子家长发的一个朋友圈,因为她王思聪澡堂泡澡被偶遇!穿名牌像网红走路包袱重,美女跟随真羡慕卫衣真的是一件不错的单品,不挑年龄和身材,同时还能随着款式还有穿衣的变化,呈现出不同的风格出来,当然对于男性来说,可能并没有那么多的风格展现,但是时尚感还是很不错的,年轻有活力,可秋冬时髦氛围感穿搭,今天的风格由自己做主冬天是个寒冷的季节,冬天是个甜美的季节。这个季节的氛围感很好地体现在衣服的选择上,就是可以选择不同类型的单品。不同风格的衣服,所呈现出来的效果也是不同的。在这个季节我们穿什么?我觉江疏影魔鬼身材性感迷人不愧是国内第一美腿江疏影的高挑身材显露无疑,笑容甜美,白皙的肌肤,温婉美丽的气质谁能不爱呢?江疏影的高挑身材显露无疑,笑容甜美,白皙的肌肤,温婉美丽的气质谁能不爱呢?江疏影的高挑身材显露无疑,笑容甜