灌篮少年 发表于 2024-10-8 15:14:46

基于Hadoop的天气预报数据爬取与可视化分析

开发语言:Python
框架:django
Python版本:python3.7.7
数据库:mysql 5.7(肯定要5.7版本)
数据库工具:Navicat11
开发软件:PyCharm
浏览器:谷歌浏览器
背景路径地点:localhost:8080/项目名称/admin/dist/index.html
前台路径地点:localhost:8080/项目名称/front/dist/index.html (无前台不必要输入)
管理员账号:admin
管理员密码:admin
2.1 PYTHON语言简介
Python是由荷兰数学和计算机研究学会的吉多•范罗苏姆于20世纪90年代设计的一款高级语言。Python优雅的语法和动态范例,以及解释型语言的本质,使它成为很多范畴脚本编写和快速开发应用的首选语言。Python相比与其他高级语言,开发代码量较小,代码风格简洁优雅,拥有丰富的第三方库。Python的代码风格导致其可读性好,便于维护职员阅读维护,步调更加健壮。Python能够轻松地调用其他语言编写的模块,因此也被成为“胶水语言”。
Python的应用场所非常广泛,在科研范畴中,可以用Python训练人工智能模型,也可以对实验数据进行数据分析。在生活中,Python提供了很多优秀的、开源的Web开发框架,例如Django、Flask、Pyramid、Tornado等。知乎、豆瓣网、Youtube等着名应用都是由Python为基础进行开发的。相比于其他框架,Django有着更加丰富的插件,作为企业级框架也很好上手,适合本次开发。此体系是开发一个Web应用,接纳Django框架,将在下一节进行具体先容。本次开发选用的是Python3.6.4版本。
2.2 MySql数据库
MySql数据库具有轻便、稳定等特点,在体系的工程中对相干的数据操纵,很好的保障数据的稳定,极大程度上减低了体系开发的时间。
MySql数据库支持多线程工作,能充分使用体系的资源,更具有服从且数据库连接也有对于的差别模式接口;MySql存储小、运行稳定而且对使用的要求不高。
使用MySql建立体系数据库,利于对体系的数据处置惩罚早期的整合,可以更好的发展后数据的扩展实际操纵。
Mysql数据库的特点如下:
(1)Mysql是相比于Oracle更轻量、更简洁便于使用,在服务部署方面相对复杂度低,更利于毕设体系的开发。
(2)支持多种操纵体系包括AIX、FreeBSD、HP-UX、Linux和Mac OS、Novell‘s Netware、OpenBSD体系、OS/2卷、Solaris、Windows等。
(3)查询速率快。算法优化了查询语句,可靠地提高了搜索速率。
(4)Mysql可以使用Sql语言进行调用,学习成本较低。
(5)Mysql可支持互联网站数据共享也支持数据安全设置,防止数据泄漏。
(6)高度非过程化。在访问数据库时,没有须要一步一步向计算机发送指令去完成任务,只必要用MySQL语句形貌而且命令就可以了,数据库会主动完玉成部工作。
2.3 DJANGO框架
Django被官方称之为“完善主义者框架”,只必要很少的代码就能更快的完成一个优秀的Web应用。Django接纳了MTV框架模式,此模式根据MVC进行改进形成了更适于Django的设计模式。M为模型(Model)、T为模板(Template)、V为视图(View)。下面先容部分Django的焦点与优点:
(1)对象关系映射(ORM,Object-Relation-Mapping):ORM的方法论有着三个焦点原则:
① 简单:以最根本的形式构建数据。
② 传达性:数据库结构被任何人都能理解的语言文档化。
③ 准确性:基于数据模型创建正确标准化的结构。
用于Python之中即是以Python类形式界说数据模型,类中的每一个属性对应着数据库中的一列。引入ORM后,无需编写原生SQL语句,使用基于面向对象的头脑去编写类、对象、调用方法等,ORM会将其映射成SQL语句通过pymysql执行。
(2)路由设置(URLConf):Django的URL设置更加机动优雅,看似复杂难明,但使用的都是简单的正则表达式,你可以随心所欲的创造优美的、简洁的、专业
的地点。
(3)模板(Template):模板可以理解为承载数据的工具,为了将数据从视图中分离出来,通过各种各样的标签来进行数据的传输。Django的模板融入了面向对象中继续的头脑,提高了复用减少冗余代码。
(4)视图(View):视图就是views.py中的函数,也就是逻辑代码,为了将URL和视图关联起来,用到了上述的URLConfs,URLConfs将URL模式映射到视图中,每个视图有两件事是必须要做的:返回一个包罗被请求页面的HttpResponse对象,大概抛出一个异常。
(5)背景管理体系(Django-Admin):Django提供的一个基于Web的管理工具。
Django-Admin来自django.contrib也就是Django的标准库,默认被设置好,只必要激活启用即可,它的优势在于可以快速对数据库的各个表进行增编削查,一行代码即可管理一张数据库表,相比于手动背景1个模型一样平常必要4个urls,4个视图函数和4个模板,可以说Django完成了一个步调编写的大部分重复工作,而且对于图书管理这种以管理工作为重体系来说,非常契合。
(6)应用(Application):当项目规模过大时,难免会产生目录过长,文件过多的问题,Django理念中的App可以将项目相对独立的进行开发,插拔的工作方式和独立性让开发者废弃的App即使删除也不会影响整体,是一种不可多得的理念。
由于本次使用的Python版本为3.6.4,低版本的Django不支持Python3,故此次使用的Django版本为3.2.12。
2.4 Hadoop先容
Hadoop实现了一个分布式文件体系(Hadoop Distributed File System),简称HDFS。HDFS有高容错性的特点,而且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)来访问应用步调的数据,适合那些有着超大数据集(large data set)的应用步调。HDFS放宽了(relax)POSIX的要求,可以以流的形式访问(streaming access)文件体系中的数据。
Hadoop的框架最焦点的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,而MapReduce则为海量的数据提供了计算。主要有以下优点:
(1)高可靠性。Hadoop按位存储和处置惩罚数据的能力值得人们信任。
(2)高扩展性。Hadoop是在可用的计算机集簇间分配数据并完成计算任务的,这些集簇可以方便地扩展到数以千计的节点中。
(3)高效性。Hadoop能够在节点之间动态地移动数据,并包管各个节点的动态平衡,因此处置惩罚速率非常快。高容错性。Hadoop能够主动生存数据的多个副本,而且能够主动将失败的任务重新分配。
(4)低成本。与一体机、商用数据堆栈以及QlikView、Yonghong Z-Suite等数据集市相比,hadoop是开源的,项目的软件成本因此会大大低落。
2.5 Scrapy先容
Scrapy是一个抓取网站数据和提取结构化数据的框架,它可以应用在广泛的应用中:Scrapy通常用于一系列应用,包括数据挖掘、信息处置惩罚或存储历史数据。使用Scrapy框架实现一个爬虫步调通常非常简单,抓取给定网站的内容或图像。
虽然Scrapy是为屏幕抓取(大概更正确地说是网页抓取)而设计的,但它也可以用于访问api以提取数据。
2.6 B/S架构
Browser/Server简称(B/S),即:浏览器/服务器架构模式;属于WEB发展后的所出现的一种网络构造,而WEB又是主要的浏览器应用商品软件。B/S架构模式不仅将体系的重新开发、维修及使用等简单化,更将其重点放到了服务器上。它使客户端得到了同一,在服务器上汇集了体系功能的最焦点部分。
B/S架构模式,在服务器接收到浏览器发出请求后将进行对应的回应。Internet上文本、图片、动画等信息主要由Web服务器产生,而用户主要是通过浏览器访问这些信息。在Web上下载步调时碰到某些和数据库相干的指令,可以将这些指令转接到数据库服务器来进行解释和执行。B/S架构工作流程图如2-1所示:
图2-1 B/S架构工作流程图
https://i-blog.csdnimg.cn/direct/6821ef5b7da24abaa8360b614a78b194.png#pic_center
https://i-blog.csdnimg.cn/direct/002ba14bac0e4c92b40820997066d528.png#pic_center
https://i-blog.csdnimg.cn/direct/0bbbce92397b496fbe06e718bcfbfaae.png#pic_center
https://i-blog.csdnimg.cn/direct/e5e61bf2473c400d8847e098048d71b8.png#pic_center
https://i-blog.csdnimg.cn/direct/cca18cf5479f4273a5bbbd9e57ad6e6e.png#pic_center

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 基于Hadoop的天气预报数据爬取与可视化分析