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

织梦新手网站建设青岛做公司网站的多吗

织梦新手网站建设,青岛做公司网站的多吗,做网站需要懂什么,成功的品牌推广案例分析背景 目前spark的repartition()方法是随机分配数据到下游#xff0c;这会导致一个问题#xff0c;有时候如果我们用repartition方法的时候#xff0c;如果任务发生了重试#xff0c;就有可能导致任务的数据不准确#xff0c;那这个时候改怎么解决这个问题呢#xff1f; …背景 目前spark的repartition()方法是随机分配数据到下游这会导致一个问题有时候如果我们用repartition方法的时候如果任务发生了重试就有可能导致任务的数据不准确那这个时候改怎么解决这个问题呢 分析 在Spark RDD中存在着名为outputDeterministicLevel的变量如下 private[spark] final lazy val outputDeterministicLevel: DeterministicLevel.Value {if (isReliablyCheckpointed) {DeterministicLevel.DETERMINATE} else {getOutputDeterministicLevel}}那么该变量的作用是什么呢让我们分析一下 改变量最终会被Stage的isIndeterminate方法调用 def isIndeterminate: Boolean {rdd.outputDeterministicLevel DeterministicLevel.INDETERMINATE}而该方法会被DAGScheduler调用有两处地方会被调用 submitMissingTasks中调用 private def submitMissingTasks(stage: Stage, jobId: Int): Unit {logDebug(submitMissingTasks( stage ))// Before find missing partition, do the intermediate state clean work first.// The operation here can make sure for the partially completed intermediate stage,// findMissingPartitions() returns all partitions every time.stage match {case sms: ShuffleMapStage if stage.isIndeterminate !sms.isAvailable mapOutputTracker.unregisterAllMapOutput(sms.shuffleDep.shuffleId)case _ } 该方法主要用于在重新提交失败的stage时候用来判断是否需要重新计算上游的所有任务。 handleTaskCompletion中调用 case FetchFailed(bmAddress, shuffleId, _, mapIndex, _, failureMessage) 。。。val noResubmitEnqueued !failedStages.contains(failedStage)failedStages failedStagefailedStages mapStageif (noResubmitEnqueued) {// If the map stage is INDETERMINATE, which means the map tasks may return// different result when re-try, we need to re-try all the tasks of the failed// stage and its succeeding stages, because the input data will be changed after the// map tasks are re-tried.// Note that, if map stage is UNORDERED, we are fine. The shuffle partitioner is// guaranteed to be determinate, so the input data of the reducers will not change// even if the map tasks are re-tried.if (mapStage.isIndeterminate) {这里如果任务Fetch失败了根据该shuffle所对应的上游stage是不是isIndeterminate来向DAGScheduler提交ResubmitFailedStages事件从而调用submitMissingTasks方法进行上游所有任务或者单个任务的重试。 再回到outputDeterministicLevel变量该变量会调用getOutputDeterministicLevel方法进行循环调用上游的outputDeterministicLevel变量来确定outputDeterministicLevel的值。 结论 所以根据以上分析我们可以改写对应的RDD的outputDeterministicLevel变量或者getOutputDeterministicLevel方法来进行stage任务的全部重试与否
http://www.hkea.cn/news/14357150/

相关文章:

  • 国内购物网站排名小说网站建设方案书ppt模板
  • 专门做dm单的网站电商网站建设特色
  • 怎么做一个简易网站北京宣传片
  • 网站建设制作培训如何优化关键词搜索
  • 免费舆情网站网站开发入什么科目
  • 深圳租赁住房和建设局网站分销商城网站开发
  • wordpress汉化手机版镇江网站建设优化
  • 资源网站优化排名优化做彩票网站网址
  • 比利时网站后缀公司注册地址是什么
  • 建网站找哪家公司xml格式文件打开都是乱码
  • 外贸网站seo推广企业网站的页面布局
  • 华亚快印网站开发满分作文网站
  • 记事本做网站怎样学做网站
  • 网站建设网站公司的序wordpress 注册 登录界面
  • 湛江网站设计做电脑回收什么网站好
  • 凤台做网站动画做a视频在线观看网站
  • php建站软件哪个好常州网络推广seo
  • 怎么用wordpress建立自己的网站吗python前端开发需要学哪些东西
  • 一般网站要多大空间wordpress 网店模板
  • 做网站产生的流量费怎么算建筑工程 网络图
  • 网站建设主要问题做电池网站的引导页
  • 长春电商网站建设公司wordpress 登入 跳
  • wap网站模板下载西安有哪些大公司
  • 网站建设包括哪些方面?定制开发网站
  • 网站域名怎么做分录电子商务与网络营销论文
  • 网站文章优化网站的动态是什么意思
  • 女装网站模板闪灵企业建站系统
  • 顺的网站建设服务比58同城做的好的网站
  • 网站摇奖活动怎么做wordpress图片大小
  • 镇江网站设计开发公司电话通辽网站开发招聘