




已阅读5页,还剩69页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
班 级 031201 学 号 03120111 本科毕业设计论文 题 目 基于Hadoop的MapReduce 应用软件设计与实现 学 院 计算机学院 专 业 计算机科学与技术 学生姓名 毕业设计(论文)诚信声明书本人声明:本人所提交的毕业论文基于Hadoop的MapReduc应用软件设计与实现是本人在指导教师指导下独立研究、写作的成果,论文中所引用他人的无论以何种方式发布的文字、研究成果,均在论文中加以说明;有关教师、同学和其他人员对本文的写作、修订提出过并为我在论文中加以采纳的意见、建议,均已在我的致谢辞中加以说明并深致谢意。本论文和资料若有不实之处,本人承担一切相关责任。论文作者: (签字) 时间:2016年6月1日指导教师已阅: (签字) 时间:2016年6月13日Error! No text of specified style in document.摘要随着21世纪信息化时代的到来,随着科技的迅速发展,我们每时每刻都在这个世界中留下我们的足迹,这些足迹构成了日益增长的信息量。因此对这些大数据的存储和处理显得至关重要,天气信息的分析与查询就是一个很好的例子。本文针对这一问题,将阐述如何开发一款基于hadoop的MapReduce的天气分析系统。首先介绍了大数据时代的相关背景和为处理大数据而产生的相关工具,如Hbase。其次分析了打造一款基于hadoop天气分析系统的重要性和可行性。最后经过系统设计,开发环境搭建,系统实现和系统结果展现等部分完成了本系统的开发工作。整个系统界面简洁直观,使用方便,运行可靠,查询结果因图形展现的方式使数据之间对比明显,易于接受。关键字: 大数据 Hadoop Hbase 天气分析AbstractWith the advent of the information age in 21st century, with the rapid development of science and technology, we all the time in the world to leave our footprints, these footprints constitute the growing amount of information. Therefore, the storage and processing of these big data is very important, the analysis of the weather information and query is a good example. Aiming at this problem, this paper will explain how to develop a weather analysis system based on MapReduce hadoop. First ,it introduced the background of the era of big data and related tools for the processing of large data, such as Hbase. Secondly, it analyzes the importance and feasibility of building a weather analysis system based on Hadoop. Finally,after the system design, development environment, system implementation and system results it shows that the system has completed the development of the work. The whole system interface is simple and intuitive, easy to use, reliable operation,and the results of the query results show the way to make the data between the obvious, easy to accept. Key words: big data Hbase Hadoop weather analysis 目录iii目录第一章 绪论11.1开发背景11.1.1大数据时代介绍11.1.2 Hadoop的介绍11.1.3天气信息查询与分析的前景21.2设计目的21.3技术目标2第二章 天气分析系统分析32.1可行性分析32.1.1可行性研究介绍32.1.2可行性分析32.2需求分析32.2.1需求分析作用42.2.2功能需求4第三章 天气分析系统设计73.1界面设计73.1.1前台界面设计73.2模块划分83.2.1用户注册与登录模块83.2.2上传天气数据模块93.2.3数据分析模块93.2.4定时更新天气数据模块93.2.5历史天气信息查询模块103.2.6今日天气信息动态显示模块113.2.7历史天气走势与极端天气查询模块113.2.8数据库设计模块113.3数据库设计E-R图12第四章 天气分析系统相关技术简介154.1开发工具154.1.1 JDK1.7154.1.2 eclipse luna154.1.3 hadoop 2.7.2154.1.4 hbase 1.1.3154.1.5 hive 1.2.1154.1.6 zookeeper 3.4.8164.1.7 mysql 5.5164.1.8 swing164.1.9 VMware Workstation 12 Pro174.1.10其他辅助开发工具包174.2开发环境搭建194.2.1 三台Linux虚拟机的搭建194.2.2 配置静态ip194.2.3 SSH安装及免密码登陆204.2.4修改hosts文件224.2.5安装jdk224.2.6 hadoop安装与配置234.2.7 Zookeeper安装与配置264.2.8 Hbase的安装与配置274.2.9 Hive的安装与配置294.2.10 mysql的安装与配置304.2.11 Hive与Hbase的整合314.2.12 hadoop-eclipse-plugin插件安装314.2.13 WindowBuilder插件32第五章 天气分析系统实现335.1界面实现335.1.1主窗体的创建与总体布局335.1.2 界面主要控件实现345.1.3界面动态图形展示实现355.2各功能模块实现385.2.1用户注册与登录模块实现385.2.2上传数据模块实现395.2.3数据分析模块实现405.2.4定时在线更新与分析模块实现425.2.5历史天气信息查询模块实现445.2.6今日天气信息动态显示模块实现445.2.7历史天气走势模块实现455.2.8数据库模块实现45第六章 天气分析系统结果展示496.1用户注册与登录功能展示496.1.1用户注册496.12用户登录506.2上传数据功能展示506.3数据分析与定时更新功能展示516.3.1数据分析516.3.2定时更新526.4数据库内容展示536.5今日天气展示536.6历史天气展示546.7历史天气走势展示57第七章 总结与展望597.1总结597.2未来展望59致谢61参考文献63Error! No text of specified style in document.63第一章 绪论1.1开发背景1.1.1大数据时代介绍21世纪是一个互联网时代,一个信息化的时代。我们这一代人享受着科技发展所带来的好处,人们交流越来越密切,生活也越来越方便,大数据便是这一时代的产物。大数据具有以下特征:1) 数据量大2) 类型繁多3) 价值密度低4) 增长速度快,时效高放眼世界,现在各行各业每天都会产生大量的数据,而大量的数据给我们的技术发展带来了各种各样的难题,主要有以下两个方面:1) 海量数据的存储问题2) 海量数据的分析计算问题1.1.2 Hadoop的介绍在这样的时代背景下,Hadoop应运而生,解决大数据时代的种种难题。Hadoop的框架最核心的设计:HDFS和MapReduce。HDFS为海量的数据提供了存储,MapReduce为海量的数据提供了计算。Hadoop作为大数据行业的标准具有以下优点:海量存储HDFS:1)分布式易扩展2)廉价易得3)高吞吐量4)高可靠性分布式并行计算:1)大容量高并发3)封装分布式实现细节4)大大提高分析效率1.1.3天气信息查询与分析的前景随着时代的发展,生活水平显著提高,物质方面的享受已经不能够满足人们的需求。越来越多的人追求精神上的享受,外出旅游便是一种方式。据可靠信息,仅2015年国内旅游人数就达到40亿人次,这种情况使天气信息的获取与历史天气情况分析需求迫切。而不仅仅是旅游行业,天气信息关乎我们平时生活起居等方方面面。世界各地大大小小的城市以及历年天气信息庞大的数据量使得基于hadoop的天气查询与分析系统取得显著优势。1.2设计目的为了使因工作需要或生活需要的人们方便快捷的查询天气信息,分析各地区海量的历史天气信息,本课题将开发一款基于hadoop的mapreduce天气信息的分析系统。该系统使用户可以方便直观的查询当日天气情况,也提供了在系统中存储的海量天气历史信息的简单分析与查询功能。而且考虑到本软件的商用目的,在设计时考虑到了软件的可扩展性,安全性和速度。1.3技术目标1) 了解和掌握Hadoop基础知识和生态系统。2) 了解和掌握MapReduce基础知识。3) 了解和掌握HDFS基础知识。4) 了解和掌握HIVE基本知识。5) 了解和掌握HBase基本知识。第二章 天气分析系统分析2.1可行性分析2.1.1可行性研究介绍考虑到项目时间资源等因素,在实际开发该计算机系统时,常常要为资源不足和交付日期难以完成而苦恼,因而需要慎重地尽可能早的估计研制课题的可行性。可行性研究包括:经济可行性、技术可行性、法律可行性、操作可行性等。2.1.2可行性分析1) 经济可行性我们的天气信息分析系统是以hadoop的mapreduce为基础的,因hadoop是开源的,项目软件成本大大降低,再加上hadoop集群可以部署在廉价的服务器上,因此开发成本很低,在经济方面可行。2) 技术可行性本系统前端采用swing编写,后台使用hadoop集群,数据库使用MySQL,并且系统所需的天气信息皆找到了合适的网站来进行获取,因此在技术方面该项目可以实现,满足技术可行性。3) 操作可行性本系统UI界面采用swing编写,简洁直观,操作简单。用户无需太多时间便可熟练使用本系统,在操作方面满足绝大多数人群,因此在操作方面可行。4) 法律可行性本系统使用的hadoop为开源的,没有版权问题。在法律上遵守国家法律法规,在国家内可以自由使用,因此在法律方面可行。2.2需求分析搭建基于Hadoop和Mysql的气温分析系统,系统可由B/S或C/S架构实现:2.2.1需求分析作用通过对应问题及其环境的理解与分析,为问题涉及的信息、功能及系统行为建立模型,将用户需求精确化、完全化,最终形成需求规格说明,这一系列的活动即构成软件开发生命周期的需求分析阶段。需求分析是介于系统分析和软件设计阶段之间的桥梁。一方面,需求分析以系统规格说明和项目规划作为分析活动的基本出发点,并从软件角度对它们进行检查与调整;另一方面,需求规格说明又是软件设计、实现、测试直至维护的主要基础。良好的分析活动有助于避免或尽早剔除早期错误,从而提高软件生产率,降低开发成本,改进软件质量。2.2.2功能需求MapReduce是一种编程模型,用于大规模数据集(大于1TB)的并行运算。它们的主要思想,都是从函数式编程语言和矢量编程语言里借鉴来的。它极大地方便了编程人员在不会分布式并行编程的情况下,将自己的程序运行在分布式系统上。 当前的软件实现是指定一个Map(映射)函数,用来把一组键值对映射成一组新的键值对,指定并发的Reduce(归约)函数,用来保证所有映射的键值对中的每一个共享相同的键组。本次毕业设计的主要任务是:搭建基于Hadoop和Mysql的气温分析系统,系统可由B/S或C/S架构实现该气温分析系统具有以下功能1)城市信息维护: 通过该功能可以维护城市信息。2)气温数据导入:通过该功能选择相应的城市,并将该城市多天的气温上传,上传后将气温和城市信息保存到Hadoop HDFS或HBase中。3)气温数据分析: 采用HIVE每天定时对气温信息进行数据分析,例如:找出每天温度最高的城市,将分析结果保存到Mysql。4)分析结果展示: 将分析结果以图表的形式进行展示。注:以上为建议功能模块,可适当更改或扩展。第三章 天气分析系统设计本系统大体上分为前台界面和后台hadoop集群两部分。通过将系统的前台与后台划分开来使本来看起来复杂庞大的系统设计简单清晰了很多,便于开发时根据开发的部分适时调整自己的定位与开发方法。3.1界面设计3.1.1前台界面设计前台主要界面有:1) 用户注册界面提供用户名,密码,二次输入密码等用户注册的基本功能。2) 用户登录界面提供用户名,密码,管理员权限输入等功能。3) 管理员界面分为以下6个部分:(1) 历史天气信息查询界面提供查询历史信息的基本界面,如选择城市,时间。也提供了天气数据的查询方式,如查询当天天气情况,当月情况,当年情况等。查询结果以图形的形式展现。(2) 今日天气信息查询界面展现全国各省会今日的天气概况,展现形式参考天气预报,提供以中国地图为背景动态展示天气情况的效果(3) 上传天气数据界面提供选择城市,选择文件,点击上传等功能。(4) 数据分析界面提供选择时间范围,选择分析数据方式,如:客户端分析,Hive分析等功能。(5) 定时数据更新界面提供定时获取数据与分析数据的详细日志进行界面展现的功能。(6) 历史天气变迁查询界面提供选择指定城市,展现选定时间范围内天气情况的走势情况,展现形式为折线图。4) 普通用户界面分为以下三个部分:(1) 历史天气信息查询界面:同管理员界面(2) 今日天气信息查询界面:同管理员界面(3) 历史天气变迁及恶劣天气情况查询界面:同管理员界面3.2模块划分将系统模块化使我们的设计思路更加清晰,层次分明。在详细设计时可以通过将模块分别开发来提高开发效率,也便于单元测试,保证程序的稳定性。本系统主要分为八大模块:1) 用户注册与登录模块2) 上传天气数据模块3) 数据分析模块4) 定时更新天气数据模块5) 历史天气信息查询模块6) 今日天气信息动态显示模块7) 历史天气变迁模块8) 数据库设计模块3.2.1用户注册与登录模块模块主要功能:点击注册按钮进入到用户注册界面,输入用户名和密码等信息即可完成注册,注册成功之后将用户信息保存到数据库中,其中加入不符合条件的用户信息的前台简单判定:1)输入判定:(1) 两次输入密码不相同(2) 用户名为空(3) 密码为空2) 用户信息判定:1) 用户注册:用户名是否存在的判定2) 用户登录:用户名,密码是否正确以上不符合条件的注册与登录信息皆会以弹窗的形式告知用户3.2.2上传天气数据模块模块主要功能:1)从指定的气象信息网站上下载天气信息文件,点击选择城市与选择文件按钮从本地选择下载好的数据进行上传。2)将待上传的数据文件进行信息提取(气温,风速,云量,天气总体概况等)。3)将提取后的文件上传到Hbase。4)将源数据文件上传到HDFS,以备文件里的其他信息用于以后的功能扩展。3.2.3数据分析模块模块主要功能:数据分析模块提供选择时间范围使用客户端分析或Hive分析Hbase所保存天气数据的功能。分析详细如下:(1) 分析每天全国各地最高/最低气温,最高/最低风速所在的城市(2) 分析全国各城市每个月的天气情况,如:当月平均气温,最高气温,最高风速情况等。3.2.4定时更新天气数据模块模块主要功能如下:1) 利用一些天气信息网站提供的API在线获取信息,将这些信息保存到Hbase.每天定时更新,方便快捷,便于城市天气信息的实时获取与维护。2) 定时分析当天获取到的天气数据,分析内容参照数据分析模块,并将分析进度展现出来。3.2.5历史天气信息查询模块模块主要功能:通过输入指定信息从数据库调取数据以图形的形式表现出来。1)查询结果展现形式:(1)温度(包含最高,最低,平均气温):折线图,概念图见图3.1(2)风速(包含最高,最低,平均风速):折线图,概念图见图3.1(3)云量(总体云量情况):饼状图,概念图见图3.2图3.1图3.22)查询操作的种类:(1)指定日期天气情况(2)指定月份天气情况(3)指定年份天气情况3)按照查询种类有选择地调取数据。查询数据的调取途径:(1)指定日期天气情况:从Hbase中获取(2)指定月份天气情况:从Hbase获取(3)指定年份天气情况:从MySQL中获取(需提前分析好每月数据保存到MySQL中)3.2.6今日天气信息动态显示模块模块主要功能:(1) 显示今日天气大体情况:利用天气信息网站API实时获取数据显示(2) 利用中国地图显示信息(参照天气预报)(3) 动态效果:鼠标悬停在指定省份区域,点亮该区域并在鼠标附近以透明悬浮窗的形式展现天气信息。3.2.7历史天气走势与极端天气查询模块模块主要功能:显示指定城市指定时间范围内各年份的天气走势,如气温走势。将走势情况按天气信息属性不同以不同的折现图进行展现。3.2.8数据库设计模块模块分为以下几部分:1)MySQL数据库:通过MySQL存储以下信息:(1)用户数据(用户名,密码,管理员标识)(2)城市信息(城市名,ID,坐标-经纬度)(3)各城市月天气情况(4)每天最高气温/最低气温所在城市2)Hbase数据库:存储各个城市的天气信息(按小时存储)(1)城市气温(2)城市风速(3)城市云量(4)城市天气总体概况,如雨,雪,晴3)Hive数据管理仓库:建立基于Hbase存储的天气信息的所对应的Hive表(1)可以通过Hive中的表对Hbase里面的天气信息进行分析,如分析某一天最高气温所在城市(2)可以通过Hive使用SQL语句进行查询,简单方便。3.3数据库设计E-R图MySQL各实体E图与实体间E-R图用户信息实体E图如图3.3所示:图3.3城市信息实体E图如图3.4所示:图3.4每日天气信息实体E图如图3.5所示每月天气信息实体E图如图3.6所示图3.5图3.6各实体E-R图如图3.7:图3.7第四章 天气分析系统相关技术简介4.1开发工具4.1.1 JDK1.7JDK(Java Development Kit)是一款针对Java开发员的产品。自从Java推出以来,JDK已经成为使用最广泛的Java SDK。JDK 是整个Java的核心,包括了Java运行环境、Java工具和Java基础类库。4.1.2 eclipse lunaEclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。4.1.3 hadoop 2.7.2Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,则MapReduce为海量的数据提供了计算。4.1.4 hbase 1.1.3HBase是一个分布式的、面向列的开源数据库,是Apache的Hadoop项目的子项目。HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库。另一个不同的是HBase基于列的而不是基于行的模式。4.1.5 hive 1.2.1hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。 其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。4.1.6 zookeeper 3.4.8ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。4.1.7 mysql 5.5MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于Oracle旗下公司。MySQL 最流行的关系型数据库管理系统,在 WEB 应用方面MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。由于其社区版的性能卓越,搭配PHP和Apache可组成良好的开发环境。4.1.8 swingSwing是一个用于开发Java应用程序用户界面的开发工具包。以抽象窗口工具包(AWT)为基础使跨平台应用程序可以使用任何可插拔的外观风格。Swing开发人员只用很少的代码就可以利用Swing丰富、灵活的功能和模块化组件来创建优雅的用户界面。 工具包中所有的包都是以swing作为名称,例如javax.swing,javax.swing.event。4.1.9 VMware Workstation 12 ProVMware是一款虚拟机软件。VMware可以在个人本地一台笔记本机器上同时运行二个或更多Windows、DOS、LINUX系统。与“多启动”系统相比,VMWare采用了完全不同的概念。多启动系统在一个时刻只能运行一个系统,在系统切换时需要重新启动机器。VMWare是真正“同时”运行,多个操作系统在主系统的平台上,就象标准Windows应用程序那样切换。而且每个操作系统你都可以进行虚拟的分区、配置而不影响真实硬盘的数据,你甚至可以通过网卡将几台虚拟机用网卡连接为一个局域网,极其方便。安装在VMware操作系统性能上比直接安装在硬盘上的系统低不少,因此,比较适合学习和测试。4.1.10其他辅助开发工具包1)jfreechartJFreeChart是JAVA平台上的一个开放的图表绘制类库。它完全使用JAVA语言编写,是为applications, applets, servlets 以及JSP等使用所设计。JFreeChart可生成饼图(pie charts)、柱状图(bar charts)、散点图(scatter plots)、时序图(time series)、甘特图(Gantt charts)等等多种图表,并且可以产生PNG和JPEG格式的输出,还可以与PDF和EXCEL关联。JFreeChart Java图表库是一个100%免费的开源项目,使开发人员容易专业质量图表显示在他们的应用程序。 JFreeChart广泛的特性包括:(1)一致的和证据确凿的API,支持多种图表类型;(2)一个灵活的设计,很容易扩展,和目标服务器端和客户端应用程序;(3)支持多种输出类型,包括Swing组件、图像文件(包括PNG和JPEG)和矢量图形文件格式(包括PDF、EPS和SVG);(4)JFreeChart是“开源”,或者更具体地说, 自由软件 。 2)jsonlibJSON(JavaScriptObject Notation) 是一种轻量级的数据交换格式。它基于ECMAScript的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C、C+、C#、Java、JavaScript、Perl、Python等)。这些特性使JSON成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成(一般用于提升网络传输速率)。Json-lib 是一个 Java 类库可以实现如下功能:转换 javabeans, maps, collections, java arrays 和 XML 成为 json 格式数据转换 json 格式数据成为 javabeans 对象Json-lib 需要的 jar 包:(1)commons-beanutils-*.jar(2)commons-collections-*.jar(3)commons-lang-*.jar(4)commons-logging-*.jar(5)ezmorph-*.jar(6)json-lib-*.jar3) hadoop-eclipse-pluginHadoop是一个强大的并行框架,它允许任务在其分布式集群上并行处理。但是编写、调试Hadoop程序都有很大难度。正因为如此,Hadoop的开发者开发出了Hadoop Eclipse插件,它在Hadoop的开发环境中嵌入了Eclipse,从而实现了开发环境的图形化,降低了编程难度。在安装插件,配置Hadoop的相关信息之后,如果用户创建Hadoop程序,插件会自动导入Hadoop编程接口的JAR文件,这样用户就可以在Eclipse的图形化界面中编写、调试、运行Hadoop程序(包括单机程序和分布式程序),也可以在其中查看自己程序的实时状态、错误信息和运行结果,还可以查看、管理HDFS以及文件。总地来说,Hadoop Eclipse插件安装简单,使用方便,功能强大,尤其是在Hadoop编程方面,是Hadoop入门和Hadoop编程必不可少的工具。4) mysql-connector-javaMySQL Connector/J是MySQL官方JDBC驱动程序。java连接mysql时,需要安装驱动。如果未安装,会出现找不到“com.mysql.jdbc.Driver”的错误。5) WindowBuilder插件WindowBuilder是一款基于Eclipse平台的双向Java的GUI设计插件式的软件。它具备SWT/JFACE开发、Swing开发及GWT 开发三大功能,是一款不可多得的Java体系中的WYSIWYG工具。4.2开发环境搭建4.2.1 三台Linux虚拟机的搭建1)搭建环境准备如下:(1)Linux虚拟机ISO:ubuntu-14.04.2-desktop-amd64.iso(2)虚拟机平台服务器版本:平台:VMware Workstation 12 Pro版本:12.0.0 build-29855962)虚拟机搭建详细过程:(1)安装VMware workstation(2)使用iso方式搭建Linux虚拟机(3) 设置虚拟机用户名,密码(4) 设置虚拟机名称,处理器数量(5) 设置虚拟机内存大小为1G,网络类型为桥接模式,i/o控制类型(6) 设置磁盘类型为SCSI,创建虚拟磁盘(7) 设置完毕,开始安装(8) 按照同样方法配置另外两台Linux虚拟机即可4.2.2 配置静态ip1)三台虚拟机分别配置静态IP为:192.168.68.100,*.*.*.101,*.*.*.102,如图4.12)在本地主机新建虚拟网卡,设置与虚拟机同一网段静态ip为:192.168.68.106,如图4.2,图中1处为虚拟网卡类型,2处为虚拟网卡ip地址,可以使用此虚拟网卡和虚拟机中的Linux分布式集群进行通信。图4.1图4.24.2.3 SSH安装及免密码登陆1)安装ssh(1)打开终端,输入sudo apt-get install openssh-server,如图4.3图4.3(2)查看ssh服务是否启动,在终端输入sudo ps -e | grep ssh,如图4.4图4.4结果如图4.4所示,包含了ssh程序,其中有sshd2)设置远程无密码登陆(1) 创建用户名下.ssh文件夹(2)生成密码对,在终端输入ssh-keygen -t -rsa,结果如图4.5, 如图4.5所示,红色圈中部分为生成的公钥和私钥。图4.5(2)把公钥把公钥加到用于认证的公钥文件,如图4.6,图中4.6中 2号标记处即为用于认证的公钥文件。图4.6(4)验证ssh是否配置成功,在终端输入ssh localhost,结果如图4.7图4.7(5)无密码登录另一台主机,本机slave2,要登录slave1。 进入本机的slave2的.ssh文件夹,在终端输入sudo scp authorized_keys hadoopslave1:/.ssh/authorized_keys_from_slav e2,如图4.8。图4.8进入另一主机slave1的.ssh目录,在终端输入:catauthorized_keys_from_masterauthorized_keys至此,可以在slave2上面进行无密码登陆slave1了。4.2.4修改hosts文件在hosts文件中增加master,slave1,slave2主机IP地址,如图4.9图4.94.2.5安装jdk1)安装本地主机windows系统下jdk(1) 从官网下载jdk1.7并进行安装(2) 系统变量-新建 JAVA_HOME变量,变量值填写jdk安装路径, 如图4.10所示图4.10(3) 系统变量-找到 Path 变量,在变量值输入%JAVA_HOME%bin,如图4.11图4.11(4) 测试环境是否配置成功,如图4.12图4.122)安装虚拟机Linux系统下jdk(1) 将下载好的jdk文件进行解压,移动到合适的位置。(2) 配置环境变量:sudo gedit /.bashrc,添加以下代码:export JAVA_HOME=/usr/lib/jvm/jdk1.7export JRE_HOME=$JAVA_HOME/jre export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib export PATH=$JAVA_HOME/bin:$PATH(3) 输入:java -version查看环境是否配置成功,结果如图4.13图4.134.2.6 hadoop安装与配置1)从官网上下载hadoop,如图4.14所示,本课题使用的hadoop版本为2.7.2图4.142)将下载好的hadoop解压到指定目录下3)配置hadoop的配置文件(1)配置文件1:hadoop-env.sh.修改JAVA_HOME值(export JAVA_HOME=/usr/jdk1.7.0_80),如图4.15(2) 配置文件2:yarn-env.sh。修改JAVA_HOME值(export JAVA_HOME=/usr/jdk1.7),如图4.16所示图4.15图4.16(3) 配置文件3:slaves (这个文件里面保存所有slave节点),如图4.17图4.17(4)配置文件4:core-site.xml,如图4.18图4.18(5)配置文件5:hdfs-site.xml,如图4.19图4.19(6)配置文件6:mapred-site.xml,如图4.20图4.20(7)配置文件7:yarn-site.xml,如图4.21图4.214)将配置好的hadoop复制到其他节点5)配置环境变量,如图4.22图4.226)启动验证(1)格式化namenode(2)启动hadoop主机和从机启动之后进程如图4.23和图4.24所示。图2.28为主机进程,图2.29为从机进程。其中主机进程有3个:SecondaryNameNode,NameNode,ResourceManager,从机进程有2个:DataNode,NodeManager.图4.23图4.244.2.7 Zookeeper安装与配置1)从官网下载zookeeper并解压到指定目录2)配置Zookeeper的环境变量,并通过命令“source ”命令使修改后的配置生效,如图4.25图4.253)修改Zookeeper的配置文件将./conf/zoo_sample.cfg文件复制一份,并更名为zoo.cfg,如图4.26所示图4.26server.A=B:C:D:其中 A 是一个数字,表示这个是第几号服务器;B 是这个服务器的 ip 地址;C 表示的是这个服务器与集群中的 Leader 服务器交换信息的端口;D 表示的是万一集群中的 Leader 服务器挂了,需要一个端口来重新进行选举,选出一个新的 Leader,而这个端口就是用来执行选举时服务器相互通信的端口。如果是伪集群的配置方式,由于 B 都是一样,所以不同的 Zookeeper 实例通信端口号不能一样,所以要给它们分配不同的端口号。4)创建myid文件在dataDir目录下创建一个myid文件,然后分别在myid文件中按照zoo.cfg文件的server.A中A的数值,在不同机器上的该文件中填写相应的值。如图4.27图4.275)启动Zookeeper执行命令“zkServer.sh start”将会启动Zookeeper。在此需要注意,和在Master启动Hadoop不同,不同节点上的Zookeeper需要单独启动。而执行命令“zkServer.sh stop”将会停止Zookeeper。使用命令“JPS”查看Zookeeper是否成功启动,如图2.33与2.34所示.其中4.28为主机进程图,4.29为从机进程图。从图中可以看出进程中多了QuorunPeerMain进程图4.28图4.294.2.8 Hbase的安装与配置1)从官网上下载hbase,本课题版本为hbase-1.1.32)解压hbase到指定目录并重命名文件夹3)配置hbase环境变量,如图4.30图4.304)修改配置文件hbase-env.sh,如图4.31图4.315)修改配置文件hbase-site.xml,如图4.32图4.326)修改regionservers,将文件内容设置为:masterslave1,如图4.33图4.337)启动hbase,使用jps命令查看主从机进程来看是否启动成功。其中主机进程为图4.34,从机进程为图4.35。可以从图中看出,主机多出HMaster进程,从机多出HRegionServer进程图4.34图4.354.2.9 Hive的安装与配置1)从管网上下载hive,本课题版本为hive-1.212)解压到指定目录并重命名3)配置环境变量,如图4.36图4.364)把几个带.template后缀的模板文件,复制一份变成不带.template的配置文件,注意hive-default.xml.template这个要复制二份,一个是hive-default.xml,另一个是hive-site.xml,其中hive-site.xml为用户自定义配置,hive-default.xml为全局配置,hive启动时,-site.xml自定义配置会覆盖-default.xml全局配置的相同配置项。5)修改配置文件hive-site.xml,如图4.37,4.38,4.39所示图4.37图4.38图4.396)在主机终端输入hive,查看是否配置成功,如图4.40所示图4.404.2.10 mysql的安装与配置1)ubuntu下mysql安装,执行命令如下,并附图4.41(1)sudo apt-get install mysql-server(2)sudo apt-get install mysql-client(3)sudo apt-get install libmysqlclient-dev图4.412)添加mysql-connector下载mysql-connector-java-3.1.12-bin.jar文件,并放到$HIVE_HOME/lib目录下,如图4.42图4.423)(1)登录mysql,如图4.43的1号标记处。(2)建立数据库,如图4.43的2号标记处。(3)给用户赋予权限,如图4.43的3号标记处。图4.434)继续配置hive,加上驱动和数据库地址 (1)配置数据库地址,如图4.44图4.44 (2)配置数据库驱动,如图4.45图4.45 (3)配置用户名与密码,如图4.46与4.47图4.46图4.474.2.11 Hive与Hbase的整合1)修改 Hive hive-site.xml,增加如图4.48内容图4.482)将HBase的以下jar包放到Hive的lib下有hbase-common-*.jarhbase-server-*.jar。3)重新编译hive-hbase-handle-1.21.jar4.2.12 hadoop-eclipse-plugin插件安装1)下载插件,放入eclipse的plugins文件加下2)打开eclipse,调出视图,设置与远程服务器的连接,如图4.49所示图4.493)配置成功后,可在资源管理器处查看hdfs上的文件,如图4.50图4.504.2.13 WindowBuilder插件在线安装windowbuilder插件,如图4.51所示图4.51第五章 天气分析系统实现5.1界面实现5.1.1主窗体的创建与总体布局本系统前台界面采用swing编写,主窗体采用card窗口布局方式,包含了各模块自己独特的界面。每个界面以面板作为内部各组件的容器。1)主窗体创建代码:MainFram frame = new MainFram();/创建主窗体,MainFrame继承于Jframframe.setVisible(true);private JPanel contentPane = new JPanel();/创建内容面板,作为其他组件/添加到顶层容器的关联容器CardLayout cardLayout = new CardLayout(0, 0);/设置卡片布局方式contentPane.setBorder(new EmptyBorder(5, 5, 5, 5);/内容面板位置setContentPane(contentPane);contentPane.setLayout(cardLayout);/设置内容面板卡片布局方式代码说明:(1) 因为Swing组件不能直接添加到顶层容器中,所以必须添加到一个与Swing顶层容器相关联的内容面板(content pane)上。内容面板是顶层容器包含的一个普通容器,它是一个轻量级组件。基本规则如下:把Swing组件放入一个顶层Swing容器的内容面板上避免使用非Swing的重量级组件。 (2) 设置内容面板的card布局方式是为了使用系统的不同功能时方便切换到不同的界面,这样做便不需要每次使用不同的功能重新创建窗体了,在系
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025广东工业大学招聘事业编制工作人员23人模拟试卷附答案详解(考试直接用)
- 秦皇岛市中医院运营管理部主任竞聘述职与答辩题库
- 天津市人民医院涎腺超声诊断考核
- 2025贵州罗甸县第二医共体总院边阳分院招聘卫生专业技术人员考前自测高频考点模拟试题附答案详解
- 重庆市人民医院输卵管结扎术专项技能考核
- 邢台市中医院发票管理与使用规范笔试试题
- 北京市中医院血液净化相关感染防控措施考核
- 2025年常州市武进区卫健系统公开招聘工作人员12人模拟试卷附答案详解(模拟题)
- 沧州市中医院病理标本核对考核
- 2025湖南衡阳市水务投资集团有限公司招聘30人考前自测高频考点模拟试题及答案详解(典优)
- 国家职业技术技能标准 4-07-02-05 商务数据分析师S 2024年版
- 模具开发进度管理表
- 正骨八法注意事项和操作应用
- 成都中医药大学药学院毕业实习鉴定表
- 投标货物质量标准的详细描述
- 镇墩稳定计算
- 2023-2024学年辽宁省沈阳市郊联体高二上学期10月月考物理试题(解析版)
- 《大学生军事理论教程》第五章
- 中国建筑色卡
- 第八章世纪美国政治思想
- 起重机司机Q2(限桥式起重机)题库题库(1727道)
评论
0/150
提交评论