在这个案例中我们要实现的是Map端的join,通常情况下我们会将小表放在分布式缓存中,然后将大表通过正常的map阶段与小表进行join,得到一个join之后的结果,这样map之后的结果就是我们想要的结果,那么就不需要reduce了,所以在该案例中,我们只需要自定义Mapper和主类即可。
沿用上一个案例中的两个表,我们把学生基本信息表作为小表,把成绩表作为大表。
- 准备数据
先将数据文件放入HDFS中:
[root@hadoop01 test_data]# hdfs dfs -mkdir /test_distributed_cache
[root@hadoop01 test_data]# hdfs dfs -put map* /test_distributed_cache
我们需要在程序启动时就将小表的数据文件放入分布式缓存中,这一步骤需要在主类中配置才能实现。
新建project:
- 引入pom依赖
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmln