Hadoop :分布式缓存
一、 实验目的
- 理解序列化与反序列化;
- 熟悉 Configuration 类;
- 学会使用 Configuration 类进行参数传递;
- 学会在 Map 或 Reduce 阶段引用 Configuration 传来的参数;
- 理解分布式缓存“加载小表、扫描大表”的处理思想。
二、 实验要求
假定现有一个大为 100G 的大表 big.txt 和一个大小为 1M 的小表 small.txt,请基于
MapReduce 思想编程实现判断小表中单词在大表中出现次数。也即所谓的“扫描大表、
加载小表”。
三、 实验步骤
为解决上述问题,可开启 10 个 Map、这样,每个 Map 只需处理总量的 1/10,将大
大加快处理。而在单独 Map 内,直接用 HashSet 加载“1M 小表”,对于存在硬盘(Map
处理时会将 HDFS 文件拷贝至本地)的 10G 大文件,则逐条扫描,这就是所谓的“扫描
大表、加载小表”,也即分布式缓存。
大数据实验手册 Hadoop 实验 :分布式缓存
由于实验中没有 100G 这样的大表,甚至连 1M 这样的小表都没有,因为本实验采用
模拟方式,用少量数据代表大文件 big.txt,更少量数据代表 small.txt。整个实验步骤为
1.创建两个.txt文件(big.txt small.txt)
将这两个文档用XFTP 传入到虚拟机中
注意我传入的目录路径哟!
2.在IntelliJ IDEA 中编写Java代码:创建一个BigAndSmallTable类
注意:需要导