02 2019 档案
摘要:在上例中,使用Avro框架求出数据的最大值,本例使用Avro对数据排序,输入依然是之前的样本,输出使用文本(也可以输出Avro格式)。 1、在Avro的Schema中直接设置排序方向。 原常量类: 2、mapper 3、reducer 4、job
阅读全文
摘要:在上例中:hadoop MapReduce辅助排序解析,为了求每年的最大数据使用了mapreduce辅助排序的方法。 本例中介绍利用Avro这个序列化框架的mapreduce功能来实现求取最大值。Avro的优点在这里不做扩展。 1、依赖引入,不使用插件 2、定义Avro数据结构,样本依然使用上例的数
阅读全文
摘要:1、数据样本,w1.csv到w5.csv,每个文件数据样本2000条,第一列是年份从1990到2000随机,第二列数据从1-100随机,本例辅助排序目标是找出每年最大值,实际上结果每年最大就是100,但是这里通过mapreduce辅助排序方式来找。 2、核心概念: 3、IntPair,本例把整行数据
阅读全文
摘要:上例中将HDFS里小文件通过mapper压缩到一个文件中,本例将这些小文件解压出来。 mapreduce可以按SequenceFile的key进行分片。 1、mapper 2、job 3、验证,压入SequenceFile和解压后的文件完全相同。
阅读全文
摘要:上一例是直接用SequenceFile的createWriter来实现,本例采用mapreduce的方式。 1、把小文件整体读入需要自定义InputFormat格式,自定义InputFormat格式需要先定义RecordReader读取方式,为了整体读入,RecordReader使用一次性读入所有字
阅读全文
摘要:背景:hdfs上的文件最好和hdfs的块大小的N倍。如果文件太小,浪费namnode的元数据存储空间以及内存,如果文件分块不合理也会影响mapreduce中map的效率。 本例中将小文件的文件名作为key,其内容作为value生成SequenceFile 1、生成文件 查找文件: 2、还原压缩的Se
阅读全文
摘要:1、写入,SequenceFile的key和value不一定是Writable,只要能被Serialization序列化和反序列化就可以。 2、读取,如果key和value使用了Writable,使用next()方法就可以把数据读入到key和value中,对于非Writable的类型的序列化需要根据
阅读全文
摘要:MapReduce任务有三种运行方式: 1、windows(linux)本地调试运行,需要本地hadoop环境支持 2、本地编译成jar包,手动发送到hadoop集群上用hadoop jar或者yarn jar方式运行。 3、本地编译环境在IDE里直接提交到集群上运行,实际上这种方式就是第二种方式的
阅读全文
摘要:hadoop集群搭建参考:https://www.cnblogs.com/asker009/p/9126354.html 1、创建一个maven工程,添加依赖 2、实现cat、copy、filestatus等基本代码,代码可以在windows的IDE环境中正常运行(参考上篇在windows里调试ha
阅读全文
摘要:1、在github上搜索winutils下载winutils.exe相关的一套文件,下载对应hadoop的版本。(https://github.com/steveloughran/winutils) 2、将所有文件复制到hadoop的bin目录下 3、将hadoop.dll复制到windows\sy
阅读全文