mapReduce
mapReduce
输入输出: 都为key value
框架流程:先将数据分片,通过map线程处理,输出到文件里,把相同的key通过网络拷贝到不同的服务器,交给reduce处理再排序后相同的key合并,再将key,value写到磁盘文件里
map进程和reduce进程一般不在同个服务器,通过网络拷贝的方式将数据从map拷贝到reduce
reduce输入要求相同的key在一起,通过key排序
重要的单词
shuffle: 把相同的key通过网络拷贝到不同的服务器
mapReduce1的架构:
JobTracker服务器:
TaskTracker&DataNode服务器:
1、作业jar包存储在HDFS ,在dataNode上(缺省拷5份)
2、提交作业到Jobtracker
3、创建一个数据结构 Jobinprocess,JobTracker分析分成多少个数据块
4、多少个数据块就创建多少个Taskinprocess
inputFormat
getSplits:List<InputSplit>() 将输入文件切分成逻辑的InputSplits,一个InputSplits将被分配给一个单独的Mappertask
createRecordReader:RecordReader<K,V>() 从InputSplits中正确读出一条一条的K-V给Mapper使用
Partitioner: 通过Partitioner对key进行分区。框架默认HashPartitioner,可以自己重写Partitioner
Yarn 架构
资源管理器:资源调度器和应用管理程序
节点管理器:跟HDFS的DataNode进程一起出现
评论 (1 条评论)