【大数据实训】基于Hive的北京市天气系统分析报告(二)

这篇具有很好参考价值的文章主要介绍了【大数据实训】基于Hive的北京市天气系统分析报告(二)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

博主介绍全网粉丝6W+,csdn特邀作者、博客专家、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于大数据技术领域和毕业项目实战

🍅文末获取项目联系🍅

目录

1. 引言

1.1 项目背景 1

1.2 项目意义 1

2. 需求分析 2

2.1 数据清洗需求分析 2

2.2 数据存储需求分析 2

2.3 MapReduce需求分析 2

2.4 Hive查询需求分析 2

2.5 数据可视化需求分析 3

3. 开发流程图 4

4. 项目开发环境 5

5. 系统实现 8

5.1 数据清洗 8

5.2 数据存储 9

5.3 MapReduce数据分析 9

5.4 Hive数据查询 10

5.5 数据可视化 13

5.5.1 前端设计 13

6. 项目总结与展望 15

  1. 参考文献 16

1. 引言

1.1 项目背景

近年来随着我国计算机水平的发展,如今的天气网站信息多,想要获取有效的信息需要的时间太长。为了解决社会人员和专业气象人员获取符合自己的并符合自己意向的天气信息,利用Hive对这些天气信息进行收集和分析势在必行。所以需要一种能够具有分析天气系统,可供用户利用自身优势,分析天气信息,从而尽快找到心仪的天气。

通过综合采集北京2005-2022年的天气数据进行了相关统计分析,从温度、每月降水量、每个时间段天气情况、天气词云图等方面进行综合分析。从而帮助专业气象人员想从事气象人员了解相关领域的天气情况。从而为相关人员的快速选择所需天气,在何处选择提供参考,对未来的天气预测等明确方向。

1.2 项目意义

本项目通过对于即将从事天气预报的人员来说,上网快速找到合适的天气系统,无疑是急需的。而如今的天气网站信息多,面对着网上形形色色的天气网站和参差不齐的天气信息,想要获取有效的信息需要的时间太长,这给就业者根据自身的情况选择自己适合的天气系统带来了困难。针对以上不足,有必要通过Hive技术,帮助用户在杂乱无序的数据中寻找有用的数据,科学分析,缩短用户找工作的时间成本,帮助用户快速分析。

本系统采集了北京市2005-2021天气数据,同学们可以通过来选择查看相应的天气信息。同时将这些信息可视化,可以方便同学们快速了解天气分析需求情况,这些可视化的部分包括温度、每月降水量、每个时间段天气情况、天气词云图等。

2.需求分析

本项目共分为五大模块,分别是数据清洗模块,数据存储模块,MapReduce数据分析模块,Hive数据查询模块以及数据可视化模块。

2.1 数据清洗需求分析

​ 数据集存在重复项,数据不规范(如:评分为空,价格为负,价格在三倍标准差之外)等问题。数据集在使用之前需要进行清洗,将重复的数据删除,不规范的数据删除或填补为合理的数据。

2.2 数据存储需求分析

​ 本项目将数据集上传到虚拟机上并存储到HIVE表中。

2.3 MapReduce需求分析

MapReduce数据分析模块,自行设计分析任务并编写MR程序处理这些统计分析任务。本项目主要有以下MR统计分析任务:

1.统计每月降水量占全年的比例;
2.统计每月温度占全年的比例;
3.统计天气情况的比例;
4.统计每个时间段天气占全天的比例;
5.统计每个时间段风向占全天的比例;

2.4 Hive查询需求分析

Hive数据查询模块,自行设计查询条件并编写HQL语句完成查询任务。在虚拟机上编写hql语句并保存为hql文件,使用外部命令执行hql文件,将查询结果打印在控制台或存储到hive表中或存储到指定的txt文件中。本项目设计的Hive查询任务主要有:

1.统计19年-21年每月降水量对比
2.统计19年-21年每月温度情况
3.统计2005年-2022年天气情况词云图
4.统计每个时间段天气情况
5.统计每个时间段风向

2.5 数据可视化需求分析

项目的可视化部分需要包含北京市气象数据分析柱状图和北京市天气比例的饼状图及部分其他可视化图表。数据需要先编写MR或者HQL对原始数据集进行统计分析得出,再通过Flume将统计分析后的数据传入MySql,通过Flask将MySql中的数据传入前端,利用bootstrap框架以及echarts等工具完成可视化。完成模块如下:

【大数据实训】基于Hive的北京市天气系统分析报告(二),# 大数据课设&毕设,大数据,hive,hadoop,原力计划

图2.1 数据可视化模块

\3. 开发流程图

【大数据实训】基于Hive的北京市天气系统分析报告(二),# 大数据课设&毕设,大数据,hive,hadoop,原力计划

图3.1 流程图

4.项目开发环境

4.1 IntelliJ IDEA 概述

本系统使用IntelliJ IDEA作为程序开发工具。IntelliJ IDEA是java语言开发的集成环境,是基于对象的快速应用程序开发工具,是当今最强大、最灵活的应用程序开发工具之一,具有良好的可视化应用程序开发环境和强大的可扩展数据库功能。IntelliJ在业界被公认为最好的java开发工具之一,尤其在智能代码助手、代码自动提示、重构、J2EE支持、Ant、JUnit、CVS整合、代码审查、 创新的GUI设计等方面的功能可以说是超常的。JAVA语言的特点是面向对象设计的程序语言,具有代码稳定、可读性好、编译速度快等优点,并通过面向对象的概念,使这种基础语言有了新的发展空间。

开发软件通常要经过修改源代码、编译、测试、再修改、再编译、再测试等操作,这些操作形成了一个开发循环,所以快速的编译器可以大大地降低开发周期。JAVA具有强大的整合能力,这也是本系统开发使用IntelliJ IDEA作为程序设计开发语言的重要原因。

【大数据实训】基于Hive的北京市天气系统分析报告(二),# 大数据课设&毕设,大数据,hive,hadoop,原力计划

图4.1 IntelliJ IDEA community 2021.2

4.2 WebStorm

本次项目使用WebStorm作为前端开发工具。WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。已经被广大中国JS开发者誉为"Web前端开发神器"、“最强大的HTML5编辑器”、"最智能的JavaScript IDE"等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

【大数据实训】基于Hive的北京市天气系统分析报告(二),# 大数据课设&毕设,大数据,hive,hadoop,原力计划

图4.2 WebStorm

4.3 PyCharm

PyCharm是一种Python IDE(Integrated Development Environment,集成开发环境),带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具,比如调试、语法高亮、Project管理、代码跳转、智能提示、自动完成、单元测试、版本控制。此外,该IDE提供了一些高级功能,以用于支持Django框架下的专业Web开发。

【大数据实训】基于Hive的北京市天气系统分析报告(二),# 大数据课设&毕设,大数据,hive,hadoop,原力计划

图4.3 PyCharm 2020.01

4.4 Navicat Premium

Navicat Premium 是一套数据库开发工具,可以从单一应用程序中同时连接MySQL、MariaDB、MongoDB、SQL Server、Oracle、PostgreSQL 和 SQLite 数据库。它与 Amazon RDS、Amazon Aurora、Amazon Redshift、Microsoft Azure、Oracle Cloud、MongoDB Atlas、阿里云、腾讯云和华为云等云数据库兼容。可以快速轻松地创建、管理和维护数据库。

【大数据实训】基于Hive的北京市天气系统分析报告(二),# 大数据课设&毕设,大数据,hive,hadoop,原力计划

图4.4 Navicat Premium 15.0.20

4.5 MySQL 概述

MySQL是一个关系型数据库管理系统。MySQL 使用的 SQL语言是用于访问数据 库的最常用的标准化语言。由于MySQL数据库体积小、速度快、总体拥有成本低、开放源代码,其有着广泛的应用,一般中小型网站的开发都选择 MySQL 作为网站数据库。由于其社区版的性能卓越,因此搭配PHP和Apache服务器可组成良好的开发环境。MySQL API中提供了对Java语言的支持可以让Java写出来的程序直接连接MySQL,并且编程和执行效率都比较高。

【大数据实训】基于Hive的北京市天气系统分析报告(二),# 大数据课设&毕设,大数据,hive,hadoop,原力计划

图 4.5 Mysql 8.0.27

5.系统实现

5.1 数据清洗

本项目数据清洗于Jupyter Lab中通过python中Numpy、Pandas、Skearn库完成。

此处省略。。。

5.2 数据存储

本项目数据存储于Hive中,通过Hive完成相应数据分析后,将分析结果存储于MySql中,MySql表设计根据任务需求变化。

将数据导入hive

load data local inpath ‘/opt/module/hive-1.1.0/data/usebebehavior.csv’ overwrite into table ods.appRawData;

Hive表设计

此处省略。。。

5.3 MapReduce数据分析

本项目主要使用IDEA编写MR程序,根据需求分析完成MR数据分析任务。本项目设计并完成了以下MR统计分析任务:

1. 统计每月降水量占全年的比例;对于第一个任务统计每个北京市每月降水量占全年比例,在Mapper中对每次读入的字符串进行分割,将北京市作为key,每月作为value传入Reducer,通过重写clean_up函数,统计出全市总降水量,在reduce函数中将每个北京市的每月降水量除以全年得到比例。
2.统计每月温度占全年的比例;
3.统计天气情况的比例;对于第二三个任务统计不同在各自大类中的比例,在Mapper种对每次的字符串进行分割,将作为key,天气温度作为限定条件,将作为value传入Redurcer,通过重写clean_up函数,统计出全,在reduce函数中将每个北京市的各时间段的天气除以全天得到比例。
4.统计每个时间天气占全天的比例;
5.统计每个时间段风向占一天的比例;对于第四五个任务统计不同时间占全天的比例,将北京市作为key,北京市范围选择作为限定条件,将风向作为value传入Rudecer,通过重写clean_up函数,统计出全天,在reduce函数中将各时间段除以全天的比例。

5.4 Hive数据查询

本项目主要在Linux虚拟机上使用Hive进行建表、查询等操作,根据需求分析完成Hive数据查询任务。本项目设计的Hive查询任务主要有:

1. 统计天气情况数据库天气情况的部分分别展示的是气象局对天气的要求数据。天气的要求是从数据库中查询所有的天气类别并返回所有结果,循环这些天气,每次都查询并返回所有天气气象需求天气的结果,对工作要求的数据也是这样的方法进行查询。代码如下。代码:SELECT * FROM airdata.air_temperature;【大数据实训】基于Hive的北京市天气系统分析报告(二),# 大数据课设&毕设,大数据,hive,hadoop,原力计划 图5.11
2. 统计词云情况数据库查询以下是词云各天气城市,及天气城市天气天气数,各天气气象台规模的气象台数,执行数据库结果,词云情况数据。代码:SELECT * FROM airdata.airwords【大数据实训】基于Hive的北京市天气系统分析报告(二),# 大数据课设&毕设,大数据,hive,hadoop,原力计划 图5.12
3. 统计气象风向情况数据库查询通过对气象风向情况的部分分别查询数据库的气象风向代码:SELECT * FROM airdata.annual_precipitation;【大数据实训】基于Hive的北京市天气系统分析报告(二),# 大数据课设&毕设,大数据,hive,hadoop,原力计划 图5.13
4. 气象风向情况数据库查询通过气象风向情况。代码:SELECT * FROM airdata.trend;【大数据实训】基于Hive的北京市天气系统分析报告(二),# 大数据课设&毕设,大数据,hive,hadoop,原力计划 图5.14
5. 气象可见度情况数据库查询通过气象可见度情况的部分。代码:SELECT * FROM airdata.visibility;【大数据实训】基于Hive的北京市天气系统分析报告(二),# 大数据课设&毕设,大数据,hive,hadoop,原力计划
图5.15

5.5 数据可视化

数据可视化是最后的步骤,也是最重要的步骤之一,通过数据可视化操作,可以将后端处理的得到的数据通过柱状图、折线图和饼状图等展示在前端界面。

5.5.1 前端设计

通过前端设计,将Hive和MapReduce处理得到的数据展现在web页面中,便于用户直接观察分析结果,将抽象的数据图形化、界面化。

图5.17

5.5.1.1 数据展示模块设计

统计19年-21年每月降水量,如下图所示。

【大数据实训】基于Hive的北京市天气系统分析报告(二),# 大数据课设&毕设,大数据,hive,hadoop,原力计划

月降水量对比图

统计19年-21年每月温度,如下图所示。

【大数据实训】基于Hive的北京市天气系统分析报告(二),# 大数据课设&毕设,大数据,hive,hadoop,原力计划

每月降水量对比图

统计2005年-2022年天气情况词云图,如下图所示。

【大数据实训】基于Hive的北京市天气系统分析报告(二),# 大数据课设&毕设,大数据,hive,hadoop,原力计划

​ 每月降水量对比图

6.项目总结与展望

本次项目对我来说在编程能力以及自学能力上是一个锻炼。通过完成本项目,个人编写MR程序的能力得到了一定的提高;通过网上学习Hive的hql语句,我能够写语法较为复杂的查询语句,通过课外学习echarts,我了解了echarts制图的基本步骤,会使用echarts制作一些简单的图表。第一次接触echarts,原来数据可视化是这么好玩的东西,它不像后端只有冷冰冰的数据显示在控制台,它以绚丽多彩、通俗易懂的方式将数据呈现在你的面前。除了使用echarts制作图表,还学习了CSS和JS语言的基本使用,将其应用到网页界面的设计,结合echarts图表制作数据可视化大屏。

本次项目可以说是数据可视化入了个门,毕竟之前没怎么接触过。更深的学习就需要自己去钻研了。本次实训项目是一人一组,通过本次项目的制作,也使我们更懂得独立开发时,要清楚项目的脉络,自己应该做的各个方面的功能实现。

7. 参考文献

[1] 孟小峰, 慈祥. 大数据管理:概念、技术与挑战[J]. 计算机研究与发展, 2013, 50(001):146-169.

[2] 王珊, 王会举, 覃雄派,等. 架构大数据:挑战、现状与展望[J]. 计算机学报, 2011, 034(010):1741-1752.

[3] 李建中, 刘显敏. 大数据的一个重要方面:数据可用性[J]. 计算机研究与发展, 2013.

[4] 朱建平, 章贵军, 刘晓葳. 大数据时代下数据分析理念的辨析[J]. 统计研究, 2014, 031(002):10-19.

[5] 李国杰, 程学旗. 大数据研究:未来科技及经济社会发展的重大战略领域——大数据的研究现状与科学思考[J]. 中国科学院院刊, 2012, 27(6):647-657.

[6] 陶雪娇, 胡晓峰, 刘洋. 大数据研究综述[J]. 系统仿真学报, 2013(S1):145-146.

[7] 任磊, 杜一, 马帅,等. 大数据可视分析综述[J]. 软件学报, 2014, 000(009):1909-1936.

[8] 孙大为, 张广艳, 郑纬民. 大数据流式计算:关键技术及系统实例[J]. 软件学报, 2014(04):839-862.

[9] 袁昌权, 胡益群, 许光,等. 基于Hadoop的高可用数据采集与存储方案[J]. 电子技术与软件工程, 2019, No.164(18):185-186.

[10] Dean J . MapReduce : Simplified Data Processing on Large Clusters[C]// Symposium on Operating System Design & Implementation. 2004.文章来源地址https://www.toymoban.com/news/detail-699150.html

到了这里,关于【大数据实训】基于Hive的北京市天气系统分析报告(二)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【大数据实训】基于赶集网租房信息的数据分析与可视化(七)

    温馨提示:文末有 CSDN 平台官方提供的博主 的联系方式,有偿帮忙部署 一、实验环境 (1)Linux: Ubuntu 16.04 (2)Python: 3.6 (3)Hadoop:3.1.3(4)Spark: 2.4.0(5)Web框架:flask 1.0.3 (6)可视化工具:Echarts (7)开发工具:Visual Studio Code 二、小组成员及分工 (1)成员:林xx,x

    2024年02月03日
    浏览(65)
  • 【大数据实训】基于当当网图书信息的数据分析与可视化(八)

    温馨提示:文末有 CSDN 平台官方提供的博主 的联系方式,有偿帮忙部署 一、实验环境 (1)Linux: Ubuntu 16.04 (2)Python: 3.5 (3)Hadoop:3.1.3(4)Spark: 2.4.0(5)Web框架:flask 1.0.3 (6)可视化工具:Echarts (7)开发工具:Visual Studio Code 二、小组成员及分工 (1)成员:林海滢,

    2024年02月04日
    浏览(65)
  • 大数据实训

    1、Hadoop集群框架搭建(学过,但是没有现成的) 2、python(机器学习) 3、Spark(没有) 4、Flume(没有) 5、Sqoop(没有接触) 6、编程语言: SpringBoot(有)+echarts(数据可视化框架) 1.1 百度百科:大数据,短期无法运用常规一些手段去及时处理海量数据,需要使用新型的技术

    2024年02月02日
    浏览(43)
  • 泰迪大数据实训平台产品介绍

          大数据产品包括: 大数据实训管理平台、大数据开发实训平台、大数据编程实训平台 等      大数据实训管理平台      泰迪大数据实训平台从课程管理、资源管理、实训管理等方面出发,主要解决现有实验室无法满足教学需求、传统教学流程和工具低效耗时和内部

    2024年02月11日
    浏览(40)
  • 大数据实验三-HBase编程实践

    目录 一.实验内容 二.实验目的 三.实验过程截图及说明 1、安装HBase 2、配置伪分布式模式: 3、使用hbase的shell命令来操作表: 4、使用hbase提供的javaAPI来编程实现类似操作: 5、实验总结及心得体会 6、完整报告在文章开头,挂载。 HBase编程实践: 1)在Hadoop基础上安装H

    2024年04月12日
    浏览(64)
  • 【大数据实验五】 MapReduce初级编程实践

    1实验目的 1.通过实验掌握基本的MapReduce编程方法; 2.掌握用MapReduce解决一些常见的数据处理问题,包括数据去重、数据排序和数据挖掘等。 2实验平台 已经配置完成的Hadoop伪分布式环境。 (1)操作系统:Linux(Ubuntu18.04) (2)Hadoop版本:3.1.3 3实验内容和要求 1.编程实现文件

    2024年02月03日
    浏览(150)
  • 【大数据实训】—Hadoop开发环境搭建(一)

    本关任务:配置JavaJDK。 相关知识 配置开发环境是我们学习一门IT技术的第一步,Hadoop是基于Java开发的,所以我们学习Hadoop之前需要在Linux系统中配置Java的开发环境。 下载JDK 前往Oracle的官网下载JDK:点我前往Oracle的官网下载JDK 我们可以先下载到本地,然后从Windows中将文件传

    2024年02月06日
    浏览(52)
  • 大数据实验 实验六:Spark初级编程实践

    实验环境:Windows 10 Oracle VM VirtualBox 虚拟机:cnetos 7 Hadoop 3.3 因为Hadoop版本为3.3所以在官网选择支持3.3的spark安装包 解压安装包到指定文件夹 配置spark-env.sh 启动成功 (1) 在spark-shell中读取Linux系统本地文件“/home/hadoop/test.txt”,然后统计出文件的行数; (2) 在spark-shell中读

    2024年02月04日
    浏览(83)
  • 云计算与大数据实验四 HDFS编程

    一、实验目的 深入理解 HDFS 工作原理和编程思想 使用 HDFS 的 Java 接口进行文件的读写 使用 HDFS 的 Java 接口进行之上传文件 使用 HDFS 的 Java 接口进行之删除文件 二、实验内容 HDFS 的 Java API 接口进行文件的读写操作 HDFS 的 Java API 接口进行之上传文件操作 HDFS 的 Java API 接口进

    2024年02月08日
    浏览(51)
  • 大数据实验 实验二:熟悉HDFS常用操作

    附件中有word版本的实验报告 理解HDFS在Hadoop体系结构中的角色。 熟练使用HDFS操作常用的Shell命令。 熟悉HDFS操作常用的Java API。 Oracle VM VirtualBox虚拟机 系统版本centos7 JDK1.8版本 Hadoop-3.1.3 Windows11 Java IDE:IDEA 1.向HDFS中上传任意文本文件,如果指定的文件在HDFS中已经存在,由用户

    2024年04月12日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包