版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第一章物联网与大数据简介技能目标理解物联网和大数据的定义。掌握物联网架构的基本构成。了解物联网和大数据的典型行业应用。了解物联网和大数据采集,并会使用相关的开源硬件和框架。本章任务任务1认识物联网任务2认识大数据任务3认识开源工具任务1认识物联网01【任务描述】理解物联网的定义了解物联网架构了解物联网的行业应用任务1认识物联网01【关键步骤】(1)理解物联网的定义。(2)分别了解物联网的四层架构及每层架构的作用。(3)分别了解物联网在工业自动化、智慧城市、物流和供应链管理、农业和畜牧业、医疗保健、能源管理、安全监测、零售行业、军事等行业和领域的应用。
物联网(InternetofThings,IoT)是指通过互联网将传感器、设备、物品等连接起来,并通过各种通信技术进行数据交换、信息处理和智能控制的网络系统。
物联网将各种传感器和设备通过互联网连接起来,使它们能够互相通信和交换数据,并且实现更智能的控制和管理。通过物联网可以实现智能家居、智慧城市、智能交通、智能工厂等应用场景。
物联网的核心技术包括传感技术、通信技术、数据处理技术和人工智能等。传感技术可以感知周围环境的各种物理量,并将数据传输给云端;通信技术包括Wi-Fi、蓝牙、4G/5G等,可以实现传感器与云端的连接;数据处理技术包括云计算、大数据、边缘计算等,可以对传感器采集的数据进行处理和分析;人工智能可以为物联网提供更智能的应用,如通过机器学习来预测未来的趋势和优化决策。1.1.1物联网的定义1.1.2物联网架构物联网架构通过感知层、网络层、数据处理层和应用层的组合,实现了对物理世界的感知,以及对数据的传输、处理和应用,从而实现了人与物的互联互通。1.1.3物联网的行业应用物联网技术可以在各个行业中应用,以下是一些典型的物联网行业应用。1)工业自动化以下是物联网在工业自动化中的一些应用。设备监测和预测维护、生产线优化、资源管理、质量控制、调度管理、安全监测2)智慧城市以下是物联网技术在智慧城市中的一些应用。智慧交通、智能照明、智慧环保、智慧安防、智慧物流1.1.3物联网的行业应用3)物流和供应链管理以下是物联网技术在物流和供应链管理中的一些具体应用。实时跟踪和定位、远程监控和预测维护、货物和库存管理、智能物流路线规划、供应链可见性4)农业和畜牧业以下是一些典型的物联网在农业和畜牧业中的应用。土壤监测和管理、智能灌溉系统、病虫害监测、精准养殖、智能运输和物流1.1.3物联网的行业应用5)医疗保健以下是一些典型的物联网在医疗保健中的应用。远程监测和诊断、医疗设备管理、智能药品管理、健康管理和预防、医疗数据分析和决策支持6)能源管理以下是一些典型的物联网在能源管理中的应用。能源生产监测、能源传输监测、智能家居、能源数据分析和预测、智能公共设施管理1.1.3物联网的行业应用7)安全监测以下是物联网在安全监测中的应用。智能家居安全监测、工业安全监测、智能交通安全监测、环境安全监测、金融安全监测8)零售行业以下是物联网在零售行业中的一些应用。库存管理、客流量统计、智能售货机、安全监控、定位服务9)军事以下是物联网在军事领域中的一些应用。战场感知、智能武器、物资管理、物流管理、智能装备任务2认识大数据02【任务描述】理解大数据的定义掌握大数据的特点了解大数据的行业应用。任务2认识大数据02【关键步骤】(1)理解大数据的定义。(2)掌握大数据的5V特点。(3)了解大数据在零售、金融、医疗保健、制造、媒体和广告、物流、教育和研究机构等行业和领域的典型应用。1.2.1大数据的定义
大数据(BigData)是指规模巨大、结构复杂、高速变化、多样化的数据集合,这些数据集合包含多种类型的数据,如结构化数据(如关系数据库中的数据)、半结构化数据(如XML文件)、非结构化数据(如文本、图片、音频、视频等),并且这些数据集合的生成速度极快,数据量呈指数级增长。
应用大数据需要处理海量数据,从中挖掘有用的信息,支持商业决策和应用创新。因此,大数据处理技术不仅包括数据的存储、处理、传输、分析、可视化等技术,还包括机器学习、数据挖掘、人工智能等技术的应用,以及与数据相关的法律、伦理等。1.2.2
大数据的特点具体来说,大数据具有以下5个特点。(1)数据体量(Volume)巨大。(2)数据类型多样(Variety)。(3)变化速度(Velocity)快。(4)数据真实性(Veracity)差。(5)价值(Value)密度低。1.2.3
大数据的行业应用大数据在零售、金融、医疗保健、制造、媒体和广告、物流、教育和研究机构等行业和领域都有应用。(1)零售业。以下是一些具体的应用和实例。预测消费者需求、优化库存管理、优化市场营销策略、优化供应链、优化价格策略(2)金融业。以下是一些具体的应用和实例。风险管理、客户关系管理、业务流程改进、投资管理、欺诈识别(3)医疗保健业。以下是一些具体的应用和实例。疾病预测和预防、病人管理、医疗决策支持、药品研发、医疗资源管理1.2.3
大数据的行业应用(4)制造业。以下是一些具体的应用和实例。生产优化、质量控制、供应链管理、智能制造、产品研发、(5)媒体和广告业。以下是一些具体的应用和实例。受众分析、精准营销、内容分析、媒体监测、数据整合(6)物流业。以下是一些具体的应用和实例。物流路径优化、预测需求、在线支付和订单跟踪、智能仓储(7)教育和研究机构。以下是一些大数据在教育和研究机构中的应用和示例。学生表现分析、教师表现分析、学生招募、学术研究、研究数据管理任务3认识开源工具03【任务描述】了解NodeMCU、ArduinoIDE、EMQXBroker、Hadoop、Kafka、Flink、Flask、MySQL、ECharts、Grafana、VSCode、IntelliJIDEA、Maven等开源工具及其在物联网大数据采集与处理过程中的作用。任务3认识开源工具03【关键步骤】(1)了解每种开源工具的基本特点及用途。(2)了解每种开源工具在物联网大数据采集与处理过程中的作用。1.3.1
NodeMCUNodeMCU开发板采用Lua脚本语言进行编程,支持通过串口或Wi-Fi进行编程和调试。尺寸大约为49mm×24mm,它有一个USB接口用于编程和供电,有多个GPIO(通用输入/输出端口)用于连接各种传感器和外部设备。NodeMCU通常有一些LED指示灯,用于显示设备的状态,如Wi-Fi连接状态等。NodeMCU的价格因不同型号和供应商而异。需要注意的是,由于供应商不同,某些NodeMCU的质量可能也不同。此外,NodeMCU有一些衍生品,如WemosD1mini、Lolin等,它们基本上与NodeMCU的外观和功能类似,但在一些细节上可能略有不同。NodeMCU是一款开源快速硬件原创平台,包括固件和开发板。它支持Wi-Fi功能,所以在物联网领域,Arduino开发板最大的对手之一就是NodeMCU开发板1.3.1
NodeMCUNodeMCU是一款简单易用、功能强大的物联网开发板,可以应用于各种物联网场景,包括家庭自动化、智能农业、智慧城市等。1.3.1
NodeMCUNodeMCU是一款简单易用、功能强大的物联网开发板,可以应用于各种物联网场景,包括家庭自动化、智能农业、智慧城市等。1.3.2
ArduinoIDEArduinoIDE(IntegratedDevelopmentEnvironment)是一款开源软件开发工具,专为Arduino开发板设计。它为用户提供了一个集成的开发环境,它可用于编写、编译和上传Arduino程序。Arduino程序开发:用户可以在其中编写、编译和上传Arduino程序。跨平台开发:用户可以在任何平台上编写和调试Arduino程序。库管理:用户可以通过库管理器轻松地安装、更新和删除库。开源硬件开发:用户可以编写代码,控制各种硬件设备。1.3.3
EMQXBrokerMQTT(MessageQueuingTelemetryTransport,消息队列遥测传输协议),是一种基于发布/订阅(Publish/Subscribe)模式的“轻量级”通信协议。MQTT客户端的功能如下。(1)发布消息给其他相关的客户端。(2)订阅主题请求接收相关的应用消息。(3)取消订阅主题,请求移除接收的应用消息。(4)从服务端终止连接。MQTT服务器常被称为MQTTBroker(消息代理),它的功能如下。(1)接收来自客户端的网络连接请求。(2)接收客户端发布的应用消息。(3)处理客户端的订阅请求和取消订阅请求。(4)转发应用消息给符合条件的已订阅客户端(包括发布者自身)。1.3.3
EMQXBrokerEMQXBroker是基于Erlang/OTP平台开发的开源物联网MQTT消息服务器,EMQXBroker架构如图所示。Erlang/OTP是软实时(Soft-Realtime)、低延时(Low-Latency)、分布式(Distributed)的语言平台。MQTT是轻量的(Lightweight)、发布订阅模式(PubSub)的物联网消息协议。EMQXBroker的设计目标是实现高可靠并支持承载海量物联网终端的MQTT连接,支持海量物联网设备间的低延时消息路由。1.3.4
HadoopHadoop是由Apache基金会开发的分布式系统基础架构,主要解决海量数据的存储和海量数据的分析计算问题,用户可以在不了解分布式底层细节的情况下开发分布式程序。从广义上来说,Hadoop通常是指一个更加广泛的概念——Hadoop生态圈Hadoop的核心是HDFS、YARN和Mapreduce。在Hadoop1.x时代,Hadoop中的MapReduce同时处理业务逻辑运算和进行资源调度,耦合性较大。在Hadoop2.x时代,增加了YARN。YARN只负责资源调度,MapReduce只负责运算,如图所示。1.3.4
Hadoop(1)HDFS(Hadoop分布式文件系统)HDFS是Hadoop体系中数据存储管理的基础。它是一个高度容错性(Fault-tolerant)的系统,能检测和应对硬件故障,用于在低成本(Low-cost)的通用硬件上运行。HDFS简化了文件的一致性模型,通过流式数据访问,提供高吞吐量(HighThroughput)应用程序数据访问功能,适合带有大型数据集(LargeDataSet)的应用程序。HDFS提供了一次写入、多次读取的机制,数据以块的形式同时分布在集群不同的物理机器上。1.3.4
Hadoop(1)HDFS(Hadoop分布式文件系统)Hadoop2为HDFS引入了两个重要的新功能——Federation和高可用(HA)。Federation允许集群中出现多个NameNode,多个NameNode之间相互独立,且不需要互相协调,它们各自分工,管理自己的区域。DataNode被用作通用的数据块存储设备。每个DataNode要向集群中所有NameNode注册,并发送心跳报告,执行所有NameNode的命令。HDFS中的高可用性消除了Hadoop中存在的单点故障,其中,NameNode故障将导致集群中断。HDFS的高可用性提供故障转移功能(备用节点从失败的主NameNode接管工作),以实现自动化。1.3.4
Hadoop(2)Mapreduce(分布式计算框架)。MapReduce是一种基于磁盘的分布式并行批处理计算模型,用以进行大数据量的计算。它屏蔽了分布式计算框架细节,将计算抽象成Map和Reduce两部分。
其中,Map对数据集上的独立元素进行指定操作,生成键值对形式的中间结果。Reduce对中间结果中相同“键”的所有“值”进行规约,以得到最终结果。MapReduce非常适合在由大量计算机组成的分布式并行环境里进行数据处理。MapReduce的工作过程如图所示。1.3.4
Hadoop(2)Mapreduce(分布式计算框架)。MapReduce的工作流程大致可以分为5步步骤1:分片和格式化。输入Map阶段的数据源,需要经过分片和格式化操作。分片:将源文件划分为大小相等的小数据块(在Hadoop2.x中默认其大小为128MB),Hadoop会为每一个分片构建一个Map任务(MapTask),并由该任务运行自定义的map()函数,从而处理分片里的每一条记录。格式化:将划分好的分片格式化为键值对<key,value>形式的数据,其中,key代表偏移量,value代表每一行的内容。1.3.4
Hadoop步骤2:执行MapTask。每个MapTask任务都有一个内存缓冲区(缓冲区大小为100MB),输入的分片数据经过MapTask处理后得到的中间结果会被写入内存缓冲区。如果写入的数据达到内存缓冲区的阈值(80MB),会启动一个线程将内存缓冲区中的溢出数据写入磁盘,同时不会影响Map中间结果继续被写入内存缓冲区。在溢写过程中,MapReduce框架会对key进行排序,如果中间结果比较大,那么会形成多个溢写文件,最后的内存缓冲区数据也会全部被溢写入磁盘,形成一个溢写文件,若有多个溢写文件,则最后合并所有的溢写文件为一个文件。1.3.4
Hadoop步骤3:执行Shuffle。在MapReduce工作过程中,将Map阶段处理的数据传递给Reduce阶段是MapReduce框架中关键的一步,这个过程叫作Shuffle。Shuffle会将MapTask输出的处理结果数据分发给ReduceTask,并在分发过程中对数据按key进行分区和排序。步骤4:执行ReduceTask。输入ReduceTask的数据流是<key,{valuelist}>形式的,用户可以自定义reduce()方法进行逻辑处理,最终以<key,value>的形式输出。步骤5:写入文件。MapReduce框架会自动把ReduceTask生成的<key,value>传入OutputFormat的write方法,实现文件的写入操作。1.3.4
Hadoop(3)YARN架构YARN是一个资源调度平台,负责为运算程序提供服务器运算资源,相当于一个分布式的操作系统平台,而MapReduce等运算程序相当于运行于操作系统之上的应用程序。YARN的出现其实是为了补充第一代MapReduce编程框架的不足,提高集群环境下的资源利用率,这些资源包括内存、磁盘、网络、I/O等。Hadoop2.X版本中重新设计的YARN集群具有更好的扩展性、可用性、可靠性、向后兼容性,并能支持除MapReduce外的更多分布式计算程序,YARN架构如图所示,主要由ResourceManager(RM)、NodeManager(NM)、ApplicationMaster(AM)和Container等组件构成。1.3.5
KafkaKafka最初由Linkedin公司开发,是分布式的、支持分区的(Partition)、多副本的(Replica)、基于zookeeper的分布式消息系统。Kafka可以实现与Storm、HBase和Spark的集成。Kafka处理它所有的发布/订阅消息系统使用了四个API,即生产者API、消费者API、StreamAPI和ConnectorAPI。它能够传递大规模流式消息,自带容错功能,已经取代了一些传统消息系统,如JMS、AMQP等。1.3.5
KafkaProducer:生产者,是消息的产生者,即消息的入口。Broker:Broker是Kafka实例,每个服务器上有一个或多个Kafka实例,我们姑且认为每个Broker对应一台服务器。每个Kafka集群内的Broker都有一个不重复的编号,如图1-3-10中的Broker-0、Broker-1等。Topic:消息的主题,可以理解为消息的分类,Kafka的数据就保存在Topic中。在每个Broker上可以创建多个Topic。1.3.5
KafkaPartition:Topic的分区,每个Topic可以有多个分区,分区的作用是保证负载均衡,提高Kafka的吞吐量。同一个Topic在不同的分区的数据是不重复的,Partition的表现形式就是一个个文件夹。Replication:每一个分区都有多个副本。当主分区(Leader)发生故障的时候,会选择一个追随者(Follower)上位,成为Leader。在Kafka中,默认副本的最大数量是10个,且副本的数量不能大于Broker的数量,Follower和Leader绝对是在不同的机器上,同一个机器对同一个分区也只可能存放一个副本。1.3.5
KafkaMessage:发送的每一条消息主体。Consumer:消费者,即消息的消费方,是消息的出口。ConsumerGroup:可以将多个消费者组成一个消费者组,在Kafka的设计中,同一个分区的数据只能被消费者组中的某一个消费者消费。同一个消费者组的消费者可以消费同一个Topic的不同分区的数据,这也是为了提高Kafka的吞吐量。Zookeeper:Kafka集群依赖Zookeeper来保存集群的元信息,以保证系统的可用性。1.3.6FlinkFlink是一个框架和分布式处理引擎,用于在无边界和有边界数据流上进行有状态的计算,Flink计算架构如图所示。Flink提供了用于流式处理的DataStreamAPI和用于批处理的DataSetAPI。Flink的分布式特点体现在它能够在成百上千个机器上运行,它将大型计算任务分成许多小的部分,每个机器执行一小部分。1.3.6Flink(1)Flink中的基础概念。①JobManager。JobManager也称为Master,用于协调分布式执行,它们用来调度Task,协调检查点(CheckPoint),协调失败时恢复。Flink运行时至少存在一个Master处理器,若配置高可用模式,则存在多个Master处理器,其中有一个是Leader,其他都是Standby。②TaskManager。TaskManager,也称为Worker,用于执行一个Dataflow
的Task(或者特殊的SubTask)、数据缓冲和DataStream的交换,Flink运行时至少存在一个Worker处理器。1.3.6Flink(2)Flink任务提交流程。Flink提交任务后Client向HDFS上传Flink的jar包和配置文件,之后向YARNResourceManager提交任务,ResourceManager分配容器资源并通知对应的NodeManager启动ApplicationMaster,ApplicationMaster启动后加载Flink的jar包和配置文件构建环境然后启动JobManager,之后ApplicationMaster向ResourceManager申请资源,启动TaskManager
,ResourceManager分配容器资源后,由ApplicationMaster加载Flink的jar包、配置构建环境并启动TaskManager
,TaskManager启动后向JobManager发送心跳包,并等待JobManager向其分配任务。1.3.7FlaskFlask是一个使用Python编写的轻量级Web应用框架。Flask只是一个内核,默认依赖于两个外部库:
Jinja2模板引擎和WerkzeugWSGI工具集。其特点包括内置开发服务器和快速调试器、集成支持单元测试、RESTful可请求调度、支持安全Cookie(客户端会话)、符合WSGI1.0、基于Unicode等。Flask的扩展包有Flask-SQLalchemy(操作数据库)、Flask-Migrate(管理迁移数据库)、Flask-Mail(邮件)、Flask-WTF(表单)、Flask-Script(插入脚本)、Flask-Login(认证用户状态)、Flask-RESTful(开发RESTAPI的工具)、Flask-Bootstrap(集成前端TwitterBootstrap框架)、Flask-Moment(本地化日期和时间)。1.3.7FlaskWSGI相当于Web服务器和Python应用之间的桥梁,隐藏了很多HTTP相关的细节。其目的是让Web服务器知道如何调用Python应用,并且将ClientRequest传递给Python应用;让Python应用能理解ClientRequest并执行对应操作,以及将执行结果返回给Web服务器,最终响应到Client。1.3.7FlaskFlask的基本模式Flask的基本模式为在程序里将一个视图函数分配给一个URL,每当用户访问这个URL时,系统就会执行给该URL分配好的视图函数,获取函数的返回值并将其显示到浏览器上,Flask框架的工作过程如图所示。1.3.7FlaskFlask的基本模式1.3.8MySQL在Web应用方面,MySQL是最好的RDBMS(RelationalDatabaseManagementSystem,关系数据库管理系统)应用软件之一。数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,每个数据库都有一个或多个不同的API,用于创建、访问、管理、搜索和复制所保存的数据。也可以将数据存储在文件中,但是在文件中读写数据速度相对较慢。(1)RDBMS术语。数据库:数据库是一些关联表的集合。数据表:数据表是数据的矩阵。在一个数据库中的数据表看起来像一个简单的电子表格。列:一列(数据元素)相同类型的数据,如邮政编码的数据。行:一行(元组或记录)是一组相关的数据,如一条用户订阅的数据。1.3.8MySQL冗余:存储两倍数据,冗余可以使系统速度更快。主键:主键是唯一的,一个数据表中只能包含一个主键,可以使用主键来查询数据。外键:外键用于关联两个数据表。复合键:复合键(组合键)将多个列作为一个索引键,一般用于复合索引。索引:使用索引可快速访问数据库表中的特定信息。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 深度解析(2026)《GBT 30141-2013水轮机筒形阀基本技术条件》
- 2026年科学调鱼测试题及答案
- 深度解析(2026)《GBT 29736-2013空调设备用加湿器》
- 2026年食品包装材料采购合同
- 2025届广东省广东省两校高考临门一脚考试三模英语试题(含答案)
- 小学生必背好词、好句、好段
- 万州区排水设施新改建提升项目(三条河流域外)-江南片区溢流直排口整治工程预算答疑
- 产800万个光学仪器和300万个化妆镜的生产线技改项目可行性研究报告模板拿地备案用
- 2025北京十一学校高一10月月考化学试题及答案
- 2025北京通州区高三(上)期中化学试题及答案
- 云南省昆明市普通高中2026届高三下学期复习教学质量诊断(二模)数学试卷 含解析
- 2026年高校辅导员实务工作试题及答案
- YY/T 0474-2025外科植入物聚丙交酯均聚物、共聚物和共混物体外降解试验
- 员工晋升通道及考核制度
- 南京工程学院《电气电子技术》2023-2024学年第二学期期末试卷
- 电力企业输电线路安全隐患排查治理制度
- 《简单的加、减法》教案-2025-2026学年人教版(新教材)小学数学二年级下册
- 上海市浦东新区人力资源和社会保障局事业单位招聘编制笔试考试练习题
- 山东省中考物理综合复习试题集
- 汽车制动系统故障诊断毕业论文
- 水利工程施工环境保护监理规范
评论
0/150
提交评论