業務場景:
Flnk消費Kafka數據后,先入Hbase,經過校驗后會發送數據到Kafka另一個topic,供另一個業務線消費入庫。
組件版本:
CDH:6.3.0
Flink:1.10
1. 問題描述
經發現結果數據庫中中文為亂碼,如圖:
2. 問題定位
1、首先排查IDEA開發、編譯各項編碼,都是UTF-8。
2、查看服務器編碼,也是UTF-8。
3、后來懷疑是hbase讀寫的序列化有問題,但是經測試后沒有問題,直接在代碼里輸出中文就是亂碼!
3. 解決過程
看過一些博客,是yarn的配置有問題,需要修改yarn的參數,但動作太大,沒做嘗試。
最簡單的方式就只需在啟動flink任務時加上參數就可以解決:
-yD env.java.opts="-Dfile.encoding=UTF-8 -Dsun.jnu.encoding=UTF-8"
--------------------------------END --------------------------------
希望對大家有幫助,有問題多交流