大数据
客户端Client源码分析
客户端提供的资源:jar包 split清单 配置生成的xml文件
*waitForCompletion --提交
*submit
*submitJobInternal 执行5件事
1.检查job的输入输出目录
2.*计算文件切片数量
3.设置/准备job运行环境
4.拷贝当前job的Jar包和配置到HDFS系统目录–隐藏目录
5.提交job到RS并且监控运行状态
*writeSplits
**writeNewSplits
*input
inputFormat<?, ?> input = ReflectionUtils.newInstance(job.getInputFormatClass(), conf);
*getInputFormatClass() 查看父类方法
*conf.getClass(INPUT_ FORMAT_CLASS_ATTR,TextInputFormat.class)
INPUT_ FORMAT_CLASS_ATTR在配置文件中找配置,如果用户有配置取用户配置,如果没有配置,取默认输入格式化类为文本Text类
*getSplits 查看父类方法FileInputFormat <k,v>
*minSize 默认1 maxSize 很大的值
*List 一个文件一个文件的处理,计算切片,输出文件中每一个切片,切片不可跨文件
*blkLocation 取文件的所有的块
*compteSp