突然现在对以后的职业方向有些迷茫,不知道去干什么,现在有一些语言基础,相对而言好的一些有Java和C,选来选去不知道该选择哪个方向,爬了好多网页后,觉得自己应该从java开始出发,之前有点心不在焉,不知道从而且还在中途走了一段的弯路,没事干又跑去研究了一段时间的Php,但是后来发现php可以作为自己的一个业余爱好吧,还好自己还有时间,觉得从java基础学习一下基于hadoop的海量数据处理还是就业前景还是不错的,奥,跑题了,随便扯点,最近学习hadoop,看到第二章,发现这里有点意思,里边的一部分翻译自hadoop:the definitive guide.自己对没一点做出一些自己的理解。
1、新版本相对旧版本的的api更倾向于用抽象类,而非接口
2、新的API在org.apache.hadoop.mapreduce包中,就版本的在org.apache.hadoop.mapre中
3、新的API充分使用上下文对象,使用户代码能够和mapreduce系统通信
4、新的API可以通过重写run()可以控制mapper和reducer的控制流程,旧的只能通过写MapRunnable类在控制mapper但是不能控制reducer.
5、新的API作业控制由Job类实现,旧的由JobClient
6、新的API实现了配置统一,旧的API通过一个特殊的JobConf对象配置作业
7、输出文件命名也发生了变化,旧的API统一命名为part-nnmm, 新的map输出文件命名为part-m-nnmm,reduce命名为part-r-nnmm
8、新的API中用户重载函数被声明为抛出异常java.lang.InterruptedException,可以通过代码来响应中断.
9、新的API中reduce()传递的值为java.lang.Interable类型,而非java.lang.iterator,可以更容易地使用java的for-each循环结构