hive修改 application name中文乱码解决

初衷

基于spark引擎的hive,在hive客户端中提交查询sql后,在yarn管理界面,或者8088界面,看到的作业名称都是"hive on spark",如下图所示,如果有多个脚本同时在运行时,就不好分辨。
在这里插入图片描述

修改方式

mapreduce 引擎
yarn1

set mapred.job.name=xxx;

yarn2

set mapreduce.job.name=xxx;

spark 引擎

set spark.app.name=xxx;

在这里插入图片描述

需要注意的是,在同一个会话中,这个参数只能生效一次
即第一次设置了 set spark.app.name=xxx;执行了一个查询后,在同个会话中,再设置 set spark.app.name=yyy;再执行一个查询语句。这时候,无论application id是否变化,yyy都是不生效的。application name依然是xxx

但是如果开启会话后,连续执行两次设置set spark.app.name=xxx;set spark.app.name=yyy;再执行sql查询,会以后面一次设置为准,即application name是yyy。

中文乱码解决

  1. linux的环境变量设置字符集
vi /etc/profile
export LANG=zh_CN.UTF-8

  1. 修改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.opt

-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

在这里插入图片描述
4.修改spark 字符集
CM界面spark配置搜索spark-default.conf,添加:

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

在这里插入图片描述
5重启服务
在这里插入图片描述

发布了48 篇原创文章 · 获赞 5 · 访问量 1165

猜你喜欢

转载自blog.csdn.net/qq_34897849/article/details/103598540