文档介绍:hadoop入门实例教程40
半连接实例
全局作业参数传递
全局数据文件传递
课程目标
实例执行结果:半连接
多数据源连接解决方法的限制
如果数据源两两之间需要进行多个不同的主键和外键的连接,则无法一次性完成数hadoop入门实例教程40
半连接实例
全局作业参数传递
全局数据文件传递
课程目标
实例执行结果:半连接
多数据源连接解决方法的限制
如果数据源两两之间需要进行多个不同的主键和外键的连接,则无法一次性完成数据源的连接
通过多次使用MapReduce过程完成不同主/外键键的连接
例如,有三个数据源,Customers(CustomerID主键)、Orders(OrderID主键,CustomerID外键、ItemID外键)、Products(ItemID主键)
解决方法:设计两个MapReduce作业
第一个作业完成Customers与Orders的连接
第二个作业完成第一个作业的连接结果与Products的连接
全局作业参数/数据的传递
MapReduce作业处理过程中,有时需要让每个节点共享一些重要的计算参数或数据
对于小的计算参数,可以通过Configuration类来传递
对于较大的数据,可以用共享数据文件来进行传递
尽量避免用硬代码方式在程序中设置作业参数,而是设置作业参数
实现一个具有一定通用性的程序,允许任意指定字段作为参数
运行程序时指定需传递的数据
然后该参数作为一个属性保存在Configuration对象中
并允许Map和Reduce节点从Configuration对象中获取和使用该属性值
全局作业参数的传递
Configuration类提供的保存和获取属性的方法
全局作业参数的传递实例
需求:
处理顾客和订单数数据集的连接
连接主键参数希望通过在命令行中给出连接主键的列号来设置
代码实现
将第1个输入参数设置为GroupKeyColIdx属性
全局作业参数的传递实例
在Mapper或Reducer类的初始化方法中从Configuration对象中读取该属性值
查询全局MapReduce作业属性
程序可以通过Configuration对象,使用预定义的属性名称查询计算作业相关的信息
感谢您的关注