摘要:
"单表关联"这个实例要求从给出的数据中寻找所关心的数据,它是对原始数据所包含信息的挖掘。需求:实例中给出 child-parent(孩子—父母)表,要求输出 grandchild-grandparent(孙子—爷奶)表。package test;import java.io.IOException;... 阅读全文
摘要:
HDFS被设计来存储大文件,而有时候会有大量的小文件生成,造成NameNode资源的浪费,同时也影响MapReduce的处理效率。有哪些方案可以合并这些小文件,或者提高处理小文件的效率呢?1). 所有HDFS小文件数据导出到本地单个文件后,再存入HDFS[root@ncst ~]# hadoop f... 阅读全文
摘要:
类似于Linux管道重定向机制,前一个Map的输出直接作为下一个Map的输入,形成一个流水线。设想这样一个场景:在Map阶段,数据经过mapper01和mapper02处理;在Reduce阶段,数据经过sort和shuffle后,交给对应的reducer处理。reducer处理后并没有直接写入到Hd... 阅读全文
摘要:
可以继承基类Partitioner,也可以继承默认的HashPartitioner类,覆写其中的 getPartition() 方法实现自己的分区。需求:本例是对上一个实例的改写,需求不变package country;import java.io.IOException;import java.i... 阅读全文
摘要:
问题描述:现有 ip-to-hosts.txt 数据文件,文件中每行数据有两个字段:分别是ip地址和该ip地址对应的国家,以'\t'分隔。要求汇总不同国家的IP数,并以国家名为文件名将其输出。解读:MultipleOutputs类测试数据:ip-to-hosts.txt18.217.167.70 U... 阅读全文
摘要:
数据输入格式InputFormat类用于描述MR作业的输入规范,主要功能:输入规范检查(比如输入文件目录的检查)、对数据文件进行输入切分和从输入分块中将数据记录逐一读取出来、并转化为Map的输入键值对。细节详见解读:标准输入/输出格式Hadoop中最常用的数据输入格式包括:TextInputForm... 阅读全文
摘要:
以IntWritable为例介绍,定制writable的步骤//继承 WritableComparable接口(继承了writable接口和comparable接口)public class IntWritable implements WritableComparable {//定义普通java类... 阅读全文
摘要:
序列化(serialization)是指将结构化的对象转化字节流,以便在进程间通信或写入硬盘永久存储。反序列化(deserialization)是指将字节流转回到结构化对象的过程。需要注意的是,能够在网络上传输的只能是字节流。所以,Map的中间结果在不同主机间Shuffle洗牌时,结构化对象将经历序... 阅读全文