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

目录

四、数据可视化与 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。

  • 确认 Hue Server 运行在 Python 2.6 或以上版本上。
  • 安装了 MySQL 数据库(MySQL 数据库的安装配置详见Install and Configure MySQL for Cloudera Software | 6.3.x | Cloudera Documentation)。
  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 目录,再操作就不会报错了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/917386.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/917386.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HarmonyOS 开发:基于 ArkUI 实现复杂表单验证的最佳实践

摘要 在现代应用开发中,表单是最常见的交互方式之一。不管是用户注册、信息录入,还是登录验证,表单的可靠性直接影响用户体验。而在鸿蒙 ArkUI 开发中,虽然表单结构清晰,但要实现 复杂验证(比如&#xff1a…

高效游戏状态管理:使用双模式位运算与数学运算

在游戏开发中,状态管理是一个核心问题。无论是任务系统、成就系统还是玩家进度跟踪,我们都需要高效地存储和查询大量状态。本文将深入分析一个创新的游戏状态管理工具类 GameStateUtil,它巧妙结合了位运算和数学运算两种模式,在存…

linux-process-control

Linux进程控制 1. 进程终止 1.1. 进程终止的本质是回收资源 1.1 释放资源 内存资源: 释放进程的地址空间(mm_struct),包括代码段、数据段、堆、栈等,通过写时复制(CoW)共享的页会减少引用计数&a…

Autoswagger:揭露隐藏 API 授权缺陷的开源工具

Autoswagger 是一款免费的开源工具,用于扫描 OpenAPI 文档中列出的 API,查找授权漏洞。 即使在拥有成熟安全团队的大型企业中,这类漏洞仍然很常见,而且尤其危险,因为即使技术水平不高的人也能利用它们。 Autoswagger…

Golang 语言 Channel 的使用方式

一、无缓存 channel无缓冲channel 可用于两个goroutine 之间 传递信号,比如以下示例:顺序打印1 至 100 的奇数和偶数:import ("fmt""time" )func main() {block : make(chan struct{})go odd(block)go even(block)time.S…

Element Plus常见基础组件(一)

基础组件 Button 按钮 一、基础用法 <el-button>默认按钮</el-button> <el-button type"primary">主要按钮</el-button>二、按钮类型 (type) 类型说明示例代码default默认按钮<el-button>默认</el-button>primary主要按钮&a…

sdxl量化加速笔记

文章目录一、量化加速sdxl模型1&#xff09;涉及模型2&#xff09;环境安装3&#xff09;转换模型safetensor to pytorch文件4&#xff09;tensorRT的环境准备&#xff08;1&#xff09;下载tensorRT 10.10&#xff08;2&#xff09;下载cuda一、量化加速sdxl模型 1&#xff0…

西门子 G120 变频器全解析:从认知到参数设置

在工业自动化领域&#xff0c;变频器作为电机驱动的核心设备&#xff0c;其稳定运行与精准控制直接影响生产效率。西门子 G120 变频器凭借可靠性能与灵活配置&#xff0c;成为众多工业场景的优选。本文将从基础认知、操作面板到参数设置&#xff0c;全方位带你掌握 G120 变频器…

【自动化运维神器Ansible】YAML支持的数据类型详解:构建高效Playbook的基石

目录 1 YAML数据类型概述 1.1 为什么数据类型很重要&#xff1f; 1.2 YAML数据类型分类 2 标量类型&#xff08;Scalars&#xff09; 2.1 字符串&#xff08;String&#xff09; 2.2 布尔值&#xff08;Boolean&#xff09; 2.3 数值&#xff08;Numbers&#xff09; 2…

基于岗位需求的康养休闲旅游服务实训室建设方案

一、康养休闲旅游服务实训室建设方案建设需求分析康养休闲旅游服务行业的快速发展对技能人才提出了精准化、场景化的能力要求&#xff0c;康养休闲旅游服务实训室建设方案需紧密对接健康咨询、接待服务、康乐服务等核心岗位群的实际需求。从岗位技能来看&#xff0c;健康咨询岗…

MES 与工业物联网(IIoT)的化学反应:为何是智能工厂的 “神经中枢”?

从“被动救火”到“主动预警”的工厂革命想象一下&#xff0c;当你正在家中熟睡时&#xff0c;智能手环突然震动&#xff0c;提醒你心率异常&#xff1b;早上出门前&#xff0c;手机 APP 告诉你爱车的某个零件即将达到磨损极限&#xff0c;建议及时更换。这些日常生活中的智能预…

工作好用小工具积累

1、内部环境太多&#xff0c;网站导航git地址&#xff1a;https://github.com/hslr-s/sun-panel/releases gitee地址&#xff1a;https://gitee.com/luofei1284999247/sun-panel

智能Agent场景实战指南 Day 26:Agent评估与性能优化

【智能Agent场景实战指南 Day 26】Agent评估与性能优化 开篇 欢迎来到"智能Agent场景实战指南"系列的第26天&#xff01;今天我们将深入探讨智能Agent的评估方法与性能优化技术。构建高效、可靠的智能Agent系统需要完善的评估体系和优化策略&#xff0c;本文将系统…

机器学习——下采样(UnderSampling),解决类别不平衡问题,案例:逻辑回归 信用卡欺诈检测

过采样&#xff1a; 机器学习——过采样&#xff08;OverSampling&#xff09;&#xff0c;解决类别不平衡问题&#xff0c;案例&#xff1a;逻辑回归 信用卡欺诈检测-CSDN博客 &#xff08;完整代码在底部&#xff09; 使用下采样解决类别不平衡问题 —— 以信用卡欺诈识别为…

Qt 槽函数被执行多次,并且使用Qt::UniqueConnection无效【已解决】

Qt 槽函数被执行多次&#xff0c;并且使用Qt::UniqueConnection无效引言一、问题描述二、解决方案三、深入了解信号和槽绑定机制引言 之前刚遇到 - 信号和槽正常连接返回true&#xff0c;但发送信号后槽函数无响应问题&#xff0c;现在又遇到槽函数执行多次&#xff0c;使用Qt…

Autosar Nm-网管报文PNC停发后无法休眠问题排查

文章目录前言Autosar CanNm标准中的相关参数CanNmAllNmMessagesKeepAwakePN过滤功能CanNm_ConfirmPnAvailability问题描述问题原因排查解决方案扩展总结前言 Autosar Nm中针对于支持PN功能的收发器&#xff0c;要求PNC停发后允许进入休眠模式&#xff0c;开发过程中遇到PNC停发…

RK3568下的进程间通信:基于UDP的mash网络节点通信

基于UDP的mash网络节点通信系统实现: 最近的项目中需要实现一个功能,类似mash网络的功能,比如 类似下图中的多个节点之间,相互之间通信, 节点A自身的通信列表中,只有B和C,所以A发出的消息给B和C,依次类推,A发送的消息所有节点都能收到,同理,其他节点比如K节点发送的…

Effective C++ 条款17:以独立语句将newed对象置入智能指针

Effective C 条款17&#xff1a;以独立语句将newed对象置入智能指针核心思想&#xff1a;使用智能指针管理动态分配的对象时&#xff0c;必须确保new操作与智能指针构造在同一独立语句中完成&#xff0c;避免编译器优化顺序导致的内存泄漏。 ⚠️ 1. 跨语句初始化的危险性 资源…

Linux iptables防火墙操作

资料&#xff1a; 网络运维相关 - iptables 【Main】 https://www.zsythink.net/archives/tag/iptables/ netfilter 在 Linux 内核 TCP/IP协议栈中的位置 【框架】【Aulaxiry】 https://zhuanlan.zhihu.com/p/93630586 1 概念详解 ● 防火墙概念 ○ 主机防火墙 网络防火墙 ○…

飞书推送工具-自动化测试发送测试报告一种方式

飞书推送工具 要获取飞书开发所需的 APP_ID、APP_SECRET 以及用户的 USER_ID&#xff0c;需通过飞书开放平台和飞书客户端的相关设置操作。以下是详细步骤&#xff1a; 一、获取 APP_ID 和 APP_SECRET&#xff08;飞书应用凭证&#xff09; APP_ID 和 APP_SECRET 是飞书开放…