葡萄大数据解决方案说明书.docx
葡萄管家项目解决方案说明书XX科技股份有限公司编制目录一、项目存在问题及需解决问题31. 存在问题32. 需解决问题4二、解决方案51 .解决方案总体架构52 .核心技术6(1) Hadoop6(2) SpringMVC6(3) MyBatis6(4) Echarts7(5) MySQ1.7(6) Hive7(7) HBASE8(8) Zookeeper8(9) F1.ume8三、开发范围91 .数据生产92 .数据采集/消费93 .数据分析104 .数据展示11一、项目存在问题及需解决问题1 .存在问题1.农技专家匮乏,服务范围有限传统的农业生产,高度依赖农业生产专家的现场技术指导,但即使是在非常需要农业技术推广人员的农忙时节,在田间地头依然难觅他们的踪影。据调查,目前我国农业技术推广人员普遍缺少,即使是在农业大省,也面临严重缺乏的困局。数据显示,目前我国在岗的农技推广人员仅有50万人,平均每万名农业人口中农技人员仅有6.6人。此外,严重的知识断层和知识老化,以及知识结构偏低,是现有农技站面临的另一个尴尬。农技人员断层的同时,涉农专业也同样门可罗雀,被莘莘学子打入冷宫。众所周知,农业发展需要科学的引领,需要科学的生产技术,但我国农民接受新技术的能力普遍较差,大部分劳动力不能掌握现代科学技术,依旧沿用传统的生产方式和方法。要实现农业产业化与现代化,就必须推广应用先进的农业生产技术和管理方法,在农技人员匮乏且后续乏人的环境之下,如何利用先进的互联网、大数据技术,将有限的农业生产专家的生产技术和管理方法推广应用到农业生产中,就成了当务之急、燃眉之需。2 .农技服务模式单一,指导效率低下目前,我国的农业技术服务模式比较单一,主要依赖农业技术推广站农技人员到田间地头进行实地指导,问或组织农业生产者进行临时的农业技术培训。在农业技术推广人员极为匮乏的当下,农业生产指导的效率非常低。近年来,随着互联网技术的发展,农业信息化有了一定的推进,农业专家、农技人员可以通过互联网进行远程的农业生产指导。然而,这种形式的指导仅仅是减少了农技人员到现场的时间,在极为有限的程度上加大了农技服务的面积,而专家在线指导依旧面临着专家资源匮乏的问题;加之远程指导仅仅通过照片、视频、语音等进行诊断、指导,存在信息采集不完全、信息传递有误差等问题;且农业生产技术往往因人而异,不同的人进行指导往往生产效果不同,导致远程农技服务效果不佳。要提高农技服务的效率,提升农业生产的效率,归根结底是要解决农业专家匮乏、农业技术服务模式单一、农业生产技术缺乏标准的问题。3 .农业数据稀缺,利用价值微小近年来,快速发展的大数据、物联网等高新技术,给传统农业带来了变革的可能。但由于我国农业长期处于小农经济模式,农业生产数据极为匮乏,农业生产数据采集的方式落后,对于大数据来说,采集的数据微乎其微。而且,目前数据孤岛问题严重,农业生产数据主要集中在科研院所,数据远未实现数字化,并没有建立起真正意义上的农业数据库,更没有形成大数据的共享利用。大数据的“4V”特性里面,有一点很重要的特性是“价值密度低”,也就是说单纯的原始数据对用户来说价值并不大,一定要经过专业的分析处理,才能体现出真正的价值。虽然目前巳有一些基于大数据的农业生产管理产品,但尚未建立标准的农业数据库及农业生产智能算法,与智能化生产尚有较大差距,远未涉足农业生产的人工智能领域。4 .需解决问题农业数据稀缺,利用价值微小缺少有效的系统平台业务标准二、解决方案1 .解决方案总体架构ECSaIITab1.eauHDFS效第米Jt¢:图1葡萄管家解决方案总旅架构HBaSe是一个分布式的、面向列的开源数据库,该技术来源于FayChang所撰写的GOOgIe论文"Bigtab1.e:一个结构化数据的分布式存储系统就像BigtabIe利用了GOogIe文件系统(Fi1.eSyStem)所提供的分布式数据存储一样,HBase在Hadoop之上提供了类似于Bigtab1.e的能力OHBaSe是APaChe的Hadoop项目的子项目。HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库。另一个不同的是HBaSe基于列的而不是基于行的模式。系统采用面向对象的软件设计方法,把整个系统看作是多个离散对象的组合。系统设计时,首先把业务流程分解成功能模块及其业务实体对象,然后根据业务流程分析对于这些业务实体对象的操作方法,形成业务处理对象,最后把各个功能模块关联起来,形成系统。软件设计是一个将需求转变为软件的过程,系统通过逐步求精使得设计陈述逐渐接近于源代码。系统程序采用MVC的设计思想,将展现逻辑、控制逻辑、业务处理逻辑分离。系统采用参数化的设计思想,定义和管理系统的实体及配置,调整实体以适应外部变化。系统采用J2EE技术保证程序逻辑实现的平台无关性,并便于安装部署。系统采用AJAX技术,提高客户操作的交互性,保证实际使用的易用性。系统采用echarts可视化框架实现数据展示。2 .核心技术(1) HadpHadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。(2) SpringMVCSPringMVe:属于SpringFrameWork的后续产品,已经融合在SpringWebFIOW里面。SPring框架提供了构建Web应用程序的全功能MVC模块。(3) MyBatisMYBatis:是支持普通SQ1.查询,存储过程和高级映射的优秀持久层框架。MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis使用简单的XM1.或注解用于配置和原始映射,将接口和Java的PojOS(P1.ainO1.dJavaObjects,普通的JaVa对象)映射成数据库中的记录。(1) EchartsECharts是一款基于Javascript的数据可视化图表库,提供直观,生动,可交互,可个性化定制的数据可视化图表。(2) MySQ1.MySQ1.是一个关系型数据库管理系统,由瑞典MySQ1.AB公司开发,属于Orac1.e旗下产品。MySQ1.是最流行的关系型数据库管理系统之一,在WEB应用方面,MySQ1.是最好的RDBMS(Re1.ationa1.DatabaseManagementSystem,关系数据库管理系统)应用软件之一。MySQ1.是一种关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQ1.所使用的SQ1.语言是用于访问数据库的最常用标准化语言。MySQ1.软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择MySQ1.作为网站数据库。(3) HiveHiYe是基于HadooP构建的一套数据仓库分析系统,它提供了丰富的SQ1.查询方式来分析存储在Hadoop分布式文件系统中的数据:可以将结构化的数据文件映射为一张数据库表,并提供完整的SQ1.查询功能;可以将SQ1.语句转换为MaPRedUCe任务运行,通过自己的SQ1.查询分析需要的内容,这套SQ1.简称HiveSQ1.,使不熟悉mapreduce的用户可以很方便地利用SQ1.语言查询、汇总和分析数据。而mapreduce开发人员可以把自己写的mapper和reducer作为插件来支持hive做更复杂的数据分析。它与关系型数据库的SQ1.略有不同,但支持了绝大多数的语句如DD1.、DM1.以及常见的聚合函数、连接查询、条件查询。它还提供了一系列的:具进行数据提取转化加载,用来存储、杳询和分析存储在HadOOP中的大规模数据集,并支持UDF(User-DefinedFunction),UDAF(User-DefnesAggregateFunc1.ion)和UDTF(User-DefinedTab1.e-GeneratingFunction),也可以实现对map和reduce函数的定制,为数据操作提供了良好的伸缩性和可扩展性。(4) HBASEHBase-HadoopDatabase,是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBaSe技术可在廉价PCServer上搭建起大规模结构化存储集群。(5) ZookeeperZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是GoogIe的ChUbby一个开源的实现,是HadOOP和HbaSe的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。(6) F1.umeFIUme是CIoUdera提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统,F1.Ume支持在日志系统中定制各类数据发送方,用于收集数据;同时,F1.ume提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力。分析模块流程图:图3分析模块流程图4.数据展示数据展示模块流程图:图4数需展示模块流程图