?最近在使用hadoop做apache日志分析,發現測試數據沒問題,但數據一多就出問題,報
java.lang.StackOverflowError錯誤,最后定位為正則表達式棧溢出,發現某些行的日志數據長度超過了800,所以就會報這個錯誤,
最后的解決方案是把這一小部分數據舍去掉。
java正則表達式截取字符串?添加如下代碼
?
String log = value.toString();
if(log.length()>=800)
return;
java applet、在map階段讀入每一行的時候先判斷這一行的長度,如果長度超過了800就不對這一行進行處理。