flume-sink報錯 java.lang.IllegalStateException: close() called when transaction is OPEN - you must either commit or rollback first


1. 確認代碼無誤(根據情況修改,表示若獲得不了數據不會自動commit或者rollback):

Event event = channel.take();
if (event == null) {
return Status.BACKOFF;
}

I changed it to:

if (event == null) {
transaction.commit();
return Status.BACKOFF;
}

http://grokbase.com/t/flume/user/12be2xfgg5/custom-sink-close-called-when-transaction-is-open-error

2. 確認flume啟動給足了內存:

查看flume-ng文件:

JAVA_OPTS="-Xmx1024m"    #設置大一點,默認是20M

可參考:http://blog.csdn.net/panguoyuan/article/details/39555239

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM