之前一直用phpHiveAdmin,也一直在关注hue,最近打算调研一下hue,hue在最近两年发展很快,页面效果和功能上都有很大程度的提升,所支持的服务也越来越多,除了hive,hbase,目前还支持sqoop,impala,pig等。

    hue的一个大致架构如下图所示



    



    核心服务是Hue Server,在本地使用SQLLite作为默认的DB,用户可以通过Hue UI(也就是通过浏览器)查看Hue的服务并使用相关的服务。Hue由python实现,通过thrift与所支持的各种服务进行交互。

    目前集群使用的版本是CDH5.0.0,Hue相关服务的安装也非常的方便,采用yum方式安装即可。安装Hue的机器可以是脱离集群外的某台机器。

sudo yum install hue

    我这次主要是研究Hue与Hive的交互,在Hue中负责与Hive交互的模块叫BeeasWax,所以在启动Hue的服务之前,需要做一些相关的配置。配置主要分两方面,一方面是Hue本身需要做的配置,另一方面就是hadoop集群中需要修改一些配置来配合Hue的使用。Hue本身配置相关的文件是/etc/hue/conf/hue.ini。首先需要做Hue的一些基本配置,主要的几个属性如下所示

[desktop]

    secret_key 随机字符串,推荐30-60个字符,主要和cookies安全性相关

    http_host 访问Hue的host

    http_port 访问Hue的port

    ssl_certificate 如果使用https,需要配置ssl相关的配置

    ssl_private_key 

    ldap_password ldap验证方式的用户密码

BeeasWax相关的一些主要属性如下

[beeswax]

    hive_server_host HiveServer的host

    hive_server_port HiveServer的port

    hive_conf_dir Hive配置文件目录

    hive_server_bin HiveServer的bin目录

配置好了Hue相关的,还需要配置hadoop集群的一些属性,比较重要的有如下几个

    hive-site.xml

        hive.server2.enable.impersonation=true

使用提交任务用户的身份运行Hive Job,如果不配置,会默认以HiveServer的启动用户来运行Job

    hdfs-site.xml

        dfs.webhdfs.enabled=true

    core-site.xml

        hadoop.proxyuser.hue.groups=*

        hadoop.proxyuser.hue.hosts=*

webhdfs相关的配置,Hue需要使用WebHDFS或HttpFs来访问HDFS,二者配置一个即可

    配置完成后,就可以启动Hue的服务了(使用Hue管理Hive需要启动HiveServer,目前推荐使用HiveServer2)

service hue start

    在浏览器输入hue_host:hue_port就可以进入登录页面,第一次输入的是管理员的用户名和密码,通过管理员权限可以建立其他的用户和组。登录后可以进入Hive Editor来编写HQL,提交后可以实时查看到Job运行的状态,如下图所示

    

hue3.5.0使用初探(cdh版本 附后续问题解决)_第1张图片

    


    不过在后续的使用和测试过程中,发现使用Hue来访问Hive很不稳定,上图左侧的MetaStore信息总是加载不出来,查看了HiveServer2的log,基本有两种错误,一种是thrift相关的连接异常,另一种就是OutOfMemory

    

hue3.5.0使用初探(cdh版本 附后续问题解决)_第2张图片




hue3.5.0使用初探(cdh版本 附后续问题解决)_第3张图片


    使用jstat查看了下HiveServer2堆内存的使用情况,并没有发现明显的异常情况,随后google了一把,

Hue的google邮件组中有关于这两种问题的讨论(https://groups.google.com/a/cloudera.org/forum/#!topic/cdh-user/nkM1gRIIIjo),基本可以确定是bug级别的问题,有人建议升级到CDH5.0.1,在Jira上也有人反应过此问题(Hive-6390),目前我还没做升级后的相关测试,后续会继续探索相关的问题。

    后续升级到了CDH5.1.0版本,没有再出现以上问题,Hue可以正常使用了