前言
spark怎么知道读取的是本地文件还是hdfs的文件呢?
前面写过一篇博客【spark2的textFile()是怎么实例化各个不同的fs(FileSystem)】,主要是指【本地文件系统】和【hadoop文件系统】,我们看到源码里最后是根据文件路径url的scheme来判断的:
file: LocalFileSystem
hdfs: DistributeFileSystem
1、从InputSplit[] getSplits(JobConf job, int numSplits)说起
因为前部分是跟读取本地文件是一样的,所以不重复写了。
集群blockSzie=256M,hdfs文件blockSize=256M:
集群blockSzie=256M,hdfs文件blockSize=128M:
结论:blockSize跟集群的配置无关,至于hdfs文件真实的blockSize有关