Python基于hadoop的大规模并行数据分析系统原型设计(8)
时间:2017-02-08 13:00 来源:毕业论文 作者:毕业论文 点击:次
本地监控Hadoop集群工作情况。 启动socket使用Json与服务器进行简单数据交互. 使用Hive对海量数据进行所需要的查询。 集群端功能: 准备好自定义的MapReduce函数等待执行。并在执行Hadoop工作后,存储分析结果数据。 启动socket与客户端通信。 系统操作流程 系统操作流程中包括了玩家登录,帐号注册,操作相应的功能点。 系统操作流程 系统操作流程进行步骤如下: 开始系统操作 用户登陆 用户选择对应功能 流程结束 分布式算法的详细流程于第四章有重点介绍。 数据通信方式 套接字是特定网络协议套件对上的网络应用程序提供者提供当前可一直标准的对象。它们允许程序接受并进行连接,入发送和接受数据。在python中简历具有TCP和流套接字的简单服务器,只需要使用socket模块,利用该模块的函数可以生成网络连接通信的程序。 信息的发送 当产生需要发送的信息时,系统将信息封装成类JOSN后作为send()方法的请求发送至服务器。 信息的接收 需要接受更新数据的客户端每隔一定的时间向服务器发出请求。读取套接字的下行数据,如果存在符合条件的信息则服务器将该游戏信息封装成JOSN,通过send()方法发送信息。 系统开发 Python客户端 wxPython是Python编程语言的一个GUI工具箱。他使得Python程序员能够轻松的创建具有健壮、功能强大的图形用户界面的程序。它是Python语言对流行的wxWidgets跨平台GUI工具库的绑定。而wxWidgets是用C++语言写成的。和Python语言与wxWidgets GUI工具库一样,wxPython是开源软件。这意着任何人都可以免费地使用它并且可以查看和修改它的源代码,或者贡献补丁,增加功能。wxPython是跨平台的。这意着同一个程序可以不经修改地在多种平台上运行。现今支持的平台有:32位微软Windows操作系统、大多数Unix或类Unix系统、苹果Mac OS X。由于使用Python作为编程语言,wxPython编写简单、易于理解。 Hadoop应用 Mapper将输入一个的key/value映射到多个中间格式的key/value形式。用户需要实现map(WritableComparble,Writalbe,OutputCollector,Reporter)方法完成输入到输出的处理。同时可以选择重写JobConfigurable.configure(JobConf)方法完成Mapper的初始化工作;重写Closeable.close( )方法执行Mapper的清理工作。因为MapReduceBase实现了JobConfigurable和Closeable接口,因此程序只要继承MapReduceBase就可以。 程序通过调用OutputCollector.collect(WritableComparable,Writable)方法收集输出的键值对(Mapper输出键值对不需要与输入键值对的类型一致),通Reporter报告进度,更新Counters表明自己正常运行。 Reducer会把Mapper的输出作为输入,因此Reducer的输入类型需要与Mapper的输出类型一致,Reducer任务会将输入的key/value归并为一个更小的结果集。用户需要实现reduce(WritableComparable, Iterator, OutputCollector, Reporter)方法来对输入的key/value进行处理,同Mapper过程一样,用户可以完成Mapper的初始化工作,重写Closeable.close()方法执行Mapper的清理工作。Reduce任务调用将处理结果写入HDFS。任务通过Reporter报告进度,至此MapReduce任务结束。 关键技术研究及实现 在介绍本课题的基本内容之后,本章节将详细介绍其中的关键技术。这些关键技术使得本课题所构想的基本结构得以实现。以下所论述的内容皆为本课题的核心内容。 系统核心设计 系统的主要结构在第三章有详细的介绍,但是数据挖掘技术在不停的发展,课题为原型设计,不可能实现所有并发式构建后的数据挖掘模型,因此系统数据挖掘模块的可扩展性和文护性成为系统的核心设计要求。 (责任编辑:qin) |