HUE的简单介绍

原创 2016年06月02日 01:09:16

欢迎访问我的独立博客:
http://blog.ywheel.cn/post/2016/05/29/hue_introduction/


前段时间给同事们做了一次HUE入门使用的培训,就顺便整理出来。本篇文章先简单介绍HUE,再介绍如何给HUE贡献代码。

HUE是什么

HUE=Hadoop User Experience

Hue是一个开源的Apache Hadoop UI系统,由Cloudera Desktop演化而来,最后Cloudera公司将其贡献给Apache基金会的Hadoop社区,它是基于Python Web框架Django实现的。

通过使用Hue我们可以在浏览器端的Web控制台上与Hadoop集群进行交互来分析处理数据,例如操作HDFS上的数据,运行MapReduce Job,执行Hive的SQL语句,浏览HBase数据库等等。

HUE链接

核心功能

  • SQL编辑器,支持Hive, Impala, MySQL, Oracle, PostgreSQL, SparkSQL, Solr SQL, Phoenix…
  • 搜索引擎Solr的各种图表
  • Spark和Hadoop的友好界面支持
  • 支持调度系统Apache Oozie,可进行workflow的编辑、查看

HUE提供的这些功能相比Hadoop生态各组件提供的界面更加友好,但是一些需要debug的场景可能还是需要使用原生系统才能更加深入的找到错误的原因。

HUE中查看Oozie workflow时,也可以很方便的看到整个workflow的DAG图,不过在最新版本中已经将DAG图去掉了,只能看到workflow中的action列表和他们之间的跳转关系,想要看DAG图的仍然可以使用oozie原生的界面系统查看。

HUE登录

如果自己搭建了HUE,则可以使用管理员账户创建一个新的用户,然后使用新的用户进行登录,见下图:

HUE登录图

使用HUE官网上的live demo可以尝鲜。如果大家自己没有搭建大数据平台,没有安装HUE的话,可以先在该demo上尝试。点击Play with the live Demo now!,将会进入HUE的”我的文档”:

HUE Demo图

HDFS文件浏览

HUE可以很方便的浏览HDFS中的目录和文件,并且进行文件和目录的创建、复制、删除、下载以及修改权限等操作。

HDFS实现了一个和POSIX系统类似的文件和目录的权限模型。每个文件和目录有一个所有者(owner)和一个组(group)。文件或目录对其所有者、同组的其他用户以及所有其他用户分别有着不同的权限。但,用户身份机制对HDFS本身来说只是外部特性。HDFS并不提供创建用户身份、创建组或处理用户凭证等功能。 使用HUE访问HDFS时,HDFS简单的将HUE上的用户名和组的名称进行权限的校验。

在Live Demo中,点击”文件浏览器”, 进入HDFS的家目录:

HUE HDFS图

PS: Live Demo中禁了文件上传功能。

作业浏览

点击Job Browser,可以查看作业列表,并且可以通过点击右上角的”成功”,”正在运行”,”失败”,”停止”来筛选不同状态的作业:

HUE Job Browser

我们在实际工作中发现,当集群(CDH5.2) 配置了HA后,当active的ResourceManager自动切换后(比如NN1上的ResourceManager是active,而NN2是standby,当NN1出现故障, NN2上的ResourceManager转变为active状态),HUE的job browser将不能够正确显示。只有当修复故障后,将NN1上的ResourceManager重新变成active状态,HUE的job browser才能正常工作。不知道这个问题在后续版本是否已经得到修复。

Hive查询

HUE的beeswax app提供友好方便的Hive查询功能,能够选择不同的Hive数据库,编写HQL语句,提交查询任务,并且能够在界面下方看到查询作业运行的日志。在得到结果后,还提供进行简单的图表分析能力。

HUE Hive查询

点击”Data Browsers”->”Metastore表”,还可以看到Hive中的数据库,数据库中的表以及各个表的元数据等信息。

HUE Hive MetaStore

Oozie Workflow编辑

HUE也提供了很好的Oozie的集成,能够在HUE上创建和编辑Bundles, Coordinator, Workflow. Oozie的介绍可以去官网查看。下图为在HUE上创建一个新的workflow,在该界面上,可以直接拖动不同的组件,变成DAG中的节点,并且设置各个action的流转逻辑。

HUE WF Editor

当然Oozie也可以通过命令行的方式提交B,C,W. 不过是使用HUE创建的workflow,或者是通过命令行提交的workflow,都可以在HUE上查看运行的状况:

HUE WF Browser

只是通过命令行提交的workflow就不可以在HUE上进行编辑了。使用配置文件、命令行提交的方式能够保证在生产环境上运行的和在测试环境上运行的版本一致,而使用HUE界面编辑的方式虽然方便,但也可能会带来人工操作在生产环境中失误的风险,有利也有弊吧。

Contribution

我在给同事准备培训材料的时候,到HUE的github上去查找资料。在看到HUE的主要功能时,github上的原文是这样的:

HUE Features old

恰好我司主要使用的数据库是PostgreSQL,看到PostGresl感觉怪怪的,于是Google了一把,PostgreSQL有两个名字:PostgreSQL和Postgres,目前官方网站上的名字仍然是PostgreSQL. 不管PostGresl是否有什么典故,但是PostgreSQL一定是对的。因此,我去查了下如何给HUE提交代码修改。在Github上能找到wiki: Contribute to HUE, HUE有自己的JIRA和Review Board, 但也说了The Hue project gladly welcomes any patches or pull requests!

于是我在github上给HUE发了一个Issue和一个Pull Request。几天后Pull Request被接收,merge到了master分支上,可以看到这个Commit

在这里记录一下更新的步骤:

  1. Fork HUE的工程,比如 ywheel/hue
  2. 创建一个新的分支,不要使用master分支提交修改。比如我创建了fix-postgresql-spelling分支。
  3. 将代码pull下来,修改后commit,提交到fix-postgresql-spelling分支。
  4. 创建issue。当HUE的工程上创建issue, 描述清楚问题,提交。
  5. 点击’Pull Request’, 选择目的工程和分支,比如cloudera/hue的master分支。填写comment, 说明已创建的issue, create pull request.

接下来就是等了,等该提交被review, 被merge到master分支, 等你自己的名字出现在Contributors里面, then everything DONE!


ps: 虽然改了个单词拼写就出来说简直是丢人,不过算是一个good start, 希望能在不久的将来真的能给开源项目(特别是流行的大数据生态中的开源项目)贡献代码,加油!

版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

使用HUE来管理hadoop集群

HUEHue是cdh专门的一套web管理器,它包括3个部分hue ui,hue server,hue db。hue提供所有的cdh组件的shell界面的接口。你可以在hue编写mr,查看修改hdfs的...

hue中使用oozie的workflow执行mr

hue中使用oozie的workflow执行mr

精选:深入理解 Docker 内部原理及网络配置

网络绝对是任何系统的核心,对于容器而言也是如此。Docker 作为目前最火的轻量级容器技术,有很多令人称道的功能,如 Docker 的镜像管理。然而,Docker的网络一直以来都比较薄弱,所以我们有必要深入了解Docker的网络知识,以满足更高的网络需求。

Alex 的 Hadoop 菜鸟教程: 第19课 华丽的控制台 HUE 安装以及使用教程

Hadoop也有web管理控制台,而且还很华丽,它的名字叫HUE。通过HUE可以管理Hadoop常见的组件。下面用一幅图说明HUE能管理哪些组件。除了Oozie,LDAP SAML和Solr以外,前面...

flume+kafka+storm+hdfs整合

基础环境: Redhat 5.5 64位(我这里是三台虚拟机h40,h41,h42) myeclipse 8.5 jdk1.7.0_25 Python-2.7.12 zookeeper-3.4.5集...

Hue安装配置实践

Hue是一个开源的Apache Hadoop UI系统,最早是由Cloudera Desktop演化而来,由Cloudera贡献给开源社区,它是基于Python Web框架Django实现的。通过使用...

搭建hadoop2.6.0 HDFS HA及YARN HA

最终结果: [hadoop@h41 ~]$ jps 12723 ResourceManager 12995 Jps 12513 NameNode 12605 DFSZKFailoverControll...

struts2 if标签

我的问题情况:页面判断字符串是否和对象里面的某个字段相等 在网上查到的: 这样写是错误的.男 正确的写法如下: 男 男 可是没有解决我的问题。 最终我的...

kafka+storm+hbase整合试验(Wordcount)

kafka+storm+hbase整合:kafka作为分布式消息系统,实时消息系统,有生产者和消费者;storm作为大数据的实时处理系统;hbase是apache hadoop 的数据库,其具有高效的...

kafka监控命令kafka-run-class.sh查看消费了多少条数据

kafka自带了很多工具类,在源码kafka.tools里可以看到: 这些类该如何使用呢,kafka的设计者早就为我们考虑到了,在${KAFKA_HOME}/bin下,有很多的脚本,其中有一个...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)