InputFormat到key-value生成流程

public abstract class InputFormat<K, V> {

public abstract
    List<InputSplit> getSplits(JobContext context
                               ) throws IOException, InterruptedException;
 
  public abstract
    RecordReader<K,V> createRecordReader(InputSplit split,
                                         TaskAttemptContext context
                                        ) throws IOException,
                                                 InterruptedException;

}

public abstract class FileInputFormat<K, V> extends InputFormat<K, V> {

public class TextInputFormat extends FileInputFormat<LongWritable, Text> {

getSplits方法,获得对输入文件的切分数量,每一个split对应一个map。
创建RecordReader,该RecordReader接收切分好的split,实现nextKeyValue、getCurrentKey、getCurrentValue。

如下所示,每个map类都会继承Mapper类,在Mapper类中,run方法会调用InputFormat中的RecordReader来获得key、value

public class Mapper<KEYIN, VALUEIN, KEYOUT, VALUEOUT> {
  /**
   * Expert users can override this method for more complete control over the
   * execution of the Mapper.
   * @param context
   * @throws IOException
   */
  public void run(Context context) throws IOException, InterruptedException {
    setup(context);
    try {
      while (context.nextKeyValue()) {
        map(context.getCurrentKey(), context.getCurrentValue(), context);
      }
    } finally {
      cleanup(context);
    }
  }
}

时间: 2024-10-11 23:03:01

InputFormat到key-value生成流程的相关文章

ecshop微信支付(0923更新)商户支付密钥key的生成与设置

ECSHOP 微信支付(0923更新)商户支付密钥key的生成与设置 说明:新版微信支付,用户必须授权登录才能支付.需要商家自己设置商户号支付密钥. 申请微信支付手机版部分时需要填写的配置接口地址: 1.在微信公众平台设置好支付授权目录. http(s)://域名/mobile/ 支付请求实例:http(s)://域名/mobile/weixin/open-api.php 2.维权通知URL:http(s)://域名/mobile/weixin/wxpay_activists_recall.ph

微信支付(20140923更新)商户支付密钥key的生成与设置

微信支付(0923更新)商户支付密钥key的生成与设置 说明:新版微信支付,用户必须授权登录才能支付.需要商家自己设置商户号支付密钥. 设置商户号支付密钥方法如下: 1. 申请通过审核后,打开微信发来的邮件. 直接获取微信支付商户号(接口文档中的商户号MCHID):(也叫 受理商ID 填写到后台). 商户支付密钥key 按以下步骤自己设置生成. 2 点击访问 新商户平台http://mch.weixin.qq.com 或https://pay.weixin.qq.com,用账号和密码登录.并安装

小程序名片生成流程(附图)

随着小程序的大热,小程序的使用在目前已经越来越广泛了,小到一张名片也是用小程序就可以完成了,完全代替了以前的纸质名片.而且小程序名片功能非常多,使用起来也便捷.下面就为大家介绍小程序名片生成流程.第一步:打开手机微信页面,在小程序里搜索这款小程序.第二步:**点击进去后,依据提示逐步填写资料,随后变生成了一张属于自己的小程序名片. 原文地址:http://blog.51cto.com/13885107/2150417

大数据技术之_05_Hadoop学习_02_MapReduce_MapReduce框架原理+InputFormat数据输入+MapReduce工作流程(面试重点)+Shuffle机制(面试重点)

第3章 MapReduce框架原理3.1 InputFormat数据输入3.1.1 切片与MapTask并行度决定机制3.1.2 Job提交流程源码和切片源码详解3.1.3 FileInputFormat切片机制3.1.4 CombineTextInputFormat切片机制3.1.5 CombineTextInputFormat案例实操3.1.6 FileInputFormat实现类3.1.7 KeyValueTextInputFormat使用案例3.1.8 NLineInputFormat使

SSH Key的生成与使用(Window)

使用SSH Key的好处是不用每次提交代码都要填写github的用户名和密码. 一.生成SSH Key 1.填写邮箱: ssh-keygen -t rsa -C "注册邮箱" 然后.ssh目录下有两个文件,id_rsa是私钥 id_rsa.pub是公钥 2.按提示输入密码: 3.启动ssh-agent ssh-agent -s 4.添加将生成的key添加到id_rsa文件里,(提示输入密码时,输入刚才的密码)  ssh-add ~/.ssh/id_rsa 5.获取key内容  star

Android集成Facebook sdk,Key Hashes生成步骤

如上图所示,使用facebook sdk进行login和share的时候,需要新建android平台,用到key hashes,生成方法有两种: 方法一: keytool -exportcert -alias 'Nom Nom Eat' -keystore nomnom.jks |openssl sha1 -binary | openssl base64 注意事项: 1,使用上述命令请替换-alias 和 -keystore后面的东西,只需要替换这两处即可. 2,-alias后面跟的是自己的ke

关于git SSH Key的 生成

最近刚接触git,简直就是一小白用户,所以决定自己记录一些东西,以备不时之需 系统环境:Windows 1.首先下载git,http://git-scm.com/download/ 2.正常安装git 3.建一个自己的目录,然后右键点击git bash 4.设置Git的你自己的user name和email: $ git config --global user.name "yourname" $ git config --global user.email "yourema

总账和日记账生成流程

总账: 日记账:

ipa文件生成流程

1,在OSX系统上启动iTunes程序2,启动Xcode,将项目中的yourProject/Products/yourProject.app 按住command键然后用鼠标拖放到iTunes的应用程序栏目3,然后在iTunes程序中右键点击"yourProject"图标,在弹出的的菜单中选择"在Finder中显示",这样你就看到ipa文件的路径了.