oozie_中文乱码解决方式

一. 平台背景: hue上oozie调度hql执行
二. 问题描述 : 如果hql里硬编码 中文插入数据到hive里会乱码, 具体表现是在hue上直接写sql不会乱码, 但是放到Oozie上调度运行写入会乱码
三. 演示如下:

  1. 当sql中含有如下写法( 部分sql )
case open_account_type when 1 then 
                                     case apply_result when 10 then '同意'  
                                                       when 11 then '初审通过'
                                                       when 20 then '驳回至客户' end 
                        when 2 then 
                                     case apply_result when 1  then '驳回开户资料'
                                                       when 2  then '通过开户资料'
                                                       when 3  then '修改开户方式' 
                                                       when 5  then '驳回证明'
                                                       when 6  then '通过证明'
                                                       when 10 then '提交审核'
                                                       when 23 then '客服修改资料'
                                                       when 24 then '审核优先级变更'
                                                       end 
                        end  as apply_result
  1. 执行包含如上字段, 在oozie调度执行之后, 会出现乱码现象,如下图(关注apply_result字段)
    oozie_中文乱码解决方式_第1张图片
  2. 添加配置可修改

3.1 在配置调度时,添加配置:

key value
yarn.app.mapreduce.am.admin-command-opts -Dfile.encoding=UTF-8

3.2 对应配置位置是:
oozie_中文乱码解决方式_第2张图片
添加如上设置之后, 乱码解决.
oozie_中文乱码解决方式_第3张图片
四.写在后面
建议非特殊情况, 在hql中不要出现硬编码, 如果有中文的情况, 建议用数据字典的方式解决.

你可能感兴趣的:(hue,oozie)