Hue服务默认使用的是内嵌的sqlite数据库作为自己的源数据库,sqlite数据库毕竟是属于一款轻型的数据库服务,在实际项目中还是建议切换MySql或者oracle作为元数据库服务,本文将切换MySql作为Hue的元数据库。
一、环境准备
1.MySql服务(共用之前Hive的元数据服务)
2.Hue4.1服务
二、配置工作
打开hue的/desktop/conf/目录下的 pseudo-distributed.ini文件
编辑pseudo-distributed.ini文件 ,找到[[database]]这一节,修改信息为hdpc05的机器上的MySql元数
据库服务,修改信息如下:
engine=mysql //数据引擎类型
host=hdpc05 //数据服务主机
port=3306 //端口号
user=root //用户名
password=123456 //密码
name=hue //数据库名称
三、环境初始化
由于我们之前的信息都存在默认的sqlite数据服务中,我们切换为mysql服务,需要进行初始化的工作
1.在MySql中新建hue的数据库hue
2.初始化hue数据库
在hue服务所在主机,在hue的/bulid/env/bin下执行以下初始化命令:
./hue syncdb
./hue migrate
四、切换验证
经过上面的配置和和初始化服务,此时Hue切换MySql作为元数据库已经完成,下面我们启动Hue服务验证我们的操作:首先在hue的/bulid/env/bin/目录下执行./supervisor 命令启动hue服务
然后我们使用初始时设置的用户登陆hue服务
然后我们启动hadoop集群,看看切换后连接hdfs等是否正常
连接hadoop集群也正常
五、问题总结
1.Hue提示(1146, "Table 'hue.django_session' doesn't exist")的异常
问题原因:切换完mysql数据库没有初始化数据库
解决方法:初始化数据库服务,见上面的初始化步骤
2.启动后使用原来账户登陆提示账户名或者密码错误
问题原因:因为我们切换了默认数据库,之前的用户信息保存在sqllite中,所以此时使用原来的账户登陆不上去
解决办法:还记的我们在初始化的时候,控制台要求我们 输入的账户的密码么,那就是我们新的Hue服务的超级管理员密码
六、文末总结
本文主要是切换hue服务的默认数据服务,将sqllite服务切换成了mysql服务,在我们平时使用中没有什么大问题,在线上项目中建议不要使用默认的sqllie,因为sqllie服务真的台轻量了,文中有错误,欢迎大家指出。
来源:oschina
链接:https://my.oschina.net/u/2846946/blog/1613349