【大数据学习篇12】 Spark项目实战-数据可视化(一)

本文涉及的产品
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
简介: 【大数据学习篇12】 Spark项目实战-数据可视化

学习目标/Target

了解数据可视化系统架构


掌握Phoenix集成HBase


熟悉建立Phoenix与HBase表映射


了解Spring Boot项目的创建


掌握Java Web项目中实体类的创建


掌握Java Web项目中数据库访问接口的创建


掌握Java Web项目中控制器类的创建


熟悉Java Web项目中HTML页面的创建


熟悉如何运行Spring Boot项目


概述

       数据可视化是指将数据或信息表示为图形中的可视对象来传达数据或信息的技术,目标是清晰有效地向用户传达信息,以便用户可以轻松了解数据或信息中的复杂关系。用户可以通过图形中的可视对象直观地看到数据分析结果,从而更容易理解业务变化趋势或发现新的业务模式。数据可视化是数据分析中的一个重要步骤。本章将详细讲解如何搭建数据可视化系统,展示本项目的分析结果数据。


1. 系统概述

1.1  技术选取


ac3d17d48b75407387012311a0de29f4.png

d904e270570c4d939212c648df713807.png


       SpringBoot 的设计目的是为了简化Spring应用的初始搭建以及开发过程,摆脱复杂的手动配置,能迅速搭建起一个Java Web项目。


8cd5dfeb95324a2cad15a07abb8889c5.png


       MyBatis是一个开源的数据持久层框架,其内部封装了JDBC访问数据库的操作,支持普通的SQL查询、存储过程和高级映射。


e1d9f7139df5446abb5910050c5bb9ad.png


        Echarts是一个使用 JavaScript 实现的开源可视化库,可以流畅的运行在 PC 和移动设备上,提供了多种丰富的可视化类型。


多学一招:Phoenix查询引擎与MyBatis


       MyBatis是一个支持SQL查询的数据持久层框架,而项目所用到的HBase数据库是不支持JDBC访问和SQL语句查询的,这就导致我们搭建的数据可视化系统无法使用MyBatis框架访问HBase数据库。因此,需要借助Apache Phoenix查询引擎使得HBase支持通过JDBC的方式进行访问,并将SQL查询转成 HBase的相关操作。


1.2  系统架构

离线数据可视化展示


39b743bfadbb48d8a09c69ea8973aae0.png

51c6ff59652b467ca9c4363006ff4c79.png


实时数据可视化展示


2859a80872244656aab01ccb61138aa7.png

793e1acec7d34f978a2c478cd5f43cf2.png

2. 数据表设计与实现

2.1  数据表介绍

热门品类Top10分析结果表user_session_top10


image.png

各区域热门商品Top3分析结果表user_session_top3

image.png

页面单跳转化率统计表conversion

image.png

用户广告点击流实时统计表adstream

image.png


2.2  Phoenix集成HBase


eca20e3e97544d72801f06e908f06bc1.png

在虚拟机Spark01中安装Phoenix并集成HBase。


STEP  01


下载Phoenix安装包:


       访问Phoenix官网下载Linux操作系统的Phoenix安装包apache-phoenix-4.14.1-HBase-1.2-bin.tar.gz。


STEP  02


上传Phoenix安装包:


       使用SecureCRT远程连接工具连接虚拟机Spark01,在存放应用安装包的目录/export/software/下执行“rz”命令上传Phoenix安装包。


STEP  03

安装Phoenix:


        通过解压缩的方式安装Phoenix,将Phoenix安装到存放应用的目录/export/servers/。


tar -zxvf /export/software/apache-phoenix-4.14.1-HBase-1.2-bin.tar.gz -C /export/servers/


STEP  04

Phoenix集成HBase(拷贝jar包):


       进入Phoenix安装目录,将phoenix-core-4.14.1-HBase-1.2.jar和phoenix-4.14.1-HBase-1.2-client.jar拷贝到HBase安装目录的lib目录下。


$ cd /export/servers/apache-phoenix-4.14.1-HBase-1.2-bin/


$ cp {phoenix-core-4.14.1-HBase-1.2.jar,phoenix-4.14.1-HBase-1.2-client.jar} /export/servers/hbase-1.2.1/lib/


STEP  05


Phoenix集成HBase(关闭HBase集群):


       执行“stop-hbase.sh”命令关闭HBase集群。


STEP  06


Phoenix集成HBase(修改HBase配置文件):


       进入HBase安装目录下的conf目录,执行“vi hbase-site.xml”命令编辑hbase-site.xml文件,添加命名空间映射配置。


<property>


   <name>phoenix.schema.isNamespaceMappingEnabled</name>


   <value>true</value>


</property>


<property>


   <name>phoenix.schema.mapSystemTablesToNamespace</name>


   <value>true</value>


</property>


STEP  07

Phoenix集成HBase(分发文件):


       将HBase安装目录分发到集群中的其它两台虚拟机Spark02和Spark03。


scp -r /export/servers/hbase-1.2.1/ root@spark02:/export/servers/


scp -r /export/servers/hbase-1.2.1/ root@spark03:/export/servers/


STEP  08


Phoenix集成HBase(复制HBase配置文件):


       进入HBase安装目录下的conf目录,将hbase-site.xml文件复制到Phoenix安装目录下的bin目录。


cp hbase-site.xml /export/servers/apache-phoenix-4.14.1-HBase-1.2-bin/bin/


STEP  09


Phoenix集成HBase(启动HBase集群):


       执行“start-hbase.sh”命令启动HBase集群。


4b69635333904446af45aca608dfaba0.pngfe73773b4c6342b99f9d190ddd367f3a.png


       在启动HBase集群前应确保Hadoop和Zookeeper集群正常启动,且保证集群各服务间时间一致,若出现时间不一致情况,则需要在各服务器执行“systemctl restart chronyd”命令重启chronyd服务进行时间同步。


2.3  建立Phoenix与HBase表映射

6448e2a6840c478d8c7d5ce14f0b87e0.png

       操作Phoenix,建立Phoenix与HBase表映射。


        Phoenix提供三种操作方式,即命令行界面、JDBC和Squirrel,其中命令行界面是Phoenix默认提供的交互工具sqlline;JDBC是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口;Squirrel是Phoenix的客户端工具提供可视化操作窗口。

b97ab697e2b64412a03e6d42dedece6a.png

2d77d06e9f9f40c09bd61a35a4416b3e.png

连接Phoenix:

        在Phoenix安装目录的bin目录中存在Python脚本文件sqlline.py用于启动sqlline,在启动sqlline时需要输入Zookeeper集群地址及端口号连接Phoenix。


#进入Phoenix安装目录 $ cd /export/servers/apache-phoenix-4.14.1-HBase-1.2-bin


#启动sqlline


$ bin/sqlline.py spark01,spark02,spark03:2181

325495c4608c4352b2be5ecf19d59946.png

c6d49ea15ce446d992ee16fd15f532de.png


查看Phoenix表及视图:

        在sqlline中执行“!table”命令查看Phoenix表及视图。


8004bfdb267f400a94eac444086cb4ab.png

4b9b8132f7d14bebb12f02f29e2d7279.png

建立表映射(top10):


       通过CREATE语句在Phoenix中创建表top10建立与HBase数据库中表top10 的映射。


> create table "top10"


> (


> "ROW" varchar primary key,


> "top10_category"."cartcount" varchar,


> "top10_category"."category_id" varchar ,


> "top10_category"."purchasecount" varchar ,


> "top10_category"."viewcount" varchar


> ) column_encoded_bytes=0;


22aec08c43214ffb9f6a7128b9d3a7bf.png


       建立表映射(top3)。 通过CREATE语句在Phoenix中创建表top3建立与HBase数据库中表top3 的映射。


> create table "top3"


> (


> "ROW" varchar primary key,


> "top3_area_product"."product_id" varchar,


> "top3_area_product"."viewcount" varchar,


> "top3_area_product"."area" varchar


> ) column_encoded_bytes=0;



68c9fd300e81498183944204bbe5ca34.png

建立表映射(conversion):


       通过CREATE语句在Phoenix中创建表conversion建立与HBase数据库中表conversion的映射。


> create table "conversion"


> (


> "ROW" varchar primary key,


> "page_conversion"."convert_page" varchar,


> "page_conversion"."convert_rage" varchar


> ) column_encoded_bytes=0;


dd2c732afd354f7597a2800948fda829.png


建立表映射(adstream):        


        通过CREATE语句在Phoenix中创建表adstream建立与HBase数据库中表adstream的映射。


> create table "adstream"


> (


> "ROW" varchar primary key,


> "area_ads_count"."city" varchar,


> "area_ads_count"."ad_count" varchar,


> "area_ads_count"."ad_id" varchar


> ) column_encoded_bytes=0;


5f8b5f553c2b46faa97882793947a5e3.png


       Phoenix的命令区分大小写,如果不加双引号,则默认为大写,因此在Phoenix中执行创建表的命令时需要在表名、列族名和列名处添加双引号。

8796543731db433db2bb1605b1d9125c.png

       若在Phoenix中执行删除表操作,则HBase中具有映射关系的表也会一同被删除,导致数据丢失。如果Phoenix中创建的映射表只是用于查询操作,则建议使用创建视图的方式建立映射,建立视图映射的方式与建立表映射的方式一致,这里以建立视图adstream的映射为例。


> create view "adstream"


> ( > "ROW" varchar primary key,


> "area_ads_count"."city" varchar,


> "area_ads_count"."ad_count" varchar,


> "area_ads_count"."ad_id" varchar


> );


       如果想要删除Phoenix中的表,又不想在删除Phoenix表的同时删除HBase中的映射表,造成数据的丢失,那么可以在Phoenix中执行删除表操作前,在HBase中创建映射表的快照。


disable '映射表'


#关闭表 snapshot '映射表', '快照名称'


#创建快照


       在Phoenix中执行删除表操作后,在HBase中通过创建的快照恢复映射表。


list_snapshots  #查询所有快照


clone_snapshot '快照名称', '映射表'   #克隆快照赋予新的表


相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps&nbsp;
目录
相关文章
|
9天前
|
分布式计算 Shell Scala
学习使用Spark
学习使用Spark
28 3
|
11天前
|
机器学习/深度学习 分布式计算 大数据
Spark 适合解决多种类型的大数据处理问题
【9月更文挑战第1天】Spark 适合解决多种类型的大数据处理问题
24 3
|
12天前
|
分布式计算 Shell Scala
如何开始学习使用Spark?
【8月更文挑战第31天】如何开始学习使用Spark?
26 2
|
14天前
|
分布式计算 大数据 Apache
跨越界限:当.NET遇上Apache Spark,大数据世界的新篇章如何谱写?
【8月更文挑战第28天】随着信息时代的发展,大数据已成为推动企业决策、科研与技术创新的关键力量。Apache Spark凭借其卓越的分布式计算能力和多功能数据处理特性,在大数据领域占据重要地位。然而,对于.NET开发者而言,如何在Spark生态中发挥自身优势成为一个新课题。为此,微软与Apache Spark社区共同推出了.NET for Apache Spark,使开发者能用C#、F#等语言编写Spark应用,不仅保留了Spark的强大功能,还融合了.NET的强类型系统、丰富库支持及良好跨平台能力,极大地降低了学习门槛并拓展了.NET的应用范围。
33 3
|
11天前
|
Java Spring API
Spring框架与GraphQL的史诗级碰撞:颠覆传统,重塑API开发的未来传奇!
【8月更文挑战第31天】《Spring框架与GraphQL:构建现代API》介绍了如何结合Spring框架与GraphQL构建高效、灵活的API。首先通过引入`spring-boot-starter-data-graphql`等依赖支持GraphQL,然后定义查询和类型,利用`@GraphQLQuery`等注解实现具体功能。Spring的依赖注入和事务管理进一步增强了GraphQL服务的能力。示例展示了从查询到突变的具体实现,证明了Spring与GraphQL结合的强大潜力,适合现代API设计与开发。
28 0
|
6天前
|
存储 大数据 数据挖掘
【数据新纪元】Apache Doris:重塑实时分析性能,解锁大数据处理新速度,引爆数据价值潜能!
【9月更文挑战第5天】Apache Doris以其卓越的性能、灵活的架构和高效的数据处理能力,正在重塑实时分析的性能极限,解锁大数据处理的新速度,引爆数据价值的无限潜能。在未来的发展中,我们有理由相信Apache Doris将继续引领数据处理的潮流,为企业提供更快速、更准确、更智能的数据洞察和决策支持。让我们携手并进,共同探索数据新纪元的无限可能!
47 11
|
11天前
|
存储 分布式计算 大数据
MaxCompute 数据分区与生命周期管理
【8月更文第31天】随着大数据分析需求的增长,如何高效地管理和组织数据变得至关重要。阿里云的 MaxCompute(原名 ODPS)是一个专为海量数据设计的计算服务,它提供了丰富的功能来帮助用户管理和优化数据。本文将重点讨论 MaxCompute 中的数据分区策略和生命周期管理方法,并通过具体的代码示例来展示如何实施这些策略。
38 1
|
17天前
数据平台问题之在数据影响决策的过程中,如何实现“决策/行动”阶段
数据平台问题之在数据影响决策的过程中,如何实现“决策/行动”阶段
|
20天前
|
存储 监控 安全
大数据架构设计原则:构建高效、可扩展与安全的数据生态系统
【8月更文挑战第23天】大数据架构设计是一个复杂而系统的工程,需要综合考虑业务需求、技术选型、安全合规等多个方面。遵循上述设计原则,可以帮助企业构建出既高效又安全的大数据生态系统,为业务创新和决策支持提供强有力的支撑。随着技术的不断发展和业务需求的不断变化,持续优化和调整大数据架构也将成为一项持续的工作。
|
23天前
|
分布式计算 DataWorks 关系型数据库
DataWorks产品使用合集之ODPS数据怎么Merge到MySQL数据库
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。

热门文章

最新文章