MapReduce的API介绍
MapReduce自带的InputFormat介绍:
SwquenceFile文件,<K,V>形式的二进制文件:
package squencefile;import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FSDataInputStream;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IOUtils;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.SequenceFile;
import org.apache.hadoop.io.SequenceFile.Writer;
import org.apache.hadoop.io.Text;import java.io.IOException;public class GenerateSwquenceFile {public static void main(String[] args) throws IOException {//1、sequenceFile文件是通过SequenceFile类生成的//createWrite方法参数:conf:hadoop配置项,name:文件名//keyClass:key的数据类型;valClass:值得数据类型//指定文件名称Writer.Option name =Writer.file(new Path("file:/e:sf"));//指定key的类型Writer.Option keyClass=Writer.keyClass(LongWritable.class);//指定value的类型Writer.Option valClass = Writer.valueClass(Text.class);//hadoop配置项Configuration conf=new Configuration();//创建输出流Writer writer= SequenceFile.createWriter(conf,name,keyClass,valClass);//FileSystem fs =FileSystem.get(conf);FSDataInputStream in=fs.open(new Path("file:/e:/words.txt"));String line=null;Long num=0L;while((line = in.readLine() )!=null){++num;writer.append(new LongWritable(num),new Text(line));}//关闭输出流IOUtils.closeStream(writer);}
}
SequenceFileInputFormat的使用:
//输入文件FileInputFormat.addInputPath(job,new Path(args[0]));//指定以SequenceFileInputFormat处理sequenceFIle文件job.setInputFormatClass(SequenceFileInputFormat.class);//编写mapper处理逻辑job.setMapperClass(MyMapper.class);job.setMapOutputKeyClass(Text.class);job.setMapOutputValueClass(LongWritable.class);
inputSplite原理:
输入切片(InputSplite)
1、什么时候切片
client端进行切片,且丰厚交给Yarn进行处理
2、切片中存储的内容
数据长度、数据存储位置
3、切片大小
minSize = max{minSpliteSize,mapred.min.splite.size}
maxSize=mapred.max.splite.size
spliteSize=max{minSize,min{maxSize,blockSize}}
注意:minSpliteSize大小默认为1B;mapper数:文件大小/spliteSize
4、切片数量(mapper进程数量)
总文件大小/切片的大小
reduce个数设置:
outPutFormat输出格式:
注意输入和输出是针对内存和磁盘的,out:磁盘,in:内存。
指定文件输出格式:
//序列化问价的压缩类型:None、Block、RecordSequenceFileOutputFormat.setOutputCompressionType(job, SequenceFile.CompressionType.BLOCK);//default、gzip、lz4SequenceFileOutputFormat.setOutputCompressorClass(job, DefaultCodec.class);//格式化序列化输出job.setOutputFormatClass(SequenceFileOutputFormat.class);
partitioner分区器:
在mapper和reduce处理逻辑之间,shuffle写入流程开始的时候
Shuffle流程介绍:
shuffle流程架构:
shuffler读取流程:
MapReduce的API介绍相关推荐
- 学习笔记Hadoop(十四)—— MapReduce开发入门(2)—— MapReduce API介绍、MapReduce实例
四.MapReduce API介绍 一般MapReduce都是由Mapper, Reducer 及main 函数组成. Mapper程序一般完成键值对映射操作; Reducer 程序一般完成键值对聚合 ...
- HTML5 Audio标签方法和函数API介绍
问说网 > 文章教程 > 网页制作 > HTML5 Audio标签方法和函数API介绍 Audio APIHTML5HTML5 Audio预加载 HTML5 Audio标签方法和函 ...
- Servlet基础(一) Servlet基础和关键的API介绍
转载:http://www.cnblogs.com/mengdd/p/3202550.html Servlet基础(一) Servlet简介 关键API介绍及结合源码讲解 Servlet基础(一) S ...
- Socket基础API介绍
文章目录 1 Socket基础API介绍 1 Socket基础API介绍 我们先来看下使用Socket API建立简易TCP服务端和客户端的步骤: 用Socket API建立简易TCP服务端: 建立一 ...
- TEE Internal core API介绍(globalplatform)
目录 一.TEE的API介绍 1.Cryptographic Operations API 加解密函数介绍() (1).Generic Operation Functions TEE_Allocate ...
- Globalplatform TEE api介绍
文章目录 1.TEE API介绍 2.Client API : CA与TA通信的API介绍 3.TEE API : TA系统调用TEE OS的API (1).Asymmetric (2).Authen ...
- 组合筛选vue_Vue 3 组合式API介绍
组合式API介绍 通过创建 Vue 组件,我们可以将接口的可重复部分及其功能提取到可重用的代码段中.仅此一项就可以使我们的应用程序在可维护性和灵活性方面走得更远.然而,我们的经验已经证明,光靠这一点可 ...
- 科大讯飞cordova语音插件填坑及api介绍
项目要求语音合成,准备调用科大讯飞的cordova插件,百度仅有一篇有价值的参考文章(再吐槽下,百度搜索到各种复制的文章....),谷歌有2篇,但介绍不全,只用typescript列出api,没有ap ...
- MapReduce Java API实例-排序
场景 MapReduce Java API实例-统计单词出现频率: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/11941016 ...
最新文章
- Activiti——数据表结构
- 十二张图详解淘宝架构变迁
- 【如何选】2019我的手机功能需求,千元机功能需求分析手机对比
- 2018年广东年销售额超千亿的企业有哪些?
- .net core在网关中统一配置Swagger
- centos mysql rpm re_CentOS 7 RPM 安装 MySQL5.7
- httpservletresponse 重定向浏览器不变的原因_正确区分火狐浏览器(Firefox)中国版和国际版amp;下载方法...
- Linux 命令 find / -ctime +1 真的是查找1天前创建的文件咩?
- 设计模式系列--Observer
- TED如何和压力做朋友(第四天完)
- python comprehensions_Python中的Comprehensions和Generations
- IOS中常见UI细节和常识
- C# 读取csv、xls、xlsx表格(读取到datatable、sql查询语句读取)
- 提问的智慧 程序员成长之路
- 数据挖掘概念与技术(第三版)课后答案——第一章
- 史上最全idea插件开发入门实战(傻瓜式教程)
- 形容谣言的四字词语_四字词语加解释大全
- PCI/PCIE相关知识
- mysql 回滚sql_Mysql误操作后使用binlog2sql快速回滚
- 安卓测试皮肤的软件有哪些,什么软件可以测肤色 有哪些检测皮肤的app好用为什么...
热门文章
- 分享到:空间等各大网站 代码
- jquery.ui.sortable 笔记
- 汉字转换成拼音的代码(asp版)
- Java中的代理模式
- c语言 信号函数,C语言中进程信号集的相关操作函数详解
- js获取服务器响应头信息,请问,js中请求头信息和返回头信息的方法
- python编写函数判断三角形_使用Python三角函数公式计算三角形的夹角案例
- 邻接矩阵中啥时候写0和无穷_(一)UDS诊断服务中的诊断会话控制(DiagnosticSessionControl,0x10)...
- opengl显示英文_OpenGL-Using Shaders(使用Shader)
- linux 解压安卓内核,解压内核镜像