CDH环境下 Flink On Yarn 任务中文乱码问题解决

CDH环境下 Flink On Yarn 任务中文乱码问题解决

  • 问题描述
  • 问题解决
    • 1. Linux的环境变量设置字符集
    • 2. 修改MapReduce的环境变量
    • 3 CM界面,修改Yarn配置(mapred-site.xml)
    • 4 非CDH环境解决参考

问题描述

在Flink通过kudu-client方式插入CDH上的Kudu表数据中,包含中文数据,本地idea执行是正常的,但是服务器上执行就乱码。进一步排查发现,使用Flink的StandaloneCluster模式运行该程序写入数据正常,使用PerJobOnYarn模式则乱码,初步怀疑是CDH集群的Yarn配置的问题。
CDH环境下 Flink On Yarn 任务中文乱码问题解决_第1张图片

问题解决

Google 搜索相关问题后,找到一篇Spark On Yarn乱码的解决文章,依据文章的提示得以解决。
链接: spark on yarn 中文乱码问题.

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"

3 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

修改完成后保存然后重启Yarn即可。

4 非CDH环境解决参考

如图:
CDH环境下 Flink On Yarn 任务中文乱码问题解决_第2张图片

你可能感兴趣的:(日常错误处理记录,hadoop,flink,cloudera)