做java時一些問題的解決

1、java.lang.classnotfoundexception(這個是在做hadoop時遇到)

因爲我的jdk安裝了openJDK,重新安裝sunJDk就行了。


2.改了java home,但是java -version仍然是原來的版本
   解決:其實java -version是不準的,它只會顯示你電腦安裝的最新版本。


3.這個也是hadoop時出現的錯

16/01/01 21:48:01 WARN mapred.LocalJobRunner: job_local_0001

java.lang.NullPointerException
at org.apache.hadoop.io.serializer.SerializationFactory.getSerializer(SerializationFactory.java:73)
at org.apache.hadoop.mapred.MapTask$MapOutputBuffer.<init>(MapTask.java:965)
at org.apache.hadoop.mapred.MapTask$NewOutputCollector.<init>(MapTask.java:674)
at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:756)
at org.apache.hadoop.mapred.MapTask.run(MapTask.java:370)
at org.apache.hadoop.mapred.LocalJobRunner$Job.run(LocalJobRunner.java:212)
16/01/01 21:48:01 INFO mapred.JobClient:  map 0% reduce 0%
16/01/01 21:48:01 INFO mapred.JobClient: Job complete: job_local_0001
16/01/01 21:48:01 INFO mapred.JobClient: Counters: 0
  解決:問題出的很挫,主要是因爲把輸出的intWritable寫成了integer。


4.對字符串使用replaceAll()方法替換 * ? + / | 等字符的時候會報以下異常:Dangling meta character '*' near index 0


這主要是因爲這些符號在正則表達示中有相應意義。

只需將其改爲 [*] 或 //* 即可。(但其實我在split中是\\*)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章