为了账号安全,请及时绑定邮箱和手机立即绑定

Hadoop如何实现将计算逻辑分发到各个子节点上的

Hadoop如何实现将计算逻辑分发到各个子节点上的

宝慕林4294392 2019-04-19 18:19:12
在研究了一段hadoop后,对hadoop的分布式架构有了一定的了解,都知道移动计算比移动数据效率更高,那么hadoop是如何将计算移动到各个节点上进行计算的呢?我猜想是将计算的逻辑和其依赖的包都分发到了各个节点上,然后再在各自的节点上进行计算,不知道是不是这样,希望大家能把细节补充的更完善。
查看完整描述

3 回答

?
繁星coding

TA贡献1797条经验 获得超4个赞

Hadoop 的NameNode 知道集群的计算资源分布,数据存储分布.

在分布任务的时候,需要对数据进行切分,然后进行计算. 这个时候分配就需要考虑数据的存储位置.

Hadoop会尽量将计算分布到数据存储的节点上.
如果存储的节点没用资源,比如CPU完全被占用.那会尽量将计算分布到数据存贮节点相同机架上的节点进行计算.
最后如果还是没办法做到,那就只能随机的选取一个节点了.

当然是所有的Spring jar也会传递上去,然后下载下来. 要不执行MR的JVM到哪去Load需要的class文件.

根据经验,通常我都是直接打成一个大包,这样就会方便很多. 这个Jar包最好会上传到 mapred.jar 指定的地址(下面是一个例子), Job完了会删除Jar文件. hdfs://h03:8020/user/root/.staging/job_201408140358_0030/job.jar

那些维护对象的关联关系的配置文件肯定也是要传上去的,并且读取文件不能使用绝对路径,寻找路径要依赖于Classpath. 如果你自己定义了一些配置文件,也是同样的道理. 楼主准备结贴吗?

查看完整回答
反对 回复 2019-05-06
  • 3 回答
  • 0 关注
  • 977 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号