mapreduce的工作原理:
(1)map:对集合中的目标应用同一个操作,如同时乘以2
(2)reduce:遍历集合中的元素来返回一个综合的结果
当向mapreduce框架提交任务时,首先把作业拆分为不同的map任务,并把这些任务分配到不同的结点去执行,map处理完后的中间文件会作为reduce的输入数据,reduce会汇总若干个map的输出
1.hadoop-streaming-xxx.jar
虽然hadoop是用java开发的(一般程序也要用java写),但hadoop提供了一个工具:hadoop-streaming,主要是帮助用户创建/运行一类特殊的map/reduce作业。使得任何语言编写的map/reduce作业都能在上面运行
2.注意:写好的map/reduce程序也要上传到hadoop根目录下(不要传到文件系统上,因为原有的java代码也是放在hadoop中,而文件系统只是存放对应的输入输出文件)
3.具体的实现步骤参考作业实验报告以及这里
注意编译C++文件时要选用g++来编译,如果选了gcc,可能报错“未定义的引用”