看书的进度比我预计的要慢一些。坑太多,需要慢慢爬。 依旧是MaxTemperature的联系。添加了一些测试MRUnit的测试之类的。 遇到的问题如下: 1 MRUnit的依赖添加不进来。 在dependency导入是,1.1.0以及1.0.0版本均有问题。然后我换到0.8.0-incubating版本忽然就好了。由于还没有去看源码,所以没有办法确认是什么版本差异导致了这个原因。
2 遇到如下报错: Exception in thread “main” java.lang.VerifyError: Bad type on Operand stack Exception Details: Location: org/apache/hadoop/maPRed/JobTrackerInstrumentation.create(Lorg/apache/hadoop/mapred/JobTracker;Lorg/apache/hadoop/mapred/JobConf;)Lorg/apache/hadoop/mapred/JobTrackerInstrumentation; @5: invokestatic Reason: Type ‘org/apache/hadoop/metrics2/lib/DefaultMetriCSSystem’ (current frame, stack[2]) is not assignable to ‘org/apache/hadoop/metrics2/MetricsSystem’ Current Frame: bci: @5 flags: { } locals: { ‘org/apache/hadoop/mapred/JobTracker’, ‘org/apache/hadoop/mapred/JobConf’ } stack: { ‘org/apache/hadoop/mapred/JobTracker’, ‘org/apache/hadoop/mapred/JobConf’, ‘org/apache/hadoop/metrics2/lib/DefaultMetricsSystem’ } Bytecode: 0000000: 2a2b b200 03b8 0004 b0 这个问题比较难找,stackOverFlow上有相同的报错,当事的答主是由于jar包冲突导致,移除多余不要的包就好了。然而我的项目是maven项目,所以不可能是由于导入多余jar包导致的。但其实报错中也说的很清楚了,DefaultMetricsSystem不能被分配为MetricsSystem。当时猜测是由于hadoop版本导致的,实验了一下,确实是这样,我使用的是3.0.0-alpha的版本,降至2.2-2.6的版本就好了。 当然还碰到一些其他的坑。比如reduce方法没有重写成功之类的,大多由于眼瞎导致。 有一些要注意的问题:大胆尝试。感觉自己在hadoop这里还是有些太过于谨慎。
新闻热点
疑难解答