请教spark RDD计算

查看数: 9572 | 评论数: 6 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2017-2-22 16:01

正文摘要:

本帖最后由 SuperDove 于 2017-2-22 16:19 编辑 原贴为Spark SQL 统计分析案例介绍 现截出部分代码 [mw_shl_code=applescript,true]val spark = SparkSession.builder().appName("count201702211631").getO ...

回复

ledasion 发表于 2017-2-28 11:28:01
学习了  
leletuo2012 发表于 2017-2-23 13:22:45
提交在哪
任务在哪跑
数据在哪
这几个关系分清楚
langke93 发表于 2017-2-22 21:49:42
SuperDove 发表于 2017-2-22 18:45
按照你说的,我在节点slave1处用sbin/spark-submit提交了作业spark-submit --master spark://master:7077 ...

这个跟在哪提交没有关系的。
关键是任务分配在什么地方,跑任务的地方跟数据的关系。
而不是在哪提交,任务就跑在哪台机器。所以关键还是跑任务与数据的机器是否一台。
楼主有一个错误的认识,就是我在那台机器上提交,任务就会跑在哪台。其实你在哪提交是无所谓的事情。
所以还是需要从配置入手。将数据本地化,也就是任何和数据同时在一台机器上。
qcbb001 发表于 2017-2-22 17:12:32
其实说白了,就是楼主的数据和跑任务的节点不在一个节点上,导致任务的输入数据要跑到别的节点上取数据
qcbb001 发表于 2017-2-22 17:07:26
其实这个代表task 的计算节点和 task 的输入数据的节点位置关系

  • PROCESS_LOCAL: 数据在同一个 JVM 中,即同一个 executor 上。这是最佳数据 locality。
  • NODE_LOCAL: 数据在同一个节点上。比如数据在同一个节点的另一个 executor上;或在 HDFS 上,恰好有 block 在同一个节点上。速度比 PROCESS_LOCAL 稍慢,因为数据需要在不同进程之间传递或从文件中读取
  • NO_PREF: 数据从哪里访问都一样快,不需要位置优先
  • RACK_LOCAL: 数据在同一机架的不同节点上。需要通过网络传输数据及文件 IO,比 NODE_LOCAL 慢
  • ANY: 数据在非同一机架的网络上,速度最慢

关闭

推荐上一条 /2 下一条