Hue服务默认使用的是内嵌的Sqlite数据库作为自己的源数据库,Sqlite数据库毕竟是属于一款轻型的数据库服务,在实际项目中还是建议切换MySql或者Oracle作为元数据库服务,本文将切换MySql作为Hue的元数据库。

环境准备

1.MySql服务
2.Hue4.1服务

配置工作

打开Hue的/desktop/conf/目录下的 pseudo-distributed.ini文件

编辑pseudo-distributed.ini文件 ,找到[[database]]这一节,修改信息为hdpc05的机器上的MySql元数
据库服务,修改信息如下:

1
2
3
4
5
6
engine=mysql              //数据引擎类型
host=hdpc05                //数据服务主机
port=3306                    //端口号          
user=root                     //用户名
password=123456      //密码
name=hue                   //数据库名称

环境初始化

由于之前的信息都存在默认的Sqlite数据服务中,我们切换为Mysql服务,需要进行初始化的工作

在MySql中新建Hue的数据库

初始化Hue数据库

在Hue服务所在主机,在Hue的/bulid/env/bin下执行以下初始化命令:
./hue syncdb

./hue migrate

切换验证

经过上面的配置和和初始化服务,此时Hue切换MySql作为元数据库已经完成,下面我们启动Hue服务验证我们的操作:
首先在Hue的/bulid/env/bin/目录下执行./supervisor 命令启动Hue服务

然后使用初始时设置的用户登陆Hue服务

最后启动Hadoop集群,看看切换后连接Hdfs等是否正常

连接Hadoop集群也正常

问题总结

Hue提示表不存在的异常

问题描述:Hue提示(1146, “Table ‘hue.django_session’ doesn’t exist”)的异常

问题原因:切换完Mysql数据库没有初始化数据库
解决方法:初始化数据库服务,见上面的初始化步骤

切换后登陆提示账户名或者密码错误

问题描述:切换完成数据库后,使用原来的用户名账户登录不成功,提示账户名或者密码错误

问题原因:因为我们切换了默认数据库,之前的用户信息保存在Sqllite中,所以此时使用原来的账户登陆不上去
解决办法:还记的我们在初始化的时候,控制台要求我们 输入的账户的密码么,那就是我们新的Hue服务的超级管理员密码

最后总结

本文主要是切换Hue服务的默认数据服务,将Sqllite服务切换成了Mysql服务,在我们平时使用中没有什么大问题,在线上项目中建议不要使用默认的Sqllie,因为Sqllie服务真的台轻量了,如果文中有错误,欢迎大家指出。