Spark Streaming 项目实战(10)—— 可视化

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/u012292754/article/details/85088815

1 构建 Spring Boot 项目

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 删除
    在这里插入图片描述

1.1 新建测试类

在这里插入图片描述

  • HelloBoot.java
package com.sparkstreaming.project.demo;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;

/**
 * @ClassName HelloBoot
 * @Description TODO
 * @Author tzb
 * @Date 2018/12/19 9:46
 * @Version 1.0
 **/
@RestController
public class HelloBoot {

    @RequestMapping(value = "/hello", method = RequestMethod.GET)
    public String sayHello() {
        return "Hello World Spring";
    }
}

  • 运行这个类
    在这里插入图片描述
  • 报错,提示8080端口被占用
Description:

The Tomcat connector configured to listen on port 8080 failed to start. The port may already be in use or the connector may be misconfigured.
  • 解决办法,修改默认的端口号
    在这里插入图片描述
  • 浏览器访问,http://localhost:8081/hello
    在这里插入图片描述
  • 修改 application.properties
server.port=8081
server.context-path=/spark-streaming
  • 再次访问 ,http://localhost:8081/spark-streaming/hello

2 Echarts

test.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>test</title>
    <!-- 引入 ECharts 文件 -->
    <script src="js/echarts.min.js"></script>
</head>
<body>
<!-- 为 ECharts 准备一个具备大小(宽高)的 DOM -->
<div id="main" style="width: 600px;height:400px;"></div>

<script type="text/javascript">
    // 基于准备好的dom,初始化echarts实例
    var myChart = echarts.init(document.getElementById('main'));

    // 指定图表的配置项和数据
    var option = {
        title: {
            text: 'ECharts 入门示例'
        },
        tooltip: {},
        legend: {
            data:['销量']
        },
        xAxis: {
            data: ["衬衫","羊毛衫","雪纺衫","裤子","高跟鞋","袜子"]
        },
        yAxis: {},
        series: [{
            name: '销量',
            type: 'bar',
            data: [5, 20, 36, 10, 10, 20]
        }]
    };

    // 使用刚指定的配置项和数据显示图表。
    myChart.setOption(option);
</script>

</body>
</html>
  • POM中添加依赖
<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>
  • HelloBoot.java
package com.sparkstreaming.project.demo;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.servlet.ModelAndView;

/**
 * @ClassName HelloBoot
 * @Description TODO
 * @Author tzb
 * @Date 2018/12/19 9:46
 * @Version 1.0
 **/
@RestController
public class HelloBoot {

    @RequestMapping(value = "/hello", method = RequestMethod.GET)
    public String sayHello() {
        return "Hello World Spring";
    }

    @RequestMapping(value = "/first", method = RequestMethod.GET)
    public ModelAndView firstDemo(){
        return new ModelAndView("test");
    }

}

  • 运行,访问 http://localhost:8081/spark-streaming/first,发现报错
org.xml.sax.SAXParseException: 元素类型 "meta" 必须由匹配的结束标记 "</meta>" 终止。
  • 解决办法
    在这里插入图片描述
  • 再次访问,http://localhost:8081/spark-streaming/first
    在这里插入图片描述

3 Spring Boot 整合 Echarts 绘制静态饼图

  • demo.html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8"/>
    <title>stat</title>
    <!-- 引入 ECharts 文件 -->
    <script src="js/echarts.min.js"></script>
</head>
<body>
<!-- 为 ECharts 准备一个具备大小(宽高)的 DOM -->
<div id="main" style="width: 600px;height:400px;position: absolute;top:50%;left: 50%;margin-top:-200px;margin-left:-300px"></div>

<script type="text/javascript">
    // 基于准备好的dom,初始化echarts实例
    var myChart = echarts.init(document.getElementById('main'));

    // 指定图表的配置项和数据
    var option = {
        title : {
            text: '实时流处理统计结果之访问量统计',
            subtext: '实战课程访问次数',
            x:'center'
        },
        tooltip : {
            trigger: 'item',
            formatter: "{a} <br/>{b} : {c} ({d}%)"
        },
        legend: {
            orient: 'vertical',
            left: 'left',
            data: ['Scala入门','Hadoop实战','Spark源码解析','Hbase解读','Hive入门']
        },
        series : [
            {
                name: '访问次数',
                type: 'pie',
                radius : '55%',
                center: ['50%', '60%'],
                data:[
                    {value:335, name:'Scala入门'},
                    {value:310, name:'Hadoop实战'},
                    {value:234, name:'Spark源码解析'},
                    {value:135, name:'Hbase解读'},
                    {value:1548, name:'Hive入门'}
                ],
                itemStyle: {
                    emphasis: {
                        shadowBlur: 10,
                        shadowOffsetX: 0,
                        shadowColor: 'rgba(0, 0, 0, 0.5)'
                    }
                }
            }
        ]
    };

    // 使用刚指定的配置项和数据显示图表。
    myChart.setOption(option);
</script>

</body>
</html>
  • HelloBoot.java
package com.sparkstreaming.project.demo;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.servlet.ModelAndView;

/**
 * @ClassName HelloBoot
 * @Description TODO
 * @Author tzb
 * @Date 2018/12/19 9:46
 * @Version 1.0
 **/
@RestController
public class HelloBoot {

    @RequestMapping(value = "/hello", method = RequestMethod.GET)
    public String sayHello() {
        return "Hello World Spring";
    }

    @RequestMapping(value = "/first", method = RequestMethod.GET)
    public ModelAndView firstDemo(){
        return new ModelAndView("test");
    }

    @RequestMapping(value = "/course_clickcount", method = RequestMethod.GET)
    public ModelAndView courseClickCountStat(){
        return new ModelAndView("demo");
    }

}

  • 浏览器访问 http://localhost:8081/spark-streaming/course_clickcount
    在这里插入图片描述
展开阅读全文

没有更多推荐了,返回首页