采用Apache版本spark1.2.1時沒有出現(xiàn)亂碼,但spark-1.1.0-cdh6.2.1版本中,在分布處理的map函數(shù)里對數(shù)據(jù)進(jìn)行打印輸出進(jìn)行debug時
val rs = rdd.filter(e => {val (lable,text) = (e._2(2), e._2(3)); m.filterItem(lable, text) }) .reduceByKey((x,y) => m.merge(x, y)) .map{case (x,y) => {println(x + "\t" + y); (x._1.toLong, x._2, y(1), y(3) )}}
發(fā)現(xiàn)stdout文件里面中文內(nèi)容亂碼
(5,?????????????) List(????????????? ? ??, http://xinligs.cn.china.cn/, A0, ,???:???,,??:?????????????138?,??:7975209__??:15028078833__??:15176090928,,,,,,,,????:???????????????????????(11)???,,,,, false, 4, 7) ????????????? 17 ,???:???,,??:?????????????138?,??:7975209__??:15028078833__??:15176090928,,,,,,,,????:???????????????????????(11)???,,,,
在/var/run/spark/work/目錄中查看對應(yīng)app-20150605171809-0003中的stdout文件
stderr: ASCII C++ program text stdout: UTF-8 Unicode text, with very long lines
stdout是ASCII編碼的,對中文肯定顯示不了
在使用service啟動Java程序時,機器上hadoop中stdout輸出的日志也是是中文亂碼
修改 /sbin/service ,在env -i 后面加上 LANG="$LANG"
重啟spark的各節(jié)點
service spark-master restart service spark-worker restart
最后日志中文顯示正常
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。