Spark stdout日志乱码

采用Apache版本spark1.2.1时没有出现乱码,但spark-1.1.0-cdh5.2.1版本中,在分布处理的map函数里对数据进行打印输出进行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) )}}

发现stdout文件里面中文内容乱码

(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/目录中查看对应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的各节点

service spark-master restart
service spark-worker restart

最后日志中文显示正常

时间: 2024-11-07 01:22:36

Spark stdout日志乱码的相关文章

log4j输出日志乱码(转)

log4j日志文件乱码问题的解决方法 log4j日志文件中文乱码处理方法 log4j 控制台和文件输出乱码问题解决 写在前面,第三篇文章中将原因解释的最清楚,为什么设置为UTF-8或者GBK就生效了,原因是类文件的编码和输入日志的编码必须一致,否则就会出现乱码. 转:log4j日志文件乱码问题的解决方法 近日在AIX上用log4j打印日志,出现乱码,经过努力解决问题. 症状:在默认语言非中文(或者说默认语言不支持中文的)的Windows.Linux.Unix上,用log4j打印日志,出现乱码,常

解决IntelliJ IDEA控制台乱码问题[包含程序运行时的log4j日志以及tomcat日志乱码]

这里使用的IntelliJ IDEA版本为[IntelliJ IDEA 14.1.4]: 一.控制台打印的程序运行时的log4j日志中包含中文乱码 在IDEA安装目录的bin目录下找到名为"idea.exe.vmoptions"的文件: 使用文本编译软件(Notepad++等)打开此文件,在文件内容从末尾追加一行设置(-Dfile.encoding=UTF-8),表示指定编码为UTF-8: 重启IDEA,再次测试,log4j日志不再乱码: 但是发现tomcat启动日志乱码了(修改IDE

tomcat日志乱码解决方法

日志乱码 vi  /usr/local/tomcat/bin/catalina.sh JAVA_OPTS="-Dfile.encoding=utf-8"

打造基于hadoop的网站日志分析系统(5)之spark在日志分析系统里的简单应用

1.下载spark和运行 wget http://apache.fayea.com/apache-mirror/spark/spark-1.0.0/spark-1.0.0-bin-hadoop2.tgz 我这里下载的是1.0.0版,由于我们只是测试spark的用法所以不需要配置spark集群,只需把下好的文件解压,进入bin/文件夹. spark支持scala,java和python. scala和java输入命令:./spark-shell python 输入命令 ./pyspark 进入控制

TASKCTL5.0日志乱码解决方案

从大学毕业到现在,做了不少银行外包项目,数据类的项目基本都用到taskctl调度产品,一直习以为然,觉得调度产品都应该是这样的,所以也没觉得怎样,直到后来有两个外包项目没用taskctl调度工具,要接入他们已有的调度体系,瞬间就有点懵逼了,后来进一步了解了下目前银行的调度业,大多都是惨不忍赌,各种方式的都有,银行的运维人员也是比较辛苦,很多项目交付时都用不同的,有的要人工去调用,有的是用crontab封装shell脚本,有的是字符界面,有的是web界面等等,想想如果银行所有的系统都用taskct

解决CentOS7中文乱码(包括Tomcat日志乱码)问题

Linux系统中文语言乱码,是很多小伙伴在开始接触Linux时经常遇到的问题,而且当我们将已在Wndows部署好的项目搬到Linux上运行时,Tomcat的输出日志中文全为乱码(在Windows上正常),看着非常心塞,那么我们应该怎么解决呢? 系统中文乱码   Tomcat输出日志中文乱码 系统环境 CentOS 7.0 64位 jdk-8u11-linux-x64. apache-tomcat-8.5.16 解决步骤: 1.安装中文语言包 先查看系统是否有安装中文语言包 # locale -a

Spark的日志配置

在测试spark计算时,将作业提交到yarn(模式–master yarn-cluster)上,想查看print到控制台这是imposible的,因为作业是提交到yarn的集群上,so 去yarn集群上看日志是很麻烦的,但有特别想看下print的信息,方便调试或者别的目的 在Spark的conf目录下,把log4j.properties.template修改为log4j.properties,原来的内容如下: #Set everything to be logged to the console

linux下 tomcat 日志乱码/中文链接404

1 日志乱码: JDK引用的设置 Java引用参数添加"-Dfile.encoding=UTF-8 -Dsun.jnu.encoding=UTF-8" 将上面参数添加到Catalina.sh中JAVA_OPTS变量中,重启Tomcat,OK了. 如果不行 :安装中文语言包 yum groupinstall chinese-support 再不行,检查i18n配置 : /etc/sysconfig/i18n LANG="en_US.UTF-8" 2中文链接404 在t

【spring boot logback】spring boot中logback日志乱码问题

在初次使用logback的自定义配置文件完整的控制spring boot日志后,发现了一个无法忍受的问题,就是日志乱码. 控制台看到打印日志乱码如下: 而日志文件打开: 记事本打开 sublime打开 关于这个问题,分析如下: 1.打印的"进入Controller日志控制中心---->>>"字样可以看出,至少代码本身和IDE环境的编码方式没有任何的关系: 2.打印出来的日志是logback-spring.xml文件起作用之后,显示在控制台的,而日志文件打开后,看到 不