基于 Hadoop 生态圈的数据仓库实践 —— OLAP 与数据可视化(四)

发布于:2025-07-31 ⋅ 阅读:(17) ⋅ 点赞:(0)

目录

四、数据可视化与 Hue 简介

1. 数据可视化简介

(1)数据可视化的重要性

(2)数据可视化的用途

(3)实施数据可视化需要考虑的问题

(4)几种主要的数据可视化工具

2. Hue 简介

(1)Hue 是什么

(2)Hue 功能快速预览

(3)配置元数据存储


四、数据可视化与 Hue 简介

1. 数据可视化简介

        数据可视化在维基百科上是这样定义的:指一种表示数据或信息的技术,它将数据或信息编码为包含在图形里的可见对象(如点、线、条等),目的是将信息更加清晰有效地传达给用户,是数据分析或数据科学的关键技术之一。简单地说,数据可视化就是以图形化方式表示数据。决策者可以通过图形直观地看到数据分析结果,从而更容易理解业务变化趋势或发现新的业务模式。使用可视化工具,可以在图形或图表上进行下钻,以进一步获得更细节的信息,交互式地观察数据改变和处理过程。

(1)数据可视化的重要性

        从人类大脑处理信息的方式看,使用图形图表观察大量复杂数据要比查看电子表格或报表更容易理解。数据可视化就是这样一种以最为普通的方式,向人快速、简单传达信息的技术。通过数据可视化能够有效地利用数据,帮助人们给诸如以下问题快速提供答案:

  • 需要注意的问题或改进的方向。
  • 影响客户行为的因素。
  • 确定商品放置的位置。
  • 销量预测。

        通过增加数据可视化的使用,能够使企业更快地发现所要追求的价值。创建更多的信息图表,让人们更快地使用更多的资源,获得更多的信息。同时使人们意识到已经知道很多信息,而这些信息先前就应该是很明显的,从而增加了人们能够提出更好问题的可能。它创建了似乎没有任何联系的数据点之间的连接,让人们能够分辨出有用的和没用的数据,这样,就能最大限度的提高生产力,让信息的价值最大化。

(2)数据可视化的用途

  • 快速理解信息

        通过使用业务信息的图形化表示,企业可以以一种清晰的、与业务联系更加紧密的方式查看大量的数据,根据这些信息制定决策。并且由于相对于电子表格的数据分析,图形化格式的数据分析要更快,因此企业可以更加及时地发现问题、解决问题。

  • 标识关系和模式

        即使面对大量错综复杂的数据,图形化表示也使数据变得可以理解。企业能够识别高度关联、互相影响的多个因素。这些关系有些是显而易见的,有些则不易发现。识别这些关系可以帮助组织聚焦于最有可能影响其重要目标的领域。

  • 确定新兴趋势

        使用数据可视化,可以辅助企业发现业务或市场趋势,准确定位超越竞争对手的自身优势,最终影响其经营效益。企业更容易发现影响产品销量和客户购买行为的异常数据,并把小问题消灭于萌芽之中。

  • 方便沟通交流

        一旦从可视化分析中对业务有了更新的深入了解,下一步就需要在组织间沟通这些情况。使用图表、图形或其他有效的数据可视化表示在沟通中是非常重要的,因为这种表示更能吸引人的注意,并能快速获得彼此的信息。

(3)实施数据可视化需要考虑的问题

        实施一个新技术,需要采取一些步骤。除了扎实地掌握数据外,还需要理解目标、需求和受众。在组织准备实施数据可视化技术时,先要做好以下功课:

  • 明确试图可视化的数据,包括数据量和基数(一列数据中不同值的个数)。
  • 确定需要可视化和传达的信息种类。
  • 了解数据的受众,并领会他们如何处理可视化信息。
  • 使用一种对受众来说最优、最简的可视化方案传达信息。

        在关于数据的属性和作为信息消费者的受众的相关问题有了答案后,就需要准备与大量的数据打交道了。大数据给可视化带来新的挑战,4V(Volume、Velocity、Variety、Veracity)是必须要考虑的问题,而且数据产生的速度经常会比其被管理和分析的速度快。需要可视化的列的基数也是应该重点考虑的因素,高基数意味着该列有大量不同值(如银行账号等),而低基数则说明该列有大量重复值(如性别列)。

(4)几种主要的数据可视化工具

  • Tableau Desktop(主流桌面 BI)
  • Business Object(SAP 收购的 BI 公司)
  • Hyperion(Oracle 收购的 BI 公司)
  • Cognos(IBM 收购的 BI 公司)
  • Pentaho Report(最流行的开源 BI)

2. Hue 简介

        前面讨论了数据可视化,那么在 Hadoop 生态圈中,有哪些图形化的用户界面可以做数据可视化呢?这里就简单介绍一个常用的 Hadoop 组件 —— Hue。

(1)Hue 是什么

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

        我使用的 CDH 5.7.0 自带的 Hue 是 3.9.0 版本。通过使用 CDH 的 Hue Web 应用,可以与 Hadoop 集群进行交互。在 Hue 中可以浏览 HDFS 和作业,管理 Hive 元数据,运行 Hive、Impala 查询或 Pig 脚本,浏览 HBase,用 Sqoop 导出数据,提交 MapReduce 程序,用 Solr 建立定制的搜索引擎,调度重复执行的 Oozie 工作流等。

        Hue 应用运行在 Web 浏览器中,不需要安装客户端。其体系结构如下图所示。

        Hue Server 是 Web 应用的容器,位于 CDH 和浏览器之间,是所有 Hue Web 应用的宿主,负责与 CDH 组件通信。

(2)Hue 功能快速预览

        可以从 CDH Manager 中的连接登录 Hue。点击集群中的 Hue 服务,如下图所示。

        在 Hue 页面点击 Hue Web UI 链接,如下图所示。

        这时会打开登录页面,要求输入用户名/密码,首次登录输入任意字符串,会自动作为管理员的用户名和密码,如下图所示。

        登录后 Hue 会进行配置检查、安装示例、创建或导入用户等向导步骤,然后进入 Hue 主页。我的 Hue 主页如下图所示。

        图中最上面是导航条,11 个图标都有超链接。Hue 图标是“关于 Hue”链接,点击进入刚登录后的向导步骤页面。第二个是主页图标,点击进入“我的文档”页面。后面依次为“查询数据”、“管理数据”、“使用 Oozie 的计划”、“管理HDFS”、“管理作业”、“管理”、“文档”、“演示教程”和“注销”子菜单或超链接。“查询数据”子菜单包括 Hive、Impala、DB 查询、Pig 和作业设计器。“管理数据”子菜单包括 Metastore 表和 Sqoop 传输。“使用 Oozie 的计划”包括 WorkFlow、Coordinator、Bundles三种 Oozie 工作流的仪表板和编辑器。“管理”包括编辑配置文件和管理用户子菜单。

        这些是 Hue 主要的功能,每个主功能下面的详细页面这里就不展示了,都是页面操作,感兴趣的点击试一下便知。在这些功能特性集合中,“查询数据”与数据可视化关系最为密切,也是最常使用的功能。在后面实例部分,将会看到与查询相关的图形化表示,还会演示其他一些Hue的常用功能。

(3)配置元数据存储

        像 Hadoop 的其他组件一样,Hue 也有很多配置选项,每个选项的具体含义和配置说明可以从 CDH Manager 的 Hue 配置页或相关文档中找到。在这需要说明一下的是 Hue 自身的元数据存储配置。

        Hue 服务器需要一个 SQL 数据库存储诸如用户账号信息、提交的作业、Hive 查询等少量数据。CDH 5.7.0 缺省安装时,Hue 的元数据存储在一个嵌入式数据库 SQLite 中,但这种配置并不适用于生产环境。Hue 也支持 MariaDB、MySQL、PostgreSQL、Oracle 等几种外部数据库。Cloudera 强烈推荐在 Hue 多用户环境,特别是生产环境中使用外部数据库。CDH 5 所支持的数据库完整列表链接在http://www.cloudera.com/documentation/enterprise/latest/topics/cdh_ig_req_supported_versions.html#topic_2

        下面说明使用 CDH Manager 配置 Hue 服务器在 MySQL 中存储元数据的详细步骤(注意:Cloudera 推荐使用 InnoDB 作为 Hue 的 MySQL 存储引擎。CDH 5 的 Hue 需要 InnoDB)。

        配置前需求:

  • 安装所用操作系统需要的所有类库。如 CentOS/RHEL 需要的类库如下:

            Oracle's JDK (read more here)
            ant
            asciidoc
            cyrus-sasl-devel
            cyrus-sasl-gssapi
            cyrus-sasl-plain
            gcc
            gcc-c++
            krb5-devel
            libffi-devel
            libtidy (for unit tests only)
            libxml2-devel
            libxslt-devel
            make
            mvn (from apache-maven package or maven3 tarball)
            mysql
            mysql-devel
            openldap-devel
            python-devel
            sqlite-devel
            openssl-devel (for version 7+)
            gmp-devel

        各操作系统需要的类库完整列表链接在https://github.com/cloudera/hue#development-prerequisites

  1. 在 Cloudera Manager 管理控制台中,从服务列表中点击“Hue”进入Hue服务状态页面。
  2. 选择“操作” > “停止”,停止 Hue 服务,如下图所示。

  3. 选择“操作” > “转储数据库”,将元数据库转储为一个 json 文件中。
  4. 注意在“转储数据库”命令执行窗口中,确认转储文件所在的主机,如下图所示。

  5. 在该主机上打开一个终端窗口,编辑 /tmp/hue_database_dump.json 文件,去掉文件中 useradmin.userprofile 段中的所有 JSON 对象,例如:
    {
    "pk": 14,
    "model": "useradmin.userprofile",
    "fields":
    { "creation_method": "EXTERNAL", "user": 14, "home_directory": "/user/tuser2" }
    },
  6. 在 /etc/my.cnf 文件中设置 MySQL 严格模式。
    [mysqld]
    sql_mode=STRICT_ALL_TABLES
  7. 在 MySQL 中建立一个新的数据库并授予一个Hue用户该库的管理员权限,例如:
    mysql> create database hue;
    Query OK, 1 row affected (0.01 sec)
    mysql> grant all on hue.* to 'hue'@'localhost' identified by 'secretpassword';
    Query OK, 0 rows affected (0.00 sec)
  8. 在 Cloudera Manager 管理控制台,点击“Hue”服务。
  9. 点击“配置”标签。
  10. “类别”选择“数据库”。
  11. 指定 Hue 数据库的类型、主机名、端口、用户名、密码和数据库名。例如下图所示。

  12. 在新数据库还原 Hue 的元数据。

            a. 选择“操作” > “同步数据库”。
            b. 确认外键,如下图所示。

$ mysql -uhue -psecretpassword
mysql > SHOW CREATE TABLE auth_permission\G
mysql > SHOW CREATE TABLE desktop_document\G
mysql > SHOW CREATE TABLE django_admin_log\G

            c. 删除上一步查出的外键。

mysql > ALTER TABLE auth_permission DROP FOREIGN KEY content_type_id_refs_id_d043b34a;
mysql > ALTER TABLE desktop_document DROP FOREIGN KEY content_type_id_refs_id_800664c4;
mysql > ALTER TABLE django_admin_log DROP FOREIGN KEY content_type_id_refs_id_93d2d1f8;

            d. 删除 django_content_type 表里的数据。

DELETE FROM hue.django_content_type;

            e. 在 Hue 服务页,点击“操作” > “加载数据库”。
            f. 添加 c 步删除的外键。

mysql > ALTER TABLE auth_permission ADD FOREIGN KEY (content_type_id) REFERENCES django_content_type (id);
mysql > ALTER TABLE desktop_document ADD FOREIGN KEY (content_type_id) REFERENCES django_content_type (id);
mysql > ALTER TABLE django_admin_log ADD FOREIGN KEY (content_type_id) REFERENCES django_content_type (id);

        13. 启动 Hue 服务。

        如果在上述步骤中报类似“libmysqlclient.so.16: cannot open shared object file: No such file or directory”这种错误,说明 MySQL 的类库和 Hue 所需的不兼容,这时只需下载兼容版本的库文件,并放置到 /usr/lib64 目录,再操作就不会报错了。


网站公告

今日签到

点亮在社区的每一天
去签到