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服务真的台轻量了,文中有错误,欢迎
           大家指出。