1 We must distinguish between the abstract class and the interface with them same name,
  beacause they have different base classes or interfaces.
2 In the class and subclass of InputFormat,we should remember the unit of measurement is Block,
  and the blocks of different files should not be divided into the same split.The 'splitNum' in
  the InputFormat interface only the reference.Of course,we may use it to compute how many 
  Blocks should be divided into one split.
3 the differences between 'ListStatus' and 'globStatus',just in my mind 'ListStatus' may get
  all the files from the directory ,'globStatus' is used for filter some types of files,

  eg. fs.globStatus(new Path("/2007/*") ,new RegexExcludeFilter("^.*/2007/12$"))