当前位置: 首页 > news >正文

做网站如何大网页网站建设汇报评估

做网站如何大网页,网站建设汇报评估,安徽网架公司,wordpress主机配置简介#xff1a; 本文主要讲解MaxCompute Spark资源调优#xff0c;目的在于在保证Spark任务正常运行的前提下#xff0c;指导用户更好地对Spark作业资源使用进行优化#xff0c;极大化利用资源#xff0c;降低成本。 本文作者#xff1a;吴数傑 阿里云智能 开发工程师 …简介 本文主要讲解MaxCompute Spark资源调优目的在于在保证Spark任务正常运行的前提下指导用户更好地对Spark作业资源使用进行优化极大化利用资源降低成本。 本文作者吴数傑 阿里云智能 开发工程师 1. 概述 本文主要讲解MaxCompute Spark资源调优目的在于在保证Spark任务正常运行的前提下指导用户更好地对Spark作业资源使用进行优化极大化利用资源降低成本。 2. Sensor Sensor提供了一种可视化的方式监控运行中的Spark进程每个workerExecutor及masterDriver都具有各自的状态监控图可以通过Logview中找到入口如下图所示    打开Sensor之后可以看到下图提供了Driver/Executor在其生命周期内的CPU和内存的使用情况 cpu_plan/mem_plan蓝线代表了用户申请的CPU和内存计划量 用户可以直观地从cpu_usage图中看出任务运行中的CPU利用率mem_usage代表了任务运行中的内存使用是mem_rss和page cache两项之和详见下文Memory Metrics mem_rss 代表了进程所占用了常驻内存这部分内存也就是Spark任务运行所使用的实际内存通常需要用户关注如果该内存超过用户申请的内存量就可能会发生OOM导致Driver/Executor进程终止。此外该曲线也可以用于指导用户进行内存优化如果实际使用量远远小于用户申请量则可以减少内存申请极大化利用资源降低成本。 mem_cachepage_cache用于将磁盘中的数据缓存到内存中从而减少磁盘I/O操作通常由系统进行管理如果物理机内存充足那么mem_cache可能会使用很多用户可以不必关心该内存的分配和回收。3. 资源参数调优 1Executor Cores 相关参数spark.executor.cores 每个Executor的核数即每个Executor中的可同时运行的task数目 Spark任务的最大并行度是num-executors * executor-coresSpark任务执行的时候一个CPU core同一时间最多只能执行一个Task。如果CPU core数量比较充足通常来说可以比较快速和高效地执行完这些Task。同时也要注意每个Executor的内存是多个Task共享的如果单个Executor核数太多内存过少那么也很可能发生OOM。 2Executor Num 相关参数spark.executor.instances 该参数用于设置Spark作业总共要用多少个Executor进程来执行 通常用户可以根据任务复杂度来决定到底需要申请多少个Executor此外需要注意如果出现Executor磁盘空间不足或者部分Executor OOM的问题可以通过减少单个Executor的cores数增加Executor的instances数量来保证任务总体并行度不变同时降低任务失败的风险。 3Executor Memory 相关参数spark.executor.memory 该参数用于设置每个Executor进程的内存。Executor内存的大小很多时候直接决定了Spark作业的性能而且JVM OOM在Executor中更为常见。相关参数2spark.executor.memoryOverhead 设置申请Executor的堆外内存主要用于JVM自身字符串, NIO Buffer等开销注意memoryOverhead 这部分内存并不是用来进行计算的用户代码及spark都无法直接操作。 如果不设置该值那么默认为spark.executor.memory * 0.10最小为384 MB Executor 内存不足的表现形式 在Executor的日志Logview-某个Worker-StdErr中出现Cannot allocate memory在任务结束的Logview result的第一行中出现The job has been killed by OOM Killer, please check your jobs memory usage.在Sensor中发现内存使用率非常高在Executor的日志中出现java.lang.OutOfMemoryError: Java heap space在Executor的日志中出现GC overhead limit exceededSpark UI中发现频繁的GC信息可能出现OOM的间接表现形式部分Executor出现No route to host: workerd********* / Could not find CoarseGrainedScheduler等错误 可能原因及解决方案 限制executor 并行度将cores 调小多个同时运行的 Task 会共享一个Executor 的内存使得单个 Task 可使用的内存减少调小并行度能缓解内存压力增加单个Executor内存 增加分区数量减少每个executor负载考虑数据倾斜问题因为数据倾斜导致某个 task 内存不足其它 task 内存足够如果出现了上文所述的Cannot allocate memory或The job has been killed by OOM Killer, please check your jobs memory usage这种情况通常是由于系统内存不足可以适当增加一些堆外内存来缓解内存压力通常设置spark.executor.memoryOverhead为1g/2g就足够了 4Driver Cores 相关参数spark.driver.cores 通常Driver Cores不需要太大但是如果任务较为复杂如Stage及Task数量过多或者Executor数量过多Driver需要与每个Executor通信并保持心跳在Sensor中看到Cpu利用率非常高那么可能需要适当调大Driver Cores 另外要注意在Yarn-Cluster模式运行Spark任务不能直接在代码中设置Driver的资源配置core/memory因为在JVM启动时就需要该参数因此需要通过--driver-memory命令行选项或在spark-defaults.conf文件/Dataworks配置项中进行设置。 5Driver Memory 相关参数1spark.driver.memory 设置申请Driver的堆内内存与executor类似相关参数2spark.driver.maxResultSize代表每个Spark的action例如collect的结果总大小的限制默认为1g。如果总大小超过此限制作业将被中止如果该值较高可能会导致Driver发生OOM因此用户需要根据作业实际情况设置适当值。相关参数3spark.driver.memoryOverhead设置申请Driver的堆外内存与executor类似Driver的内存通常不需要太大如果Driver出现内存不足通常是由于Driver收集了过多的数据如果需要使用collect算子将RDD的数据全部拉取到Driver上进行处理那么必须确保Driver的内存足够大。表现形式Spark应用程序无响应或者直接停止 在Driver的日志Logview-Master-StdErr中发现了Driver OutOfMemory的错误Spark UI中发现频繁的GC信息在Sensor中发现内存使用率非常高在Driver的日志中出现Cannot allocate memory 可能原因及解决方案代码可能使用了collect操作将过大的数据集收集到Driver节点在代码创建了过大的数组或者加载过大的数据集到Driver进程汇总SparkContextDAGScheduler都是运行在Driver端的。对应rdd的Stage切分也是在Driver端运行如果用户自己写的程序有过多的步骤切分出过多的Stage这部分信息消耗的是Driver的内存这个时候就需要调大Driver的内存。有时候如果stage过多Driver端甚至会有栈溢出 6本地磁盘空间 相关参数spark.hadoop.odps.cupid.disk.driver.device_size 该参数代表为单个Driver或Executor申请的磁盘空间大小默认值为20g最大支持100g Shuffle数据以及BlockManager溢出的数据均存储在磁盘上 磁盘空间不足的表现形式 在Executor/Driver的日志中发现了No space left on device错误解决方案最简单的方法是直接增加更多的磁盘空间调大spark.hadoop.odps.cupid.disk.driver.device_size 如果增加到100g之后依然出现该错误可能是由于存在数据倾斜shuffle或者cache过程中数据集中分布在某些block也可能是单个Executor的shuffle数据量确实过大可以尝试 对数据重分区解决数据倾斜问题 增加executor的数量spark.executor.instances需要注意缩小读表并发spark.hadoop.odps.input.split.size缩小单个Executor的任务并发spark.executor.cores同样由于在JVM启动前就需要挂载磁盘因此该参数必须配置在spark-defaults.conf文件或者dataworks的配置项中不能配置在用户代码中 此外需要注意该参数的单位为g不能省略g很多时候由于用户配置位置有误或者没有带单位g导致参数实际并没有生效任务运行依然失败 4. 总结 上文主要介绍了MaxCompute Spark在使用过程中可能遇到的资源不足的问题及相应的解决思路为了能够最大化利用资源首先建议按照1: 4的比例来申请单个worker资源即1 core: 4 gb memory如果出现OOM那么需要查看日志及Sensor对问题进行初步定位再进行相应的优化和资源调整。不建议单个Executor Cores 设置过多通常单个Executor在2-8 core是相对安全的如果超过8那么建议增加instance数量。适当增加堆外内存为系统预留一些内存资源也是一个常用的调优方法通常在实践中可以解决很多OOM的问题。最后用户可以参考官方文档https://spark.apache.org/docs/2.4.5/tuning.html包含更多的内存调优技巧如gc优化数据序列化等。 原文链接 本文为阿里云原创内容未经允许不得转载。
http://www.pierceye.com/news/282583/

相关文章:

  • php网站开发文档模板玖壹购网站是做啥子的
  • 海报模板网站有哪些小程序电商平台排名
  • 百度一下百度网站苏州优秀网站设计企业
  • 通信管理局网站备案cms网站建设的实训总结
  • 西安知名网站建设公司百度网页版微信
  • 单纯python能完成网站开发吗门户网站衰落的原因
  • 唐山微网站建设价格宁波外贸网站推广优化
  • 如何能把网站做的更大赤峰网站建设赤峰
  • 织梦大气绿色大气农业能源化工机械产品企业网站源码模版网站设计是用ps做图吗
  • 长沙建设网站公司浙江网站建设上市公司
  • 成都艾邦视觉专业网站建设公司有内涵大气的公司名字
  • 制作学校网站编程基础知识大全
  • 建设银行网站买手机阿里云已备案域名购买
  • 12个优秀的平面设计素材网站wordpress 标题 拼音
  • 瑶海区网站建设公司上海app开发定制公司
  • 北海建设厅网站局域网的电脑怎么做网站服务器
  • 莱芜网站建设价格域名注册成功后怎么使用网站
  • 衡阳县建设局网站wordpress 图片缓存
  • 浙江门户网站建设公司新闻稿发布
  • 温州网站建设排名wordpress 汉化失败
  • 做数据可视化的网站推广类软文案例
  • 外包做网站的要求怎么写做网站 360
  • 温州网站建设价格技术微信公众号免费开通
  • 做网站推广销售怎么样辽宁省网站备案系统
  • html公司网站模板源码企业信息填报系统
  • 有口碑的赣州网站建设微信开放社区
  • 外贸网站做SEO电脑浏览器打不开网页是什么原因
  • 做网站需要下载啥google建站推广
  • 沈阳哪里有教做网站的会做网站怎么赚钱
  • iis如何做同时运行两个网站80端口做汽车网站费用