假设我对hdfs中托管的文件执行一些spark操作。像这样:
var file = sc.textFile("hdfs://...") val items = file.map(_.split('\t')) ...
因为在hadoop世界里,代码应该放在数据所在的地方,对吗?所以我的问题是:spark工作人员如何知道hdfs数据节点?spark如何知道在哪些数据节点上执行代码?
g6ll5ycj1#
spark重用hadoop类:当您调用 textFile ,它创建了一个具有 getSplits 方法(拆分大致是一个分区或块),然后每个inputsplit getLocations 以及 getLocationInfo 方法。
textFile
getSplits
getLocations
getLocationInfo
1条答案
按热度按时间g6ll5ycj1#
spark重用hadoop类:当您调用
textFile
,它创建了一个具有getSplits
方法(拆分大致是一个分区或块),然后每个inputsplitgetLocations
以及getLocationInfo
方法。