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

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

3. 创建Spring Boot项目

通过IntelliJ IDEA开发工具创建并配置Spring Boot项目,为数据可视化系统的实现奠定基础。


步骤一:创建项目


       打开IntelliJ IDEA开发工具,使用Spring Initializr初始化Spring Boot项目,构建Spring Boot项目结构。


选择使用的JDK版本


c1ffe1c53bb4423ab611e6bec160a3ba.png


步骤二:配置项目信息


在“Project Metadata”界面配置项目基本信息。


项目组织唯一标识符


项目唯一的标识符


JDK版本


15e20be56fa44a20b306083702c4c258.png


步骤三:配置项目依赖关系


在“Dependencles”界面配置项目依赖关系。


选择使用Spring Boot的版本


添加Spring Web依赖


05815be5361a41e593709644c1ef278f.png


步骤四:配置项目名称和目录


配置项目名称


配置项目目录


88a0d2d7ecf34bb7b9eb63c50f815211.png


步骤五:初始化项目


7cab169107b34ccfa221921c7202b24a.png


步骤六:初始化完成后的目录结构


Spring Boot项目默认会生成项目启动类


静态资源文件夹(static)


模板页面文件夹(templates)


项目全局配置文件(application.properties)


Spring Boot项目默认会生成项目测试类


ea4dbf94b4dd4a52bb11112db7b51b2e.png


步骤七:调整项目目录结构


       为了便于区分项目中不同类的功能,这里对项目默认的目录结构进行调整,在包“cn.itcast.sparkweb”下创建用于存放实体类的包entity、存放数据访问接口的包dao和存放控制器类的包controller。


99dd0fbb814a4e339417f99015acef66.png


步骤八:配置项目依赖


       本项目所需要的依赖包括Thymeleaf、Tomcat、Phoenix、MyBatis和Joda-Time。其中Thymeleaf是一个模板引擎用于Java Web应用程序开发;Tomcat是Web容器用于运行Java Web应用程序;Phoenix用于在项目中通过Java API操作Phoenix;MyBatis用于在项目中使用MyBatis框架;Joda-Time是Java日期时间处理库。


8d1f4dabdeba454587fa2606dbb323b0.png


步骤八:配置项目全局配置文件


在项目的resources目录配置全局配置文件application.properties,添加如下配置内容:


#设置连接Phoenix的JDBC驱动器


spring.datasource.driver-class-name=org.apache.phoenix.jdbc.PhoenixDriver


#设置Phoenix连接地址及端口号 spring.datasource.url=jdbc:phoenix:192.168.121.132,192.168.121.133,192.168.121.134:2181 #设置Thymeleaf模板路径


spring.thymeleaf.prefix=classpath:/templates/


# 设置Thymeleaf模板后缀名


spring.thymeleaf.suffix=.html


4. 实现热门品类Top10数据可视化

4.1  创建实体类Top10Entity

       为了便于热门品类Top10分析结果数据的传递,在项目的entity包中创建实体类Top10Entity,存储Phoenix中表top10的数据。


public class Top10Entity {


   private String cartcount;


   private String category_id;


   private String purchasecount;


   private String viewcount;


   //实现属性的getter/setter方法


   ...


}


4.2  创建数据库访问接口Top10Dao

       在项目的dao包中创建一个数据库访问接口Top10Dao,读取Phoenix中表top10的数据。


import cn.itcast.sparkweb.entity.Top10Entity;


import org.apache.ibatis.annotations.Mapper;


import org.apache.ibatis.annotations.Select;


import java.util.List;


@Mapper


public interface Top10Dao {


   @Select("select \"cartcount\",\"category_id\",\"purchasecount\",\"viewcount\" from \"top10\"")


   List getTop10();


}


4.3  创建控制器类Top10Controller

       在项目的controller包中创建控制器类Top10Controller,用于实现接口Top10Dao中的方法getTop10()读取表top10的数据,通过Model对象向HTML传递数据。


@Controller public class Top10Controller {


   @Autowired


   private Top10Dao top10Dao;


   @RequestMapping(value = "/top10",produces = "text/html;charset=utf-8")


   public String top10(Model model) {


       List top10 = top10Dao.getTop10();         model.addAttribute("top10",top10);


       return  "top10";


   }


}


934837f9dd7344d2bfe1b98edc45f52a.png


       若在Top10Controller中的接口上添加Autowired注解时,程序报错,报错的内容为“Could not autowire. No beans of ‘ Top10Dao’ type found.”,这是IntelliJ IDEA内置的检查工具导致,并不影响程序的启动和编译,可以参照如图所示内容消除此问题。


eab85256984842afab145159a1636983.png


4.4  创建HTML文件top10.html

       在项目中的templates目录下创建HTML文件top10.html,在该文件中通过jQuery获取Model对象传递到HTML的热门品类Top10的数据,并将获取到的数据填充到ECharts柱状图模板中,实现热门品类Top10数据的可视化展示。





 


  top10


 


 



……



4.5 运行项目实现热门品类Top10数据可视化


       为了避免JDBC无法操作Phoenix的问题,在运行项目前需要在项目的resources目录下创建Hbase-site.xml文件,在文件中添加开启命名空间和支持二级索引配置。






  phoenix.schema.isNamespaceMappingEnabled


  true


  开启命名空间




  hbase.regionserver.wal.codec


org.apache.hadoop.hbase.regionserver.wal.IndexedWALEditCodec


  支持二级索引




单击IntelliJ IDEA中的【启动】按钮运行项目。


9c3ba5f503b6442bb31f1f0ba0a303fe.png


在IntelliJ IDEA控制台可查看项目的启动信息。


6e36fe3cd47c4016b98c588e6f13568b.png


在浏览器中输入“http://localhost:8080/top10”查看热门品类Top10数据可视化的展示效果。


9367a42805a245e98b718e431b862364.png


766707ee3ed1459b879d2abcdd854d4c.png


       首先,通过解压缩的方式在Windows操作系统中安装Hadoop;然后,将Hadoop添加到系统环境变量中,如图所示。


956d200560e641039639e3ae46e60423.png


30bb1e6e568e433bafa847b946aa0ea1.png


       在Windows操作系统的C:\Windows\System32\drivers\etchost目录下编辑映射文件host,添加如下内容。


192.168.121.132 spark01


192.168.121.133 spark02


192.168.121.134 spark03


相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
目录
相关文章
|
11天前
|
机器学习/深度学习 分布式计算 大数据
Spark 适合解决多种类型的大数据处理问题
【9月更文挑战第1天】Spark 适合解决多种类型的大数据处理问题
24 3
|
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
|
18天前
|
存储 分布式计算 供应链
Spark在供应链核算中应用问题之调整Spark读取ODPS离线表分区大小如何解决
Spark在供应链核算中应用问题之调整Spark读取ODPS离线表分区大小如何解决
|
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产品使用合集的概述,涵盖数据处理的各个环节。
|
29天前
|
消息中间件 数据采集 JSON
大数据 - DWD&DIM 行为数据
大数据 - DWD&DIM 行为数据
32 1