flume sink寫入到gcs,啓動一段時間後報OutOfMemeoryError: Java heap space錯誤數組
flume-ng設置OPT爲-Xmx2000m,flume sink的hdfs.path爲動態地址,在攔截器設置,總共約40個左右。緩存
經過jmap命令,導出堆棧信息bash
jmap -dump:format=b,file=jmap.dump 17454
並用VisualVm打開,發現google建立的byte數組消耗了大部份內存oop
在stackoverflow上查到gcs hadoop實現會爲每一個文件申請默認64M緩存(byte[]),文件太多會致使OOM。google
解決方法:spa
修改core-site.xml,增長fs.gs.outputstream.upload.chunk.size屬性(fs.gs.io.buffersize.write屬性也能夠,只是已廢棄),並設置適當值(2M、8M等);code
重啓flume-ng,觀察是否重現OOM。orm