最近在學習kafka-connect,在配置source文件中所查詢的表數據有364M大小,在運行一個單機連接器測試source時出現如下錯誤提示:
[2017-10-18 20:12:48,185] INFO Source task WorkerSourceTask{id=Aliyunmysql-source-0} finished initialization and start (org.apache.kafka.connect.runtime.WorkerSourceTask:142)
[2017-10-18 20:13:18,304] INFO Reflections took 61988 ms to scan 565 urls, producing 13142 keys and 86128 values (org.reflections.Reflections:229)
[2017-10-18 20:14:02,787] ERROR Task Aliyunmysql-source-0 threw an uncaught and unrecoverable exception (org.apache.kafka.connect.runtime.WorkerTask:141)
java.lang.OutOfMemoryError: Java heap space
以下是解決方法:
在百度后大多解決內在溢出的方法都不適用與解決該問題,但既然是使用kafka報的錯誤,應該要在kafka的啟動配置文件中去設置,在/bin目錄下找到kafka-run-class文件並編輯
#vim /bin/kafka-run-class
找到 Memory options處,默認設置是256M,將其修改為如下值
# Memory options
if [ -z "$KAFKA_HEAP_OPTS" ]; then
KAFKA_HEAP_OPTS="-Xmx1024M -Xms512M"
fi
保存退出,再運行連接器,不再出現Java heap space錯誤,解決該問題。