我的理解 getSplits() 是, FileInputformat 类实现 Inputformat 接口,它具有 getSplits() 方法,该方法负责计算分割大小和文件长度。 getSplits() 有一个参数 numSplits . 默认情况下,会传递给它什么?我试着找,但没找到。我想如果 isSplittable() 那么是假的吗 0 会被传给其他人。但是有人能帮我知道值是如何传递的以及代码的相关部分吗。
getSplits()
FileInputformat
Inputformat
numSplits
isSplittable()
0
vh0rcniy1#
我想谈谈我对这一点的理解。这个 getSplits(JobConf job, int numSplits) 方法 FileInputFormat 类来自mapreduce的旧api。这里给出的numsplits只是一个提示,在实际计算中,split还依赖于其他一些默认和用户配置。通常,inputsplit计算中不需要此参数,只有在用户希望重写时才有用。请参考,http://hadoop.apache.org/docs/r2.6.0/api/org/apache/hadoop/mapred/fileinputformat.html这个 numSplits 参数由 JobClient 类,默认值为1,其中值为 job.getNumMapTasks() ,并调用fileinputformat类上的getsplits方法。请参阅,http://grepcode.com/file/repository.cloudera.com/content/repositories/releases/com.cloudera.hadoop/hadoop-core/0.20.2-737/org/apache/hadoop/mapred/jobclient.java这个 isSplittable() 方法在决定 numSplits 参数,所有这些都与fileinputformat类中使用的布尔值有关。根据新的MapReduceAPI numSplits 中不再需要参数 FileInputFormat 请参考,https://hadoop.apache.org/docs/r2.2.0/api/org/apache/hadoop/mapreduce/lib/input/fileinputformat.html希望这有帮助。。
getSplits(JobConf job, int numSplits)
FileInputFormat
JobClient
job.getNumMapTasks()
1条答案
按热度按时间vh0rcniy1#
我想谈谈我对这一点的理解。
这个
getSplits(JobConf job, int numSplits)
方法FileInputFormat
类来自mapreduce的旧api。这里给出的numsplits只是一个提示,在实际计算中,split还依赖于其他一些默认和用户配置。通常,inputsplit计算中不需要此参数,只有在用户希望重写时才有用。请参考,http://hadoop.apache.org/docs/r2.6.0/api/org/apache/hadoop/mapred/fileinputformat.html
这个
numSplits
参数由JobClient
类,默认值为1,其中值为job.getNumMapTasks()
,并调用fileinputformat类上的getsplits方法。请参阅,http://grepcode.com/file/repository.cloudera.com/content/repositories/releases/com.cloudera.hadoop/hadoop-core/0.20.2-737/org/apache/hadoop/mapred/jobclient.java
这个
isSplittable()
方法在决定numSplits
参数,所有这些都与fileinputformat类中使用的布尔值有关。根据新的MapReduceAPI
numSplits
中不再需要参数FileInputFormat
请参考,https://hadoop.apache.org/docs/r2.2.0/api/org/apache/hadoop/mapreduce/lib/input/fileinputformat.html
希望这有帮助。。