一个公有继承Mapper的map器一个公有继承reducer的reduce器,模板如下:
其中localmapper类中的map方法用来自定义洗牌规则localreducer类中的reduce方法用来自定义展示规则,一个示例:
/* 从文本中获取输入 */ /* 根据筛选条件洗牌这里要求value不是100 */ /* 遍历一个key的所有value,根据筛选条件展示输出这里选择最大值 */
这里要带上-pthread,因为hadoop内部是并发算法编译之后得到a.out
其中第┅行创建一个隐藏文件夹helloworld,后面两行将可执行文件和input放入此文件下
5.启动任务脚本如下:
其中input参数指出输入文件的路径,output指出输出文件在hdfsΦ存放位置会重新创建新的,要求这个文件之前不能存在program指出可执行文件路径,执行后结果如下表示成功:
这一行指出作业有一个输叺:
通过如下3行可以看到hadoop框架的处理流程先执行map,map全部执行完毕之后执行reduce:
这里a中值为100的被排除了,剩下的最大的是67b中最大的是99
这裏存储每个作业的日志,如下:
8.查看每个datanode处理了多少作业:
这里将a.out执行两次看效果,这里有两个datanode在第一个datanode下查看日志如下:
第二个datanode下查看日志如下:
但是注意作业不是均分到两个datanode上的,再次执行查看日志如下:
这里可以看到master只处理了1个,slave1处理了3个
一个公有继承Mapper的map器一个公有继承reducer的reduce器,模板如下:
其中localmapper类中的map方法用来自定义洗牌规则localreducer类中的reduce方法用来自定义展示规则,一个示例:
/* 从文本中获取输入 */ /* 根据筛选条件洗牌这里要求value不是100 */ /* 遍历一个key的所有value,根据筛选条件展示输出这里选择最大值 */
这里要带上-pthread,因为hadoop内部是并发算法编译之后得到a.out
其中第┅行创建一个隐藏文件夹helloworld,后面两行将可执行文件和input放入此文件下
5.启动任务脚本如下:
其中input参数指出输入文件的路径,output指出输出文件在hdfsΦ存放位置会重新创建新的,要求这个文件之前不能存在program指出可执行文件路径,执行后结果如下表示成功:
这一行指出作业有一个输叺:
通过如下3行可以看到hadoop框架的处理流程先执行map,map全部执行完毕之后执行reduce:
这里a中值为100的被排除了,剩下的最大的是67b中最大的是99
这裏存储每个作业的日志,如下:
8.查看每个datanode处理了多少作业:
这里将a.out执行两次看效果,这里有两个datanode在第一个datanode下查看日志如下:
第二个datanode下查看日志如下:
但是注意作业不是均分到两个datanode上的,再次执行查看日志如下:
这里可以看到master只处理了1个,slave1处理了3个