看書的進度比我預計的要慢一些。坑太多,需要慢慢爬。 依舊是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這里還是有些太過于謹慎。
新聞熱點
疑難解答