安装完成CDH后,在yarn上不管是使用hive运行mapreduce还是spark,中文全都会乱码。

1. linux的环境变量设置字符集

vi /etc/profile
export LANG=zh_CN.UTF-8

2. 修改mapreduce的环境变量

hadoop-env.sh

export HADOOP_OPTS="-server -Dfile.encoding=utf-8 -Duser.language=zh"

CM界面yarn配置(mapred-site.xml)搜索

mapreduce.map.java.opts

-Djava.net.preferIPv4Stack=true -Dfile.encoding=utf-8 -Duser.language=zh

mapreduce.reduce.java.opts

-Djava.net.preferIPv4Stack=true -Dfile.encoding=utf-8 -Duser.language=zh

yarn.app.mapreduce.am.command-opts

-Djava.net.preferIPv4Stack=true -Dfile.encoding=utf-8 -Duser.language=zh

3. 修改spark字符集

CM界面spark配置搜索spark-default.conf,添加:

spark.driver.extraJavaOptions=-Dfile.encoding=utf-8
spark.executor.extraJavaOptions=-Dfile.encoding=utf-8

4. 重启服务

Logo

更多推荐