《智慧农业解决方案说明书.docx》由会员分享,可在线阅读,更多相关《智慧农业解决方案说明书.docx(11页珍藏版)》请在优知文库上搜索。
1、智慧农业项目解决方案说明书XX科技股份有限公司编制目录一、项目存在问题及需解决问题31. 存在问题32. 需解决问题4二、解决方案51 .解决方案总体架构52 .核心技术6(1) Hadoop6(2) SpringMVC6(3) MyBatis7(4) Echarts7(5) MySQ1.7(6) Hive7(7) HBASE8(8) Zookeeper8(9) F1.ume8三、开发范围91 .数据生产92 .数据采集/消费93 .数据分析104 .数据展示11一、项目存在问题及需解决问题1 .存在问题传统的农业生产方式面临着资源浪费与农产品安全问题,受自然因素影响大,经验种植推广慢,难以复
2、制,以及农业数据资源孤立、缺乏统一标准等亟待解决的问题。1.资源浪费与农产品安全问题在传统的农业生产中,农民种地往往贪图方便省事,导致劳动力投入大大减少。主要表现在:使用大量农药除草、水源漫濯及化肥农药不合理使用,不能根据实际农作物所需的生长要索做到资源的按需供绐,造成资源的严重浪费。农药、化肥等化学物质的不合理使用,带来了农副产品有害物质残留量超标、质量下降等问题,同时超量农药及化圮会随雨水流入江河、湖泊,造成水源的污染,影响整个生态环境。2 .受自然因素影响大我国是世界上自然灾害频繁发生的国家之一。近年来,受全球气候变暖影响,气象灾害和病虫害频繁发生,对种植业生产的影响呈加重趋势。气象灾害
3、方面,常年农作物受灾面积7亿多亩,狗占农作物总播种面积的1/3,成灾率50%左右,因干旱、洪涝、台风、低温冻害等气象灾害损失粮食1000亿斤左右,农业直接经济损失1000多亿元。随着气候变暧趋势不断加快,灾害发生形势将更加严峻,生产风险和不稳定性将进一步增加。3 .经验种植推广慢,难以复制近年来,随着青壮年劳动力大量进城务工,许多文化程度较高的青壮年离开农村,留在农村的大部分是妇女和中老年人,从事种植业生产的劳动力素质呈下降趋势,制约了先进技术的推广应用。老农民虽然种植经验丰富,但是难以得到有效传承,经验往往也缺少有效的数据支撑及险证方式。4 .数据资源孤立,缺乏统一标准目前,我国建设了大量的
4、涉农网站,汇集了很多信息资源。但由于体制和利益等原因,这些数据相互之间缺乏统一标准和规范,在功能上不能关联互补、信息不能共享互换、信息与业务流程和应用相互脱节,形成了所谓的信息孤岛。同时,数据缺乏标准、难以共享,导致低水平重复建设、数据利用率低、信息资源凌乱分散和大量冗余等。2.需解决问题 资源浪费与农产品安全问题 受自然因素影响大 数据资源孤立,缺乏统一标准二、解决方案1 .解决方案总体架构图I智慧农业解决方案总体架均HBaSe是一个分布式的、面向列的开源数据库,该技术来源于EayChang所撰写的GoOgIe论文Bigtab1.e:一个结构化数据的分布式存储系统就像BigtabIe利用了G
5、OOgIe文件系统(FiIeSyStem)所提供的分布式数据存储一样,HBaSe在Hadoop之上提供了类似于Bigtab1.e的能力。HBase是Apache的Hadoop项目的子项目。HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库。另一个不同的是HBaSe基于列的而不是基于行的模式。系统采用面向对象的软件设计方法,把整个系统看作是多个离散对象的组合。系统设计时,首先把业务流程分解成功能模块及其业务实体对象,然后根据业务流程分析对于这些业务实体对象的操作方法,形成业务处理对象,最后把各个功能模块关联起来,形成系统。软件设计是一个将需求转变为软件的过程,系统通过逐步求
6、精使得设计陈述逐渐接近于源代码。系统程序果用MVC的设计思想,将展现逻辑、控制逻辑、业务处理逻辑分离。系统采用参数化的设计思想,定义和管理系统的实体及配置,调整实体以适应外部变化。系统采用J2EE技术保证程序逻辑实现的平台无关性,并便于安装部署。系统采用AJAX技术,提高客户操作的交互性,保证实际使用的易用性。系统采用echarts可视化框架实现数据展示。2 .核心技术(1) HadoopHadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。(2) SpringMVCSpringMVC:属
7、于SpringFrameWork的后续产品,巳经融合在SpringWebFIoW里面。Spring框架提供了构建Web应用程序的全功能MVC模块。(3) MyBatisMYBatis:是支持普通SQ1.查询,存储过程和高级映射的优秀持久层框架。MyBatiS消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis使用简单的XM1.或注解用于配置和原始映射,将接口和Java的PoJOS(P1.ainO1.dJavaObjeCtS,普通的JaVa对象)映射成数据库中的记录。(4) EchartsECharts是一款基于Javascript的数据可视化图表库,提供直观,生动,可交
8、互,可个性化定制的数据可视化图表。(5) MySQ1.MySQ1.是一个关系型数据库管理系统,由瑞典MySQ1.AB公司开发,属于OraCIe旗下产品。MySQ1.是最流行的关系型数据库管理系统之一,在WEB应用方面,MySQ1.是最好的KDBMS(Re1.ationa1.DatabaseManagementSystem,关系数据库管理系统)应用软件之一。MySQ1.是一种关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQ1.所使用的SQ1.语言是用于访问数据库的最常用标准化语oMySQ1.软件采用了双授权政策,分
9、为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择MySQ1.作为网站数据库。(6) HiveIIiVe是基于Hadoop构建的一套数据仓库分析系统,它提供了丰富的SQ1.查询方式来分析存储在Hadoop分布式文件系统中的数据:可以将结构化的数据文件映射为一张数据库表,并提供完整的SQ1.查询功能;可以将SQ1.语句转换为MaPRedUCe任务运行,通过自己的SQ1.查询分析需要的内容,这套SQ1.简称HiveSQ1.,使不熟悉mapreduce的用户可以很方便地利用SQ1.语言查询、汇总和分析数据。而Inapreduce开发人员可以把自
10、己写的mapper和reducer作为插件来支持hive做更.复杂的数据分析。它与关系型数据库的SQ1.略有不同,但支持了绝大多数的语句如DD1.、DM1.以及常见的聚合函数、连接查询、条件查询。它还提供了一系列的:具进行数据提取转化加载,用来存储、查询和分析存储在Had。P中的大规模数据集,并支持UDF(User-DefinedFunction),UD.,F(User-DefnesAggregateFunction)和UDTF(User-DefinedTab1.e-GeneratingFunction),也可以实现对map和reduce函数的定制,为数据操作提供了良好的伸缩性和可扩展性。(7
11、) HBASEHBase-HadoopDatabase,是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PCSerVer上搭建起大规模结构化存储集群。(8) ZookeeperZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是GoogIe的ChUbby一个开源的实现,是HadOoP和HbaSe的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。(9) F1.umeFIUrne是CIOUdera提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统,F1.umc支持在日
12、志系统中定制各类数据发送方,用于收集数据;同时,F1.ume提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力。三、开发范围1 .数据生产对于该模块的业务,印数据生产过程,一股并不会让你来进行操作,数据生产是一套完整且严密的体系,这样可以保证数据的安全性。但是如果涉及到项目的一体化方案的设计(数据的产生、存储、分析、展示),则必须清楚每一个环节是如何处理的,包括其中每个环境可能隐藏的问题;数据结构,数据内容可能出现的问题。2 .数据采集/消费数据采集模块(消费),在企业中你要清楚流式数据采集框架f1.ume和kafka的定位是什么。我们在此需要将实时数据通过f1.ume采集到kafk
13、a然后供给给hbase消费。f1.ume:CIOUdera公司研发适合下游数据消费者不多的情况:适合数据安全性要求不高的操作:适合与Hadoop生态圈对接的操作。kafka:Iinkedin公司研发适合数据下游消费众多的情况;适合数据安全性要求较高的操作(支持rep1.ication);因此我们常用的一种模型是:线上数据一f1.ume-kafkaf1.ume(根据情景增删该流程)HDFS线上数据一f1.umekafkaSparkstreaming实时流式处理消费存储模块流程图:图2消费存储模块流程图3 .数据分析我们的数据已经完整的采集到了HBaSe集群中,这次我们需要对采集到的数据进行分析,统计出我们想要的结果。注意,在分析的过程中,我们不一定会采取一个业务指标对应一个mapreduce-job的方式,如果情景允许,我们会采取一个mapreduce分析多个业务指标的方式来进行任务。分析模块流程图:图3分析模块流程图4 .数据展示数据展示模块流程图:图4数需展示模块流程图