Unexpected end-of-input in VALUE_STRING
json解析異常:
[DEBUG - org.apache.hive.hcatalog.data.JsonSerDe.deserialize(JsonSerDe.java:178)]
org.codehaus.jackson.JsonParseException:Unrecognized token 'nWsj1W3Zzy': was expecting 'null', 'true', 'false' or NaN
at [Source: [email protected]; line: 1, column: 21]
Unexpected end-of-input in VALUE_STRING
failed : Unable to convert byte[] record into Object :
然後發現日誌每行信息被截取了,json格式錯誤,導致無法解析;最初沒有想到是flume截取的每行數據,以爲是hive處理的時候過長有什麼操作,按錯誤發生在sink端處理的,一直找不到原因。
百度多了,量變達到效果,發現了有寫flume會截取過長的信息,
flume在收集log的時候經常會出現Line length exceeds max (2048), truncating line!,這個一般情況對於一些log的存儲沒影響,但是遇到需要解析log的情況就有問題了,有時一個json或者其他格式的log被截斷了,解析也會出問題,所以在source的屬性配置裏可以通過參數deserializer.maxLineLength調高默認的2048。
然後修改配置文件: