2.4 Hue
Hue(Hadoop User Experience)是一个开源的 Web 界面,旨在简化 Hadoop 生态系统中的数据分析和管理。它提供了一系列工具,用户可以通过图形界面访问和操作 Hadoop 的各个组件,如 Hive、Pig 和 HDFS。Hue 支持运行 SQL 查询、管理文件、可视化数据,并提供各种插件来扩展功能。通过 Hue,用户 可以更直观地与数据交互,提升工作效率。你对 Hue 的某个特定功能感兴趣吗?
基本原理
Hue 提供了 FusionInsight HD 应用的图形化用户界面。Hue 支持展示多种组件,目前支持 HDFS、Hive、YARN/MapReduce、Oozie、Solr、ZooKeeper 以及 Spark。通过 Hue 可以在界面针对组件进行以下操作。
HDFS:查看、创建、管理、删除文件/目录,上传文件;手动配置 HDFS 目录存储策略,配置动态存储策略等操作。
Hive:编辑、执行 HQL,也可通过 metastore 对数据库及表和视图进行增删改查等操作。
说明:
如果使用 IE 浏览器访问 Hue 界面来执行 HiveSQL,由于浏览器存在的功能问题,将导致执行失败。建议使用兼容的浏览器,例如 Google Chrome 浏览器 21 及以上版本。
MapReduce:查看集群中正在执行和已经完成的 MR 任务,包括它们的状态,起始结束时间、运行日志等。
Oozie:提供了 Oozie 作业管理器功能,使用户可以通过界面图形化的方式使用 Oozie。
Solr:支持基于 Solr 进行搜索的应用,并提供可视化的数据视图。
ZooKeeper:提供了 ZooKeeper 浏览器功能,使用户可以通过界面图形化的方式查看 ZooKeeper。
Spark:编辑、执行 Spark SQL,查看执行结果等。
结构
Hue 是建立在 Django Python 的 Web 框架上的 Web 应用程序,采用了 MTV(模型 M-模板 T-视图 V) 的软件设计模式。(Django Python 是开放源代码的 Web 应用框架。)
Hue 由“Supervisor Process”和“WebServer”构成。“Supervisor Process”是 Hue 的核心进程,负责应用进程管理。
“Supervisor Process”和“WebServer”通过“THRIFT/REST”接口与 WebServer 上的应用进行交互,如 图 1 所示。
图 Hue 架构示意图
表 1 结构图说明 | |
---|---|
名称 | 描述 |
Supervisor Process | Supervisor 负责 WebServer 上 APP 的进程管理:启动、停止、监控等。 |
Hue WebServer | 通过 Django Python 的 Web 框架提供如下功能。 部署 APPs。 提供图形化用户界面。 与数据库连接,存储 APPs 的持久化数据。 |
与组件的关系
Hue 与 Hadoop 集群的交互关系如 图 1 所示。
图 Hue 与 Hadoop 集群
表 1 Hue 与 Hadoop 集群交互关系 | |
---|---|
名称 | 描述 |
HDFS | HDFS 提供 REST 接口与 Hue 交互,用于查询、操作 HDFS 文件。 |
Hive | Hive 提供 THRIFT 接口与 Hue 交互,用于执行 Hive SQL、查询表元数据。 |
YARN/MapReduce | MapReduce 提供 REST 与 Hue 交互,用于查询 Yarn 作业信息。 |
Oozie | Oozie 提供 REST 接口与 Hue 交互,用于创建工作流、Coordinator、Bundle,以及它们的任务管理和监控。 |
Solr | Solr 提供 REST 接口与 Hue 交互,用于定义 Index、搜索。 |
Zookeeper | Zookeeper 提供 REST 接口与 Hue 交互,用于查询 Zookeeper 节点信息。 |
Spark | Hive 提供 JDBC 接口与 Hue 交互,用于执行 Spark SQL。 |
- Hue 与 HDFS 交互原理
在 Hue 把用户请求从用户界面组装成接口数据,通过调用 REST 接口调用 HDFS,通过浏览器返回结果呈现给用户。
- Hue 与 Hive 交互原理
在 Hue 界面编辑 HQL 语句,通 THRIFT 接口提交 HQL 语句到 HIVESERVER 执行,同时把执行通过浏览器呈现给用户。
- Hue 与 MapReduce 交互原理
进入 Hue 页面,输入筛选条件参数,UI 将参数发送到后台,Hue 通过调用 MapReduce(MR1/MR2-YARN) 提供的 REST 接口,获取任务运行的状态,起始结束时间、运行日志等信息。
- Hue 与 Oozie 交互原理
在 Hue 前端提供图形化工作流、Coordinator、Bundle 编辑器,Hue 调用 Oozie REST 接口对工作流、Coordinator、Bundle 进行创建、修改、删除、提交、监控。
- Hue 与 Solr 交互原理
在 Hue 前端通过浏览器点击、输入等方式输入筛选参数,Hue 前端将筛选参数传到后台,Hue 后台调用 Solr 的 REST 接口,然后以 JSON 格式将 Solr 返回的结果返回给 Hue 前台,Hue 前台利用图标控件将结果展示出来。
- Hue 与 Zookeeper 交互原理
在 Hue 前端显示 Zookeeper 节点信息,Hue 调用 Zookeeper REST 接口获取这些节点信息。
- 在 Hue 前端提供 Spark SQL 编辑器,Hue 调用 Spark 的 JDBC 接口执行 Spark SQL。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论