Hue安装、或操作过程中遇到的问题

【Hue-001】编译Hue时报错,File “/usr/bin/yum“, line 30 except KeyboardInterrupt

主要原因:是系统自带的python2.7,默认环境是python,你安装python3.x后,更改默认/usr/bin/python的软引用为python3.x导致的

解决方案:直接修改/usr/bin/yum文件中的第一行为 #!/usr/bin/python2.7


Hue-002Hue启动报错,OperationalError: attempt to write a readonly database

解决方案:需要创建hue用户,并将/opt/module/hue目录的所有权交给hue用户

# 将hue源码的用户所有者/组改为hue
chown -R hue:hue /opt/module/hue

Hue-003Hue启动报错 ,“Couldn‘t import snappy. Support for snappy compression disabled.” 

解决方案:直接安装对应的依赖包

python2 -m pip install snappy

【Hue-004】登录后,连接hive报错:AuthorizationException): User: hadoop is not allowed to impersonate hadoop.

解决方案:配置的参数和登录Hue的账号不一致导致的,直接改为一致即可。

参考Centos7上安装配置Hue上 1.6 配置进行调整

<property>
        <name>hadoop.proxyuser.hadoop.hosts</name>
        <value>*</value>
</property>
<property>
        <name>hadoop.proxyuser.hadoop.groups</name>
        <value>*</value>
</property>

Hue-005登录后,连接hdfs报错:Cannot access: /. The HDFS REST service is not available.

解决方案:1)一般是Httpfs没有启动

在有nameNodede 机器上启动 httpfs服务 

hdfs --daemon start httpfs
# 或者
$HADOOP_HOME/sbin/httpfs.sh start

2)缺少配置

hadoop下的配置文件中的httpfs-site.xml文件添加配置

<property>
    <name>httpfs.proxyuser.hue.hosts</name>
    <value>*</value>
</property>                              
<property>
    <name>httpfs.proxyuser.hue.groups</name>
<value>*</value>

3)配置webhdfs_url可能把端口号搞错

# hadoop 2.x
webhdfs_url=http://linux100:50070/webhdfs/v1
# hadoop 3.x
webhdfs_url=http://linux100:9870/webhdfs/v1

【Hue-006】创建表时,报编码相关的错误,'ascii' codec can't encode characters.

主要原因:comment 里面注释为中文导致建表失败

解决方案:在所有的hue server 节点修改python默认编码,再重启hue

vim /opt/module/hue/apps/filebrowser/src/filebrowser/views.py

 # 添加下面的内容
(# -*- coding:UTF-8 -*-) 也要加,加在最上面,不加可能汇报其他问题

import sys 可能已经存在

# -*- coding:UTF-8 -*-

import sys
reload(sys)
sys.setdefaultencoding( “utf-8” )

【Hue-007】居于Hive引擎创建的表,中文乱码问题.

主要原因:元数据的数据库编码问题导致

解决方案:① 进入mysql ,查看hive 数据库当前编码

show create database metastore;

② 如果是utf8 则执行下面sql将 hive 数据库默认编码改成 latin1

alter database metastore default character set latin1;

③ 执行下面sql ,修改 表/字段/分区/索引 等部分的注释字符集

use hive; 
alter table COLUMNS_V2 modify column COMMENT varchar(256) character set utf8;
alter table TABLE_PARAMS modify column PARAM_VALUE varchar(4000) character set utf8;
alter table PARTITION_PARAMS  modify column PARAM_VALUE varchar(4000) character set utf8;
alter table PARTITION_KEYS  modify column PKEY_COMMENT varchar(4000) character set utf8;
alter table INDEX_PARAMS  modify column PARAM_VALUE  varchar(4000) character set utf8;

该解决方案主要借鉴下面这篇文章:

Hue 中文注释显示乱码

额外补充:

为什么数据库字符编码要用latin1(iso-8859-1),而不是utf8呢? 

      因为在mysql innodb引擎中,索引的长度最大字节数为767。 utf8 数字、英文1字节、中文3字节,gbk,数字、英文、中文各2字节,latin1,数字、英文、中文各1字节,所以hive元数据库为了获取更长的索引长度就采取了latin1字符编码。 其他相关知识

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值