[Author]: kwu
【解决】CDH5运行MapReduce的乱码,在集群中运行mapreduce后,处理的结果就为乱码了。解决方案,如下:
1、linux的环境变量设置字符集
/etc/profile
export LANG=zh_CN.UTF-8
2、修改hadoop的环境变量
hadoop-env.sh
export HADOOP_OPTS="-server -Dfile.encoding=utf-8 -Duser.language=zh"
mapred-site.xml
<property>
<name>mapreduce.map.java.opts</name>
<value>-Djava.net.preferIPv4Stack=true -Dfile.encoding=utf-8 -Duser.language=zh -Xmx825955249</value>
</property>
<property>
<name>mapreduce.reduce.java.opts</name>
<value>-Djava.net.preferIPv4Stack=true -Dfile.encoding=utf-8 -Duser.language=zh -Xmx825955249</value>
</property>
或者统一配置
mapred.child.java.opts -Dfile.encoding=utf-8