MapReduce应用开发常用概念
- Hadoop shell命令
   Hadoop基本shell命令,包括提交MapReduce作业,kill MapReduce作业,进行HDFS文件系统各项操作等。 
- MapReduce输入输出(InputFormat,OutputFormat)
   MapReduce框架根据用户指定的InputFormat切割数据集,读取数据,并提供给map任务多条键值对进行处理,决定并行启动的map任务数目。MapReduce框架根据用户指定的OutputFormat,把生成的键值对输出为特定格式的数据。 map、reduce两个阶段都处理在<key,value>键值对上,也就是说,框架把作业的输入作为一组<key,value>键值对,同样也产出一组<key,value>键值对作为作业的输出,这两组键值对的类型可能不同。对单个map和reduce而言,对键值对的处理为单线程串行处理。 框架需要对key和value的类(classes)进行序列化操作,因此,这些类需要实现Writable接口。另外,为了方便框架执行排序操作,key类必须实现WritableComparable接口。 一个MapReduce作业的输入和输出类型如下所示: (input)<k1,v1> —> map —> <k2,v2> —> 汇总数据 —> <k2,List(v2)> —> reduce —> <k3,v3>(output) 
- 业务核心
   应用程序通常只需要分别继承Mapper类和Reducer类,并重写其map和reduce方法来实现业务逻辑,它们组成作业的核心。 
- MapReduce WebUI界面
   用于监控正在运行的或者历史的MapReduce作业在MapReduce框架各个阶段的细节,以及提供日志显示,帮助用户更细粒度地去开发、配置和调优作业。 
- 归档
   用来保证所有映射的键值对中的每一个共享相同的键组。 
- 混洗
   从Map任务输出的数据到Reduce任务的输入数据的过程称为Shuffle。 
- 映射
   用来把一组键值对映射成一组新的键值对。 
 
  