NLineInputFormat 案例分析| 学习笔记

开发者学堂课程【Hadoop 分布式计算框架 MapReduc: NLineInputFormat 案例分析学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/94/detail/1506


NLineInputFormat 案例分析


目录:

一、特性

二、使用案例

三、需求分析

 

一、特性

如果使用 NlineInputFormat,代表每个 map 进程处理的 oputSplit 不再按 Block块去划分,而是按 NineInputFormat 指定的行数N来划分。即输入文件的总行数N=切片数,如果不整除,切片数=商+1。

以下是一个示例,仍然以上面的4行输入为例。

Rich learning form

Intelligent learning engine

Learning more convenient

From the real demand for more close to the enterprise

例如,如果 N 是2,则每个输入分片包含两行。开启2个 MapTask。

(0,Rich learning form)

(19,Intelligent learning engine)

另一个 mapper 则收到后两行:

(47. Learning more convenient)

(72.From the real demand for more close to the enterprise)

这里的键和值与 TextInputFormat 生成的一样。

 

二、使用案例

1.需求。

对每个单词进行个数统计,要求根据每个输入文件的行数来规定输出多少个切片。此案例要求每三行放入一个切片中。

(1)输入数据。

banzhang ni hao.

xihuan hadoop banzhang·I

banzhang ni hao.

xihuan hadoop banzhang

banzhang ni hao.

xihuan hadoop banzhang.

banzhang ni hao.

xihuan hadoop banzhang

banzhang ni hao.

xihuanhadoop banzhang banzhang ni hao.

xihuanhadoop banzhang

(2)期望输出数据。

Number of splits:4

三、需求分析。

1、需求:对每个单词进行个数统计,要求每三行放入一个切片中。

2、输入数据

banzhang ni hao

xihuan hado op banzhang dc

banzhang ni hao

xihuan hadoop banzhang dc

banzhang ni hao

xihuan hadoop banzhang dc

banzhang ni hao

xihuan hadoop banzhang dc

banzhang ni hao

xihuan hado op banzhang dc

3、期望输出数据

NARN [org.apache.hadoop.mapreduce.JobResourceUploader] - Hadoop command-line

NARN [org.apache.hadoop.mapreduce.JobResourceUploader]-No job iar file set

INFO [org.apache.hadoop.mapreduce.lib.input.FileInputFormat]- Total input p

INFO [org.apache.hadoop.mapreduce.JobSubmitter] - number of splits:4

INFO [org.apache.hadoop.mapreduce.JobSubmitter] - Submitting tokens for job:

INFO [org.apache.hadoop.mapreduce.Job] - The url to track the job: http://lo INFO[org.apache.hadoop.mapreduce.Job- Running job: job loca1998538859 000 INFO[org.apache.hadoop.mapred.LocalJobRunner]- OutputCommitter set in conf

INFO [org.apache.hadoop.mapreduce.lib.output.FileOutputCommitter] - File Out

4、Map 阶段

(1)获取一行

(2)切割

(3)循环写出

5、Reduce 阶段

(1)汇总

(2)输出

6、 Driver

// 设置每个切片 InputSplit 中划分三条记录

NLinelnputFormat.setNumLinesPerSplit(job.3);

上一篇:[转]Tor Browser在国内Windows平台下的超详细教程


下一篇:使用的组件:ckeditor