HUE beeswax中文显示问题的解决方案

20 篇文章 0 订阅
13 篇文章 0 订阅

HUE是Cloudera推出的Hadoop生态系统的Web访问接口,基于Python Django开发。


在使用过程中发现,如果提交的SQL语句中有中文的注释,提交之后,整个语句将会保存在后端的MySQL历史表中,但是再次去查看历史记录的时候,其中的中文却显示成一串问号。显然,这种问题是因为数据库编码问题导致的。为了解决这个问题,可以做如下的操作:

1。 修改MySQL的配置文件(/etc/my.cnf),将默认编码设置成utf8:

[root@report hue]# cat /etc/my.cnf 
[mysqld]
datadir=/data/mysql-data
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
default-character-set=utf8

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
default-character-set=utf8

[client]
default-character-set=utf8
重新启动MySQL。

2. 如果是全新安装,则直接执行如下命令同步数据库即可(如果是全新安装,需要将库表转为相应的编码格式):

sudo -u hue /usr/share/hue/build/env/bin/hue syncdb --noinput

3. 在此过程中遇到了数据库字段类型相关的问题(https://review.cloudera.org/r/2188/diff/),解决办法是:

修改文件

/usr/share/hue/apps/jobsub/src/jobsub/migrations/0002_auto__add_ooziestreamingaction__add_oozieaction__add_oozieworkflow__ad.py
中,搜索job_properties,将对应的类型都改成django.db.models.fields.TextField, 同时将后面的max_length参数删除掉即可。


4. 最后重新启动HUE服务,再次提交包含中文的查询,在查询历史中查看,中文的显示就正常了:



评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值