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

网站群建设路径wordpress建站教程道一

网站群建设路径,wordpress建站教程道一,做网站对企业有什么好处,如何下载网站模版​​RDD 源码大家可以看到源码中的第五条注释说明#xff0c;翻译过来的大概意思是提供一系列的最佳计算位置。我之前一直不太清楚 spark 是如何内部实现的#xff0c;今天就带领大家来看一看 spark 的本地数据化级别在任务执行中的演变过程。1 数据的本地化级别有哪些#…​ ​RDD 源码大家可以看到源码中的第五条注释说明翻译过来的大概意思是提供一系列的最佳计算位置。我之前一直不太清楚 spark 是如何内部实现的今天就带领大家来看一看 spark 的本地数据化级别在任务执行中的演变过程。1 数据的本地化级别有哪些Spark 中任务的处理需要考虑数据的本地性以 spark 1.6 为例目前支持一下几种。(中英文排版很头疼谁来帮帮我啊)PROCESS_LOCAL 进程本地化表示 task 要计算的数据在同一个 Executor 中。NODE_LOCAL 节点本地化速度稍慢因为数据需要在不同的进程之间传递或从文件中读取。分为两种情况第一种task 要计算的数据是在同一个 worker 的不同 Executor 进程中。第二种task 要计算的数据是在同一个 worker 的磁盘上或在 HDFS 上恰好有 block 在同一个节点上。如果 Spark 要计算的数据来源于 HDFSD 上那么最好的本地化级别就是 NODE_LOCAL。NO_PREF 没有最佳位置数据从哪访问都一样快不需要位置优先。比如 Spark SQL 从 Mysql 中读取数据。RACK_LOCAL 机架本地化数据在同一机架的不同节点上。需要通过网络传输数据以及文件 IO比 NODE_LOCAL 慢。情况一task 计算的数据在 worker2 的 EXecutor 中。情况二task 计算的数据在 work2 的磁盘上。ANY 跨机架数据在非同一机架的网络上速度最慢。如果不是很清楚我画(造)了一张图放在这以供大家理解。​ ​2 Spark 的数据本地化由谁来负责呢val rdd1 sc.textFile(hdfs://tsl...) rdd1.cache()rdd1.map.filter.count()​上面这段简单的代码背后其实做什么很多事情。Driver 的 TaskScheduler 在发送 task 之前首先应该拿到 rdd1 数据所在的位置rdd1 封装了这个文件所对应的 block 的位置DAGScheduler 通过调用 getPrerredLocations() 拿到 partition 所对应的数据的位置TaskScheduler 根据这些位置来发送相应的 task。具体的解释DAGScheduler 切割Job划分Stage, 通过调用 submitStage 来提交一个Stage 对应的 taskssubmitStage 会调用 submitMissingTasks, submitMissingTasks 确定每个需要计算的 task 的preferredLocations通过调用 getPreferrdeLocations() 得到 partition 的优先位置就是这个 partition 对应的 task 的优先位置对于要提交到 TaskScheduler 的 TaskSet 中的每一个task该 task 优先位置与其对应的 partition 对应的优先位置一致。TaskScheduler 接收到了 TaskSet 后TaskSchedulerImpl 会为每个 TaskSet 创建一个 TaskSetManager 对象该对象包含taskSet 所有 tasks并管理这些 tasks 的执行其中就包括计算 TaskSetManager 中的 tasks 都有哪些 locality levels以便在调度和延迟调度 tasks 时发挥作用。总的来说Spark 中的数据本地化是由 DAGScheduler 和 TaskScheduler 共同负责的。3计算节点与输入数据位置的关系下面以一个图来展开 spark 是如何让进行调度的。这一个过程会涉及 RDD, DAGScheduler , TaskScheduler。​ ​第一步PROCESS_LOCAL TaskScheduler 根据数据的位置向数据节点发送 task 任务。如果这个任务在 worker1 的 Executor 中等待了 3 秒。(默认的可以通过spark.locality.wait 来设置)可以通过 SparkConf() 来修改重试了 5 次之后还是无法执行TaskScheduler 就会降低数据本地化的级别从 PROCESS_LOCAL 降到 NODE_LOCAL。第二步NODE_LOCALTaskScheduler 重新发送 task 到 worker1 中的 Executor2 中执行如果 task 在worker1 的 Executor2 中等待了 3 秒重试了 5 次还是无法执行TaskScheduler 就会降低数据本地化的级别从 NODE_LOCAL 降到 RACK_LOCAL。第三步RACK_LOCALTaskScheduler重新发送 task 到 worker2 中的 Executor1 中执行。第四步当 task 分配完成之后task 会通过所在的 worker 的 Executor 中的 BlockManager 来获取数据。如果 BlockManager 发现自己没有数据那么它会调用 getRemote() 方法通过 ConnectionManager 与原 task 所在节点的 BlockManager 中的 ConnectionManager先建立连接然后通过TransferService(网络传输组件)获取数据通过网络传输回task所在节点(这时候性能大幅下降大量的网络IO占用资源)计算后的结果返回给Driver。这一步很像 shuffle 的文件寻址流程Spark 的 shuffle 文件寻址流程4TaskScheduler在发送task的时候会根据数据所在的节点发送task,这时候的数据本地化的级别是最高的如果这个task在这个Executor中等待了三秒重试发射了5次还是依然无法执行那么TaskScheduler就会认为这个Executor的计算资源满了TaskScheduler会降低一级数据本地化的级别重新发送task到其他的Executor中执行如果还是依然无法执行那么继续降低数据本地化的级别...如果想让每一个 task 都能拿到最好的数据本地化级别那么调优点就是等待时间加长。注意如果过度调大等待时间虽然为每一个 task 都拿到了最好的数据本地化级别但是我们 job 执行的时间也会随之延长。下面是官方提供的参数说明​ ​可以在代码里面这样设置​new SparkConf.set(spark.locality.wait
http://www.sadfv.cn/news/149975/

相关文章:

  • 成都市网站建设费用及企业凡科建站网站
  • 网站后台管理默认密码php网站建设实训报告
  • o2o网站建设行情自己建设网站
  • 网站建设需要哪些功能怎么做网站相册
  • 用什么网站做微信推送怎样用模板建一个网站
  • 常平东站是东莞东站吗wordpress加关键字
  • 在网站上做送餐外卖需要哪些资质官网查询网站
  • 中山网站建设文化效果公司网站有哪些重要性
  • 海口企业网站开发一起装修网北京总部官网
  • 创建一个网站的项目体现项目完成速度因素的网站建设 方案
  • 开发区网站建设网址大全百度
  • wordpress仿站服务互联网之光博览会
  • 建设设计公司网站wordpress pdf手册
  • 网站改版汇报app推广刷量
  • dede酒业企业网站模板采集网站图片
  • 丹阳做网站免费图标下载网站
  • 中文搜索引擎网站宁波市建设集团股份有限公司
  • 网站应该怎么做建设校园网站公司
  • 网站规划方案模板品牌app定制开发
  • 建站系统下载上海企业网站制作哪家专业
  • 江苏做网站价格天津企业网站设计制作
  • 知道ip域名如何进入网站网络设备维护是做什么的
  • 如何注册网站怎么注册wordpress悬浮工单
  • 如何做qq钓鱼网站通讯录管理网站建设
  • 网站的开发流程深圳网站优化价格
  • 网站如何申请微信支付功能wordpress的优点
  • 城乡建设网站首页横沥网站建设公司
  • 南通企业网站排名优化wordpress自定义文章编辑页面
  • 个人电子商务网站建设樱桃视频大全免费高清版观看下载
  • 茂名网站建设维护公司网站建设山东