基于hadoop分析实现

2024-05-25 版权声明 我要投稿

基于hadoop分析实现(通用8篇)

基于hadoop分析实现 篇1

企业技术开发

TECHNOLOGICAL DEVELOPMENT OF ENTERPRISE

2015年6Jun.2015 VoL34 No.16

张拥华

(湖南工业职业技术学院,湖南长沙410208)

摘要:随着教学资源的不断增加,海量的数据资源如何实现有效的管理已经成为高校研究的一个新难题。文章的研究内

容是基于Hadoop的云教学资源平台的研究和设计。目标在于经过实现基于Hadoop的云教学资源平台,提高系统的安 全 性,解决教育资源在存储方面的问题,给教学提供一个安全、稳定、方便的教育资源平台。

关键词:Hadoop;教学资源;云平台

中图分类号:TP333 文献标识码:A 文章编号:1006—8937(2015)16—0024—04

DoI:10.141650.cnki.hunansci.2015.16.008

of cloud based teaching resource platform based

Design and implementation

on Hadoop

ZHANG Yong-hua

(Hunan Industry Polytechnic,Changsha,Hunan 410208,China)

Abstract:With the continuous increase of the teaching resources,how to realize the effective management of the huge amount of data has become new research in the university difficult problem.The research content of this paper is based the research and of the cloud platform of teaching based Hadoop.Goal is through implementation based Hadoop cloud platform of design in storage,for students to provide safe,teaching resources,improve the security of the system,solve problem of educational stable and convenient platform for the of education.

Keywords:Hadoop;teaching resources;cloud platform

云计算,是当前现代信息技术领域非常前沿的一种 年2月,NDFS(Nutch分布式文件系统)和MapReduce由

于 技术,利用云计算技术可以将分布在不同地理位置的计 在Nutch项目中应用良好,所以,分离出来成为一套命 强大的计算能力,并 名 算机集成在一个平台下,实现大型的超级计算机,获得 为Hadoop的独立而完整的软件。

且可以实现对所管辖的计算机资源 Hadooop是Apache旗下的用于分布式计算的一个 开 全方位的管理和控制【11,目前,全球众多研究人员、科研

源平台[21。HDFS(Hadoop分布式文件系统)和MapReduce

(谷歌MapReduce的开源实现)是Hadoop的核心,使 机构致力于云计算的研究,并获得了不少成果。

利用云计算的优势,将其应用到教学领域将有利于 Hadoop的用户可以清晰地了解系统底层的分布式架构[3]。

促进学生自主学习,提升教学质量和效果,作为云计算 Hadoop的整合资源的能力可以使用户轻松构建自己的 的常用框架Hadoop,目前已经在很多应用中被广泛使用,分布式云计算平台,同时,Hadoop集群存储和计算的能 本文将利用Hadoop技术设计并实现一个云教学的资源 力,也使用户更好地处理海量的数据。平台,从而有

随着Hadoop的发展,越来越多的项目加入到这个 效的整合学校的各类教学资源,保证教师

大 和学生都能便捷的从该资源平台获取教学资源,提高教 集合中,除了HDFS和MapReduce#]",HBase、Hive、Common、Pig、Avro等项目也已经成为其不可缺少的一部

Chukwa、学质量,提升教学效果。

分,它们之间协同工作,为用户提供更好的服务[41。Hadoop平台概述

2系统设计框架

Hadoop是在Apache Nutch的基础上发展起来 的,Nutch项目作为Lucene项目的一部分开始于2002年。2006 2.1系统需求分析 基:J:Hadoop的云教学资源平

台主要是需要为用户提

收稿日期:2015—04—27

供所需要的教学资源,因此,平台必须资源丰富、功能完

作者简介:张拥华(1977一),女,湖南宁乡人,硕士研究生,讲师,研究 整、用户具有良好的体验,通过对笔者所在学院进行调

方向:大数据分析和云计算研究。

项目基金:湖南省教育厅科学研究项目“云计算环境下的精准营销团 研走访,可以将本系统的需求总结为以下六个方面。

购网站关键技术研究”(12C1032)①降低存储成本。教学资源随着信息技术在教育领

万方数据 基于Hadoop的云教学资源平台设计与实现

resources a on resources Oil on resources a resources

第34卷第16期

张拥华:基于Hadoop的云教学资源平台设计与实现

域的发展呈现爆炸式增加,传统的教学资源平台存储这

些海量数据的成本是非常高的。因此,新的系统应该严格

观地使用系统,将自己的请求发送给系统,系统接收到 请求后就会产生响应将用户所需要的东西发送给用户。

本系统主要的功能就是能够存储并管理海量的教学 控制存储成本,用比较低的成本来存储海量的教学资源。

②要保证教学资源数据以及用户信息的安全性。任 何一个系统的安全性都是非常重要的,特别是用户的个

图 人资料信息。

③要能够整合教学资源。将各种教学资源进行统一 存储,整合旧有的教学资源,并不断添新,丰富平台的教 学资源。

④在完成基本功能的基础上,要能够给用户提供个

性化的服务。比如,能够自动为用户推荐自己感兴趣的

教学资源以及要为用户提供自己的专属空间等。用户在

这个平台上应该是可以相互交流的,这样更有利于教学

资源平台的发展。

⑤这个系统应该是一个开放的系统,而不是封闭的。对象主要是教师和学生,但是对于其他

的群体也应该是来者不拒的。

停变化的,该系统要能够具备良好的扩展性,使系统上 ⑥要保证系统具有很好的扩展性。用户的需求是不

线后仍能继续增加满足用户需求的功能。

.2系统总体框架

本教学资源平台从下到上大致分为4层:数据资源

层、数据存储层业务逻辑层以及用户层。基: \,f’

]=Hadoop的 云教学资源果毛采的总体框架模型,如图

1所示。

I 目录管理系统管理

安全臂蓬用户管理

资源管理权限臂瑾

l㈣芋i,i

图1平台整体框架的设计

数据资源层:主要用于管理和存储大量的教学资源 数据,由多台廉价的Pc构成,属于系统的硬件资源,是 整 个系统的最底层。

数据存储层:为教学资源平台提供分布式存储和计 算,主要负责任务的分配和数据的管理,是由MapReduce

和HDFS共同组成的。

业务逻辑层:提供了系统平台的资源管理、目录管

功能,主要用于存储系统和应用

程序之间的沟通。

用户层:是整个系统的最顶层。用户可以在这一层直

万方数据

资源。该教学资源平台主要是由教学资源管理、系统平 台管理、管理员模块和用户模块4个功能模块构成,如2所示。工

角色。教辑、学生、院梭、企业、社会

基于H·d∞口的云教学

资霉平台平台管瑶l l教学资源管瑶

到国斟剧剧圉引圉 图2平台的功能模块设计l||||l圉目剖圉匡

虽然系统的服务 教学资源模块:包括教学资源的分类管理、教学资 源的上传、查询、下载和删除等功能;

平台管理模块:包括报警管理、故障管理以及服务 器管理等功能; 管理员模块:包括普通用户的权限管理、用户的日 志管理、用户管理等功能; 用户管理模块:包括用户的注册、用户的登陆、用户个人资料的编辑以及用户文件的增删改查功能。2.3系统功能设计 在基于Hadoop的云教学资源平台中,管理员和用户 都可以通过浏览器注册登录后按照自己的意愿进行一 定的操作,这些操作都是在他们各自权限允许的范围内。普通用户使用本系统时的情况,如图3所示。和普通用户

相关的功能有:文件评价、文件下载、文件上传、查看教 学资源详细信息、查看教学资源列表、登录与注册、修改 个人资料以及密码找回等。

图3用户用例图 普通用户在注册通过之后,可以通过登录本系统来 获取自己所需要的教学资源,同时也可以将自己的拥有 的教学资源共享给其他的用户。理、安全管理和设置等 在设计开发本系统的时候,我们要在实现基本功能 的基础上更多地为用户考虑。因此,我们设计了资源关 注和资源评价功能。在教学资源平台中,有很多教学资 源是持续更新的,用户可以使用系统的资源关注功能来

企业技术开发

2015年6月

关注自己喜欢的教学资源,当这些教学资源更新后,系

表2 mapred-site.mall的配置信息表 统会自动提 醒关注该教学资源的用户。另外,用户下载 Parameter Value

资源之后需要对该资源

mapred.job.tracker http://192.168.1.4:9001 低来对不

进行评价,系统会根据评价的高

同用户上传的相似资源进行排序。同时,其他

(要)hdfs—site.xml文件的配置。用户也可以根据资源评 价来判断某一资源是不是自己

这个文件主要的作用是设置HDFS相关的信息,该 想要的,资源评价功能的推出能让用户更快、更好地找 文件在基=J:Hadoop的云教学资源平台中的具体配置信

到最优的教学资源。

息,见表3。

表3 hdfs—site.xml的配置信息管理员使用本系统时的情况,如图4所示。与管理

Value Parameter 表 员相关的功能有:审核教学资源、管理普通用户信息、普!

坐!:堡£!!塑!

通用户权限控制以及集群信息管理等。

core—site.xml文件的配置。

这个文件主要的作用是设置Hadoop集群的全局性

参 数,如I,O属性、日志文件以及临时目录等,该文件在

基于 Hadoop的云;教学资源平台中的具体配置信息,见表 4。

裹4 core—site.mall的配置信息表

Parameter ValRe

hadoop.tmp.dir /usr/Hadoopltmp

fs.default.nalne hdfs:192.168.1.4:9000

图4管理员用例图

与普通用户相似,系统也只对管理员开发器权限之 3.2分布式计算模型实现 内的功能模块。管理员可以

查看和更改系统的某些配置,本文所设计的基于Hadoop云-教学资源平台的分布式

计算模型包括两部分,分别是Map和Reduce,其模型,还可以管理用户的信息和教学资源,监控系统运行的错 如

图5所 误日志信息,保证系统的正常运行,给用户带来最佳的

示。体验。

A 土 /主\,\ 3系统实现(M j

f乡(U

丫 1(4:黼:v 3.1 Hadoop平台搭建

为了完成本文所设计的基=f:Hadoop的教学资源平

如n·p姆K々\

台,首先,需要搭建Hadoop平台。Hadoop的配置文件分为 L———一一

l

Grelt喇l 只读类型的默认文件和定位设置文件两类,默认文件包

括mapred—queues.xml、mapred—default.xml、hdfs—default.xml

以及core—default.xml,定位设置文件包括mapred—queues.

xml、mapred—site.xml、hdfs—site.xmlVA及core—site.xml。我们

通常使用configuration类来读取hadoop 图5系统分布式计算模型 xml形式的的配置文件,通过

将云教学资源平台中的海量资源数据分割为M个片 resource来定位Hadoop的配置,每个resource都

包含很多的name/value对。下面对需要重点进行配置的文 段进行Map映射操作,产生键值对,然后,对k值进行

操作,产生新的元组,将这些新产生的元组分给为R个片

Group 件进行说明。

(!)Hadoop—env.sh文件的配置。段进行Reduce归约操作,将输出的数据保存到分布式 数 这个文件主要的作用是设置安装在计算机上的JDK 据库中,从而实现分布式计算模型。

的位置,还可以设置Hadoop守护进程的环境变量,该文 3.3主要模块实现流程图 件在基于Hadoop的云教学资 源平台中的具体配置信息,限于篇幅,本文主要对用户登录和注册模块、资源

推送模块的流程图进行说明。

见表l。

表1 lhdoop—env.sh的配置信息表 ①用户登录和注册模块。

Parameter ValHe

只有经过注册登录的用户才可以使用系统的功能。

java__home usr/jav叫dkl.6 用户登录注册的流程图,如图6所示。当用户在系统登录

界面输入账号的时候,系统会判断该用户名是否已经存 @)mapred—site.xml文件的配置。

在于数据库的用户信息表中,如果存在就进行用户名和 这个文件主要的作用是设置MapReduce的位置信息

密码的验证工作,否则,系统会提示用户进行注册。中和运算参数等,该文件在基于Had00p的云教学资源平台 万方数据

M,审 Kl:v

(毒)

“:v

KI:V蛆:y,上、KI:vl【l:v眨:7 K3.y酣:Y

Kl:VK2:v 髓:v

owttmt 牵牵({)孛牵l【3:v.T

94:v,v

K5:T 的具体配置信息,见表2。

在用户注册的时候,用户名、密码、邮箱以及性别等 第34卷第16期

张拥华:基于Hadoop的云教学资源平台设计与实现

图6用户登录注册流程图

信息都是必填的,验证注册信息的时候我们采取邮箱验

图7教学资源推送流程图 证的方式。同时,注册成功的用户在登录之后会拥有自

册登录到云教学资源平台中搜索自己所需要的教学资 己的个人空间,还可以修改自己的资料,添加和关注自

源,提高了老师科研和学生学习的效率。同时,教师和 己感兴趣的教学资源类别。

学生还可以在本系统中进行互动交流,增强师生之间的②教学资源推送模块。

关系。

教学资源推送功能就是系统智能地、主动地将用户

可能需要的教学资源推送给用户。系统记录用户平常查 参考文献:

看、下载、上传和关注的教学资源类型,然后,对这些记

【l】刘鹏.云计算【M】.北京:电子工业出版社,2010.

录进行分析,从而找出用户对那一类型的教学资源感兴

【2】饶丹鹃.多媒体教学资源云共享平台设计研究【D】.南京:趣。最后,再将云服务器中评分较高的或者是最新更新

南京师范大学,2013.的这一类型教学资源推送给用户。由于这个功能是系统

【3】闫娟,耿凯峰,刘丽.基::J:Hadoop平台的教育资源库建设 的主动行为,因此,用户可以选择是否开启此功能。教学

【J】.河南师范大学学报(自然科学版),2013,41(2):161—

资源推送功能的流程图,如图7所示。

164.结语

【4]柳俊.基于Hadoop的海量教学资源存储平台的设计与研究

【J】.电脑与电信,2013,(7):27—29,32.

本文的研究主要是为了解决海量教学资源存储的 [5】蒋宁,李文,李鸿彬.基于Hadoop的云计算辅助教学平台 问题,云教学资源平台使用了当前非常热门的云计算技

研究[J】.中国远程教育,2012,(9):79—82.

术来进行海量数据的存储和处理。老师和学生都可以注

制出高转换率太阳能薄膜电池

据俄(STRF))科学网站近日消息,俄科学院约飞

在平行的研究中,俄研究人员致力于完善一种 物理技术研究所的研究小组研制出一种新的太阳能

新的产品,基于硅材料的薄膜太阳能电池。2012年,薄膜电池,这种基于硅材料的太阳能电池组件,其光

日本三洋公司基于晶体非晶体异质结技术的太 阳能 电转换效率理论可达27%。

电池专利到期,俄科学家借助于该专利技术,利用俄 俄(XeBen))公司通过与瑞士合作在俄设厂生产 诺贝尔奖获得者阿尔费罗夫关于光电异质化的研究 太阳 能电池,年产100兆瓦特的薄膜太阳能电池组 成果,研制出一种新的太阳能薄膜电池。这种新的太 件。瑞士的生产技术保障所产太阳能电池组件光电

阳能薄膜电池基于硅材料,生产中利用等离子化学 转换效率达到8.9%。为完善该技术并进一步提高光

沉降的方法在晶体硅表面形成一层非晶体硅的纳米 电转换率,2010年,俄(XeBen))公司在约飞物理技术

薄膜。目前该研究中心生产的基于该技术的薄 膜太 研究所建立了薄膜太阳能电池技术研究中心,该中

阳能电池组件的工业样品光电转换率已达

21%,超

心的研究人员逐渐将该种薄膜太阳能电池的光电转 过传统薄膜太阳能电池组件的近2倍。换效率提高

至10%,进而达到12%。

(来源:科技部网站)

●●●●

基于hadoop分析实现 篇2

日志文件是由系统或者应用程序产生的, 用于记录系统和应用程序的操作事件如各种服务的启动、运行、关闭等信息。通过对日志文件的分析可以获得很多有价值的数据也能实现对系统安全、性能等方面的监控。Web日志[1]是由Web服务器产生的, 随着社交网络的兴起, Web2.0时代的到来, 网站的用户访问量的成级数增长, 产生的日志文件大幅增多。传统的日志文件分析方式已经无法满足大数据量日志分析的需求。该文将以Web日志文件为例, 利用Hadoop集群构建一个分布式计算平台为大数据日志文件的分析提供一个可行的解决方案, 以提高了日志分析的效率, 为进一步的大数据分析的提供参考。

现今日志文件分析方案是对大的日志文件先进行分割, 然后对分割后的日志文件进行分析, 分析方法采用文本分析及模式匹配等, 最常见的是采用awk、python、perl。这种分析方式面对大数据的日志文件分析效率低下, 耗时长。王潇博提出了基于挖掘算法的日志分析方式, 并设计了TAT系统[1]。对于Web分析除了对Web日志本身进行分析外还可以主动收集访问信息, 然后将信息存于关系型数据库中。这种方式最常见的是Google Analytics、百度统计等。这种方式将会影响网站的性能, 延长网站的加载时间。其次如果直接采用第三方的统计, 还将会泄露网站的信息。当访问量高时, 基于关系型数据库分析的方式将会受到数据库性能的制约。钱秀槟, 刘国伟, 李锦川等人提出了基于模式匹配算法的Web应用日志分析系统[2]。

2 Hadoop集群系统概述

日志文件记录了日常操作的原始数据, 数据极具价值。随着时间的推移日志文件越来越大, 分析难度也随着增大。本系统的设计就是为了解决文本日志的分析, 系统针对Web日志。本系统基于搭建好的Hadoop分布式架构, 将数据先存入到HDFS文件系统中, 运行mapreduce程序对日志文件进行过滤分析, 最后将数据输出到指定文件中。充分发挥了Hadoop分布式存储和分布式计算的优势。解决了海量数据日志文件的分析的难题, 采用基于分布式结构的日志分析系统, 提高了分析效率。

目标日志是由Apache服务器产生的访问日志。Apache采用默认安装方式时, 访问日志access.log, 存在于Apache安装目录的logs子目录下。访问日志access_log记录了所有对Web服务器的访问活动。下面是访问日志中一个典型的记录:

这行内容由7项构成1) 远程主机的IP地址。2) 浏览者的标识 (空白用一个“-”占位符替代) 3) 记录浏览者进行身份验证时提供的名字 (空白用一个“-”占位符替代) 。4) 请求的时间。5) 请求类型 (METHOD RESOURCE PROTOCOL) 。6) 状态代码 (请求是否成功及原因) 。7) 发送给客户端的总字节数。

3 系统的设计与实现

3.1 系统的基本目标

利用分布式的架构对日志文件进行分析, 对日志文件进行过滤, 按时间对日志数据进行分析。分析主要从页面pv、ip、请求状态、流量等方面出发。每月PV总量、PV量最多的一天、每月每个url的pv、每月独立IP、每天的流量、月总流量、每天的访问状态统计、每月的访问状态统计、每天的请求方式统计、每月的请求方式统计等等。

3.2 Hadoop部署

图1介绍了Hadoop部署的基本结构, Map Reduce模型中的Master的主控作业节点称为Job Tracker, 此框架下面的所有作业 (Job) 都是由Job Tracker进行管理的, 它是唯一存在的。Task Tracker, 负责每一个具体任务的执行。任务 (Task) 是具体执行的基本单元, 每一个作业被拆分成很多的任务, 被分配到合适任务节点上去执行, 任务节点一边执行分配过来的任务, 一边向Job Tracker汇报执行任务的状态, 以此来帮助Job Tracker了解作业执行的整体情况, 向空闲节点分配新的任务等操作。

3.3 日志数据的HDFS存储

图2展示了HDFS的工作原理。首先client通过调用Distributed File System的create方法来创建文件。Distributed File System通过RPC调用Name Node在文件系统的名字空间里创建一个文件。Distributed File System返回FSData Output Stream给client。FS-Data Output Stream封装了一个DFSOutput Stream来处理与datanodes和namenode之间的通讯。当client写一个block数据的时候, DF-SOutput Stream把数据分成很多packet。FSData Output Stream询问namenode挑选存储这个block以及它的副本的datanode列表。这个datanode列表组成了一个管道, 在上图管道由2个datanode组成 (备份参数是2) , 这2个datanode的选择有一定的副本放置策略。4、FSData Output Stream把packet写进管道的第一个datanode, 然后管道把packet转发给第二个datanode。

当管道里所有datanode都返回写入成功, 这个packet才算写成功, 发送应答给FSData Output Stream。开始下一个packet。如果某个datanode写失败了, 首先管道关闭。运行正常的datanode上正在写的block会有一个新ID (需要和namenode通信) 。这样失败的datanode上的那个不完整的block在上报心跳的时候会被删掉。失败的datanode会被移出管道。block中剩余的packet继续写入管道的其他两个datanode。同时namenode会标记这个block的副本个数少于指定值, 然后block的副本会稍后在另一个datanode创建。

有些时候多个datanode会失败。只要dfs.replication.min (缺省是1) 个datanode成功了, 整个写入过程就算成功。缺少的副本会异步的恢复。当client完成了写所有block的数据后, 调用FSData Output Stream的close方法关闭文件。最后FSData Output Stream通知namenode写文件结束。

3.4 日志分析过程

日志分析系统由客户端和Hadoop服务器组成, 客户端调用Hadoop接口将日志文件存入HDFS并调用任务, 这里的任务是按顺序执行的, 在前一个任务执行成功后才执行下一个任务, 每个任务都完成多件事, 每个任务都调用map和reduce过程, 最后一个任务将数据输出到HDFS的文本文件, 也可以将文件输出到数据库中, 最后根据统计数据进行展示。如图3。

4 结果分析

系统硬件环境的CPU为2.00GHz, 内存为4G可用内存为3G, 实验时为三台机器分配的内存情况master为256M, slave1为336M, slave2为384M。软件环境操作系统为rhel-server-6.0, JRE的版本:java-1.6.0。Hadoop版本:Hadoop-1.0.1。HDFS集群概况如图4。

通过分析执行过程的输出, 第一个任务map过程耗时2分31秒, reduce耗时9秒, 整个任务耗时2分48秒。Map过程读取的记录为311965条。reduce读取字节数为45431334, 输出字节数为3938231。任务二, map26秒, reduce, 16秒, 累计47秒。任务三, map28秒, reduce, 18秒, 累计耗时51秒。所有任务总耗时:4分16秒。从数据可以看出, 使用vmware虚拟机进行构建性能收到主机性能的影响, 受限较多。但是, Hadoop架构能有效对任务进行调度和分配, 达到预期效果。

图5可以看出任务输出了三个目录test-out1、test-out2、test-out3。每个任务输出一个, 前两个目录存放的是临时的文件, testou3目录存放的是结果文件。这些输出的文件是根据日期来的, 分为月汇总数据和每天的数据, 这些文件存放了最终的结果。

图6和图7截取了六月份的部分数据。此文件存放了六月每个访问页面的pv总量, 以及六月访问数据的汇总。六月的pv总和为139, get方式为127, post方式为12, http访问状态200次数为125, 访问状态301次数为2, 访问状态403次数为4, 访问状态404次数为8, pv量最多的一天为2011年6月30日121次, 最多的页面为/favicon.ico访问次数为7次, 月流量为46698。也可以查看六月具体每一天的数据。图8是单日统计数据, 这一天的pv量为5, get方式请求为4, post方式请求次数为1, 请求的状态码都为200即请求成功, 总流量为1684字节。

5 小结

分布式计算作为一项日趋成熟的技术, 逐渐展露了其优势。Hadoop框架很好的将分布式文件系统HDFS和Map Reduce编程模型进行了融合。使用Hadoop可以很便捷的搭建了一个分布式集群环境, 它对分布式任务控制调度有很好的性能和伸缩性。以此实例为基础可以进一步进行拓展, 对大数据任务进行更深入和详细的分析和挖掘, 为各个领域的大数据处理提供参考。

参考文献

[1]王潇博.基于挖掘算法的日志分析系统设计与实现[D].北京:北京交通大学, 2008:26-33.

[2]钱秀槟, 刘国伟, 李锦川, 等.Web应用日志分析系统分析与设计[J].计算机安全, 2011, 2011 (6) .

[3]肖立英, 李建华, 谭立球.Web日志挖掘技术的研究与应用[J].计算机工程, 2002, 28 (7) :276-277.

[4]张彦超, 刘云, 张海峰, 等.基于在线社交网络的信息传播模型[J].物理学报, 2011, 60 (5) :60-66.

[5]胡光民, 周亮, 柯立新.基于Hadoop的网络日志分析系统研究[J].电脑知识与技术, 2010, 6 (22) :65-69.

[6]辛大欣, 刘飞.Hadoop集群性能优化技术研究[J].电脑知识与技术, 2011, 7 (22) .

[7]韩亚.关系传播:WEB2.0时代的传播偏向[D].武汉:华中科技大学, 2008:1-2.

[8]Mark Lutz.Python学习手册[M].北京:机械工业出版社, 2009:659-665.

[9]Pallis, George.Cloud Computing:The New Frontier of Internet Computing[J].IEEE internet computing, 2010, 14 (5) :70-72.

基于hadoop分析实现 篇3

摘 要:随着信息化的建设,高校管理系统越来越多,通过查看分析系统日志可以监测系统状态,调查系统故障,更好地保证系统的正常运行。但由于日志数据量巨大,不易被读懂,无法通过人工分析挖掘出有价值的信息。分布式计算的出现,为解决这一难题提供了思路。Hadoop用于构建分布式存储开源框架,通过部署在上面的MapReduce程序,广泛地应用于处理海量的数据。结合具体问题,文章设计了基于Hadoop的高校日志分析系统,并深入分析了该系统的业务处理流程和系统功能框架。通过对实验结果的分析,证明了系统是有效的和有价值的。

关键词:日志分析;Hadoop;集群;分布式计算

中图分类号:TP393 文献标志码:B 文章编号:1673-8454(2015)16-0082-03

一、引言

计算技术的不断发展带动着高校信息化建设的深入,为了实现信息化教学管理,各大高校采用越来越多的系统。与此同时,系统需求复杂程度也越来越高,为了使这些系统能够正常运行,以及保证其安全性和可扩展性,查看日志已经成为一项重要的途径。通过分析日志数据,可以获取许多有价值的信息,如设备故障、网络运行历史背景、网络异常行为等方面的信息。[1]

但由于这些日志数据量大,且不易被读懂,利用传统的技术进行分析,在存储和计算量上都会遇到很大的困难,难以挖掘出对改进用户体验和提升管理水平都非常具有价值的信息,分布式计算技术恰好可以很好的解决这个问题。[2]

Hadoop作为当前流行的处理大数据的平台,近年来备受业内关注,因此得到了快速的发展,在网页搜索、日志分析、广告计算和科学实验等领域中出现了许多相关应用[3-5]。著名电商网站淘宝网拥有3000个节点的Hadoop集群,如此大规模的集群为它的日常运营做出了关键支撑。除此之外,Facebook、百度、Yahoo等众多互联网巨头也都在使用Hadoop。[2]

基于Hadoop 技术的特点,可以用它来存储高校的日志数据,并开发相应的算法对这些数据进行挖掘分析,提高高校对这些日志数据的利用价值。本文以高校日志分析系统为例,介绍了Hadoop在海量日志分析中的应用架构。

二、Hadoop介绍

Hadoop是Apache开发的开源的MapReduce集群实现。Hadoop的核心包含两部分,分别是Hadoop分布式文件系统(HDFS)和在此之上的MapReduce编程模型实现。Hadoop分布式文件系统(HDFS)是一个适合运行在通用硬件和大规模数据集上的分布式文件系统。而MapReduce是一种分布式编程模型,用于大规模数据集的并行计算,编程人员不用考虑分布式并行编程的具体实现,就能开发出分布式计算程序。HDFS和MapReduce的关系如图1。

每个HDFS采用Master/Slave架构,主要有四个组成部分:客户端(Client)、元数据节点(NameNode)、副元数据节点(Secondary NameNode)和数据节点(DataNode)。一个HDFS集群只包含一个元数据节点,元数据节点存储整个分布式文件系统的元数据信息,此外,还负责监控数据节点是否正常,如果出现异常情况,就将其从整个文件系统中删除。副元数据节点负责定期整理元数据节点中的文件,为其分担一部分工作,提高对内存资源的利用率。数据块的实际存储由数据节点负责,包括数据的读写,并定时向元数据节点汇报存储块的信息。[6]

MapReduce是一个把数据集的大规模操作分发给每个节点,从而实现并行计算的编程模型。MapReduce提供了简洁的编程接口,对于某个计算任务来说,其输入的是键值对,输出也以键值对的方式表示。MapReduce中的Map函数将用户的输入数据以键值对形式通过用户自定义的映射过程转变为同样以键值对形式表达的中间数据。而Reduce过程则会对中间生成的临时中间数据作为输入进行处理,并输出最终结果。[6]

三、系统架构

基于Hadoop的高校日志分析系统的日志处理流程主要由存储、分析和显示三个部分构成[1],如图2所示。在存储阶段,日志服务器负责接收日志源提供的日志,并将这些数据按照顺序存放在数据库或者文件中,之后再转储到Hadoop集群中,进行必要的数据归并和清洗,以便后续的分析处理;在分析阶段,MapReduce程序需在Hadoop集群中运行,按指定条件查询或挖掘日志数据,获得期望的信息;为了把这些信息进行归并和转换,日志分析结果仍然以文件形式存储在Hadoop集群中,经过专门的处理后,最后的结果以可视化的形式显示给用户。

根据上述的日志分析流程,为了实现功能需求,可将基于Hadoop的高校日志分析系统的逻辑架构方案设计如图3所示。

1.日志采集模块

采集并传送日志源产生的日志数据。日志的采集采用定时传送的方式,即日志接收节点每天定时收集每一个前端Web服务器中产生的日志数据。通过后台脚本,日志收集节点将从各个Web服务器采集到的日志数据导入到数据仓库工具中。

2.查询分析模块

在此模块中,需要一个非常重要的工具,即专门用于为用户提供查询接口的数据仓库工具(HBase,Hive等),它部署在元数据节点(NameNode)上。

查询模块的功能如下:首先,日志采集模块采集到的都是一条一条的日志记录,为了方便后续的查询和处理,需要将每个系统的日志数据映射成数据库表,结构化到数据库的概念之中;其次,由于系统是分布式的,查询模块需要提供大规模的查询分析功能来满足大量用户的查询请求,再将查询结果返回给结果输出模块。

在实际处理用户的自定义查询时,数据仓库工具执行的步骤如下:①客户端(Client)组件接收并向驱动器提交自定义的查询语句。②驱动器负责接收并转发客户端传来的查询语句给编译器,编译器收到后,将查询语句进行解析、优化。HDFS任务和MapReduce任务组成一个类似有向无环图的优化策略,最后,这些任务被执行引擎利用Hadoop来完成。

3.存储处理模块

存储处理模块同上述的查询分析模块部署在同一Hadoop集群中,它是由HDFS负责具体的执行,包括实际数据存储和数据仓库工具提交的MapReduce任务。首先,JobTracker创建一个包含Map任务和Reduce任务的作业对象,其中Map任务根据己划分的输入信息来创建,Reduce任务则根据一定的属性来设置。在初始化工作完成之后,每个TaskTracker会收到来自JobTracker根据特定调度算法分配的任务。TaskTracker接收到任务后,从共享文件系统中将任务文件和程序运行所需的文件复制到本地文件系统。然后,创建任务工作目录并为运行该任务新建一个实例。当完成作业的所有任务后,该作业的状态被JobTracker标记为成功,并被发送给数据仓库工具。

4.结果输出模块

结果输出模块负责将查询结果以某种形式表现给用户查看。后台将客户端传来的查询请求传递到查询分析模块,数据仓库工具将其编译、解析和优化后生成MapReduce任务,存储处理模块就负责处理这些查询任务,并将结果通过查询分析模块返回到结果输出模块,最后以可视化的形式呈现给用户。

四、测试

为了验证基于Hadoop的高校日志分析系统的有效性,我们构建了一个特定的实验平台并采用了特定测试方法。

1.实验环境

硬件平台包含6台服务器,其中的一台用来作为HDFS的元数据节点,4台作为数据节点,这5台机器充当Hadoop集群,另外一台用作与之进行对比的单机。具体配置如下:处理器类型:Intel(R) Core(TM)2Duo E6600 @2.40GHz;内存大小:2GB。集群服务器操作系统:ubuntu-12.04,Hadoop版本:Hadoop-0.23.1。

2.实验数据及内容

在实验中,输入内容为实际的系统产生的几组日志数据,这几组的数据量大小不同,在Hadoop集群和传统单机模式下分别处理这些数据,最后统计出两者消耗时间的长短,进行结果的对比。统计结果如表1所示。

3.实验结果分析

分析实验结果发现,在日志数据量小于2G的情况下,Hadoop集群的时间消耗大于单机处理,其处理海量数据的优势并未发挥出来。但当需要处理的日志数据大小超过2.5G时,Hadoop集群的优势就会慢慢显现出来,且随着数据量的逐渐增大,其优势也会越来越明显,具体如图4所示。

四、结论

高校系统日志分析是高校日常管理的重要保障之一,本文提出基于Hadoop的高校日志分析系统,利用Hadoop集群在海量数据处理方面的优势,高效地进行海量日志数据的分析和挖掘,具有很高的实用价值。实际上Hadoop还有很大的应用空间,这些还有待进一步的研究。

参考文献:

[1]杨锋英,刘会超.基于Hadoop的在线网络日志分析系统研究[J].计算机应用与软件,2014(8):311-316.

[2]胡光民,周亮,柯立新.基于Hadoop的网络日志分析系统研究[J].电脑知识与技术,2010(22):6163-6164,6185.

[3]程苗,陈华平.基于Hadoop的Web日志挖掘[J].计算机工程,2011(11):37-39.

[4]Yang F Y,Liu H Ch. Research in HDFS based on Campus Network Environment[C]//Processing of 2011 International Conference on Image Analysis and Signal Processing. WuHan,China,2011:648-652.

[5]Lou J G, Fu Q,Wang Y, et al.Mining dependency in distribute system through unstructured logs analysis[J].Operating Systems Review (ACM),2010,44(1):91-96.

[6]刘永增,张晓景,李先毅.基于Hadoop/Hive的Web日志分析系统的设计[J].广西大学学报(自然科学版),2011(S1):314-317.

基于hadoop分析实现 篇4

Hadoop是什么

Hadoop是一个由Apache基金会所开发的分布式系统基础架构。

用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。

Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了(relax)POSIX的要求,可以以流的形式访问(streaming access)文件系统中的数据。

Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,则MapReduce为海量的数据提供了计算。

Hadoop优点

Hadoop是一个能够对大量数据进行分布式处理的软件框架。 Hadoop 以一种可靠、高效、可伸缩的方式进行数据处理。

Hadoop 是可靠的,因为它假设计算元素和存储会失败,因此它维护多个工作数据副本,确保能够针对失败的节点重新分布处理。

Hadoop 是高效的,因为它以并行的方式工作,通过并行处理加快处理速度。

Hadoop 还是可伸缩的,能够处理 PB 级数据。

此外,Hadoop 依赖于社区服务,因此它的成本比较低,任何人都可以使用。

Hadoop是一个能够让用户轻松架构和使用的分布式计算平台。用户可以轻松地在Hadoop上开发和运行处理海量数据的应用程序。它主要有以下几个优点:

高可靠性。Hadoop按位存储和处理数据的能力值得人们信赖。

高扩展性。Hadoop是在可用的计算机集簇间分配数据并完成计算任务的,这些集簇可以方便地扩展到数以千计的节点中。

高效性。Hadoop能够在节点之间动态地移动数据,并保证各个节点的动态平衡,因此处理速度非常快。

高容错性。Hadoop能够自动保存数据的多个副本,并且能够自动将失败的任务重新分配。

低成本。与一体机、商用数据仓库以及QlikView、Yonghong Z-Suite等数据集市相比,hadoop是开源的,项目的软件成本因此会大大降低。

Hadoop带有用Java语言编写的框架,因此运行在 Linux 生产平台上是非常理想的。Hadoop 上的应用程序也可以使用其他语言编写,比如 C++。

hadoop大数据处理的意义

基于hadoop分析实现 篇5

关键词:Hadoopp,HDFS,网盘,云计算

随着计算机在高校教学中的普及, 各种文档、数据、程序等数字化文件成为了高校学生非常重要的学习资料和学习成果, 大到毕业设计文档、毕业设计项目, 小到课程PPT、作业, 涵盖了学生学习生活的各个方面, 如何安全、高效的存储这些文件就变得非常重要。因此, 以“云计算”架构Hadoop为基础, 依托校园网环境, 设计并实现校园网盘, 就成为了一种可行之道。

1 方案论证

1.1 技术可行性

由Hadoop HDFS为网盘提供高可用, 分布式的存储架构支撑。HDFS (Hadoop Distributed File System) 是Hadoop项目的核心子项目, 是分布式计算中数据存储管理的基础, 是基于流数据模式访问和处理超大文件的需求而开发的, 可以运行于廉价的商用服务器上。其具有的高容错、高可靠性、高可扩展性、高获得性、高吞吐率等特征为海量数据提供了不怕故障的存储, 为超大数据集 (Large Data Set) 的应用处理带来了很多便利。

1.2 操作可行性

基于HDFS的分布式存储相关研究, 主要包括HDFS集群中小文件处理, 副本存放策略和机架感知以及Name Node备份恢复机制和拓展机制。HDFS集群中小文件处理包括三种方案, 分别是Hadoop Archive, Sequence File和Combine File Inputormat。副本存放策略和机架感知能够让Name Node获取Data Node的网络拓扑图, 然后根据Data N-ode之间的关系来确定副本存放的位置, 保证数据可靠性的同时兼顾了数据传输速率。Name Node备份恢复机制通过定期对Name Node中元数据信息备份合并形成新的检查点checkpoint保证Name Node元数据的安全。如果Name Node出现宕机故障, 可以节省Name Node重启时间, 甚至恢复丢失的数据。HDFS的可拓展性体现在动态新增Data Node, 能够满足大规模数据增长的需求。

2 系统架构设计与实现

2.1 系统结构设计

系统主要由四部分构成, 分别是用户层, 系统管理层, 数据存储层和基础设施层, (1) 用户层:用户通过Web App服务器发送Ajax请求, 服务器响应相应的json数据到浏览器, 前端通过Angular JS框架调用响应功能REST接口返回数据, 最后通过Angular JS双向数据绑定自动完成对页面数据进行渲染。 (2) 系统管理层:负责应用程序与底层数据操作连接, 采用JFinal MVC框架对大量文件, 用户操作封装为REST接口, 提供前端Web页面的接口的数据返回, 把用户需要的数据结果以json格式传回客户端。主要提供用户管理, 目录管理, 文件管理等服务。 (3) 存储数据层:Hadoop集群工作在这一层, 由HDFS, Jetty构成, HDFS提供分布式存储支撑, 一个Name Node存储文件的元数据, 多个Data N-ode为文件提供存储实现, Jetty服务器提供外部REST接口调用功能。同时这一层也大量封装了对HDFS的操作。 (4) 基础设施层:即搭载Linux系统的硬件基础设施, 主要包括磁盘, 服务器等。

2.2 系统功能实现

本系统旨在一个在校大学校的一个存储服务。系统设计包括用户文件管理模块和管理员模块。用户文件管理模块:为在校师生提供用户登陆, 文件上传, 下载, 删除, 重命名, 目录查看, 创建等功能。管理员模块:主要提供用户管理 (添加, 删除) , 文件管理。

2.3 关键技术实现

系统在实现过程中, 主要实现了对文件的上传, 下载。浏览器通过调取REST接口, Controller通过调用相应的Service来返回相应的数据, Service调用DAO, 而DAO的核心代码都是通过HDFS的相应API来完成的。

上传功能的核心代码:

3 结束语

HDFS作为一种分布式文件系统, 有着高容错性的特点, 设计用来部署在低廉的硬件上, 而且它提供高吞吐量来访问应用程序的数据, 适合那些有着超大数据集的应用程序。HDFS放宽了POSIX的要求可以实现流的形式访问文件系统中的数据。为了保证开发速度与系统的可维护性, 选用JFinal来当做Web开发的MVC框架, 同时这个框架的学习成本也比较低, 轻量级, 易拓展。

参考文献

[1]文艾, 王磊.高可用性的HDFS:Hadoop分布式文件系统深度实践[M].北京:清华大学出版社, 2012, 5.

[2]蔡斌, 陈湘萍, 董西成.Hadoop技术内幕[M].北京:机械工业出版社, 2010:10-200.

基于hadoop分析实现 篇6

关键词:Hadoop;MapReduce;聚类;Canopy-Kmeans算法

中图分类号:TP391.1

Hadoop[1]是一种开源式的分布式平台,由它的分布式文件系统(HDFS)和MapReduce编程模型组成,这是Hadoop的核心。Kmeans算法[2]是被广泛使用的经典的聚类算法之一,思想简单,收敛速度快,而且易于实现,但是要先确立初始聚类中心,容易受主观因素的影响而造成聚类结果的局部最优。为解决该问题,本文引入Canopy对算法初始中心点的选取进行优化处理。

1 MapReduce并行编程模型

MapReduce是现在各种云计算平台的基础模型。此模型的核心是Map和Reduce函数,他们都可以高度并行运行。Map函数可以处理多组数据,把一对Key\Value对映射成新的Key\Value对,Reduce的输入数据为Map函数的输出数据。由并发Reduce函数来确保所有映射Key\Value对中的每组都有相等的Key键值[3]。MapReduce的运行机制是将大数据集分解成为许多小数据集splits,每个数据集分别由集群中的一个节点执行Map过程并生成中间结果。接着这些中间结果被大批的并行执行的 Reduce过程做相应的处理,从而产生最终结果,输出给用户[4]。

2 Canopy-Kmeans算法

2.1 算法的思想

Canopy-Kmeans算法采用Canopy进行初始聚类中心点的优化。数据子集分别分布在集群中的各个不同的站点。在Map阶段引用Canopy算法迅速地产生多个局部Canopy中心,各站点传来的局部Canopy中心在Reduce阶段被再次利用 Canopy算法得到全局的canopy中心集合。与Map阶段不同的是可對阈值t1、t2(t1>t2)进行重置。意思是Reduce阶段的阈值可与Map阶段的不同,以便能得到下步Kmeans所需的k个初始聚类中心。

2.2 基于MapReduce的Canopy-Kmeans算法

在基于Hadoop的并行Kmeans算法的基础上,本文使用Canopy算法对Kmeans 算法进行优化。Canopy-Kmeans算法包括两部分:Canopy生成中心点算法和Kmeans算法。Canopy中心点的生成过程包括Map和Reduce函数。算法实现需四个阶段,分别用四个Job实现。如图1所示。Job1生成k个canopy中心。Job2借助Job1阶段的k个canopy中心点来生成k个相互重叠的canopy。Job3对处于同一canopy内的数据集进行K-means聚类。通过多次的迭代,生成稳定的Kmeans聚类中心。最后,Job4使用稳定的Kmeans聚类中心点开始聚类。直到输出最终结果。

图1 Canopy-Kmeans 实现流程

3 算法时间复杂度分析

传统的Kmeans算法的时间复杂度为O(nck)。其中n为数据对象数量,c为迭代次数,k为类数量。该文引入Canopy聚类,产生k个canopy,每一个数据对象有可能同时属于q(q≤k)个canopy。当集群数量为p时,可知算法的时间复杂度为O(ncq2k/p)。可以看出该算法的时间复杂度与传统的Kmeans时间复杂度相比明显降低了。

4 实验与结果分析

4.1 数据集和实验环境

实验数据是从UCI机器学习库中选取的部分数据集,如表1所示。这些标准数据集用以准确度量本文算法的聚类效果。

表1 实验数据集

数据集样本数属性数类别数

Synthetic_Control600606

Segmentation2310187

Waveform-405000403

Hadoop为开发平台,运用MapReduce编程框架完成实验。本实验是在5台VMWare平台下的虚拟机搭建成的Hadoop集群环境中完成,实验由5台PC机构成,其中一台作为主节点,剩余四台作为从节点。

4.2 实验结果及分析

将本文算法与MapReduce框架下的Kmeans聚类(算法a)、Weka环境下的串行Kmeans聚类(算法b)做比较。实验结果如表2所示。实验结果表明,算法a、b的正确率和误差平方和相对接近,可以看出该算法的聚类效果明显更好。

表2 实验结果

数据集算法a算法b本文算法

正确率/(%)误差平方和迭代时间/ms正确率/(%)误差平方和迭代时间/ms正确率/(%)误差平方和Canopy聚类时间/ms迭代时间/ms

Synthetic_Control66.9600.0719154364.8604.651094871.35533.5418945173475

Segmentation56.70606.0720376254.9607.201169365.21390.6519715145665

Waveform-4061.83530.3299855759.1540.741094669.36490.9794810564431

从算法的迭代时间来看,算法a的迭代时间比本文算法的迭代时间要长。这说明本文在引进Canopy聚类后。大大减少了每次迭代中的计算量,降低了运行时间。

5 结束语

针对大规模数据聚类的问题。本文提出了基于Map Reduce的并行化Canopy-Kmeans算法。对Kmeans聚类算法的优化确实避免了传统Kmeans算法的缺陷,明显降低时间复杂度,减少了计算量,提高聚类效率。MapReduce是目前主流的并行编程模型,但该模型本身存在一些局限性。最新的并行计算框架Prlter,Spark等对MapReduce进行了改进,怎么在最新的并行计算框架上对算法进行并行化设计和实现需要做进一步的实践。

参考文献:

[1]陆嘉恒.Hadoop实战[M].北京:机械工业出版社,2012.

[2]李应安.基于MapReduce聚类算法的并行化研究[D].中山大学,2010.

[3]张石磊,武装.一种基于Hadoop云计算平台的聚类算法优化的研究[J].计算机科学,2012(10):114-118.

[4]赖玉霞,刘建平.K-means算法的初始聚类中心的优化[J].计算机工程应用,2008(10):147-149.

作者简介:崔莉霞(1989-),女,甘肃会宁人,硕士研究生,主要研究方向:数据挖掘、并行分布式计算。

基于hadoop分析实现 篇7

传统微博系统多以关系型数据库进行数据的存储和读取, 关系复杂且查询读取效率低下, 已不能满足微博系统日益增长的数据管理需求。关系型数据库最致命的问题在于其自身的扩展性差、延迟高、中心化强和监控性差。由此可见, 中心化存储和管理数据已经成为微博系统的瓶颈。本系统采用Hadoop框架进行分布式云存储, 并使用非关系型数据库Hbase来使数据的存储不再依托于数据之间的关系联系。

Hadoop的核心框架设计是:HDFS、Map Reduce。HDFS为数据提供了存储介质, 而Map Reduce为数据提供了数据计算操作。

基于以上分析, 在实验室环境内搭建一个基于普通PC平台的Hadoop集群, 并基于该集群设计并搭建Hbase数据库实现一套微博系统的后台云存储系统。系统具有存储压力测试和均衡能力;客户能够通过Hbase对数据进行相应的操作。

Hadoop分布式计算平台具有如下的优点:高可靠性;高扩展性;高效性;高容错性;低成本。

1 实验平台搭建过程及开发环境设置

本文Hadoop集群的搭建采用的版本为----, 搭建采用3台PC机进行, 其中一个作为Name Node节点, 另外两个作为Data Node节点, 系统的整体框架如图1所示。Web用户通过浏览器使用本微博系统, 设置一台Web服务器与Internet连接。

1.1 Hadoop集群的搭建

步骤一:安装软件VMware Workstation, 然后安装Rad Hat Linux 5, 使用jdk-6u27-linux-i586.bin安装java。

步骤二:准备三台主机, 其配置如表1.1所示。

步骤三:配置Java运行环境, 进入/etc目录下, 配置文件如下:

步骤四:配置Hadoop集群文件配置

(1) 使用hadoop1.0.3.tar.gz安装hadoop

(2) Hadoop各脚本和文件的配置, 包括配置Java运行环境的hadoop-env.sh, masters, slaves, core-site.xml, hdfs-site.xml和mapred-site.xml文件。

向hadoop-env.sh文件中写入“export JAVA_HOME=/usr/jdk1.6.0_27”, 作用是配置hadoop的运行环境java。向masters和slaves分别写入“hadoopmain”和“hadoopslave1 hadoopslave2”, 作用是设置hadoop的主从节点。

编辑core-site.xml如下, 作用是设置hadoop的入口和创建tmp目录

步骤五:启动Hadoop

格式化namenode, 用如下命令:

$./bin/hadoopnamenode-format

启动hadoop的守护进程, 用如下命令:

$./bin/start-all.sh

在namenode节点上使用该命令:$jps

会显示四个进程, 分别是:Jps、Name Node、Jobtracker、Secondary Name Node

在datanode节点上使用该命令, 会显示三个进程, 分别是:Jps、Dame Node、Tasktracker。

1.2 Hbase的设置

步骤一:使用hbase-0.94.27.tar.gz安装hbase

步骤二:使用已配置好hadoop的3台主机hbase, 配置如表1.2所示:

步骤三:修改hbase-env.sh, hbase-site.xml, regionservers这三个配置文件如下:

编辑hbase-env.sh如下, 作用是设置hbase的java和hadoop环境和设置默认zookeeper

步骤四:启动hbase守护进程, 用命令:

./start-hbase.sh

在namenode节点上使用该命令:$jps, 会显示一个进程, 是HMaster

在datanode节点上使用该命令:$jps, 会显示两个进程, 是HQuorum Peer, HRegion Server

1.3 微博系统Hbase表设计

1.4 开发环境设置

硬件平台:CPU:AMD Athlon (tm) II Dual-Core M3202.10GHz;内存:2G;硬盘空间:50GB;软件平台:操作系统:Linux-Red Hat5;数据库:Hbase;开发环境:Java;开发工具:Eclipes;开发语言:Jsp, Java;

2 微博系统的设计与实现

2.1 系统功能模块设计

微博系统是为了方便人们的生活心情的分享与交流而诞生的一种功能系统, 本系统又是针对普通微博系统进行数据管理升级的微博系统。系统功能模块含有:用户注册模块、用户登录模块、用户信息管理模块, 微博信息管理模块、系统信息管理模块、系统设置模块、好友关注模块、用户管理模块。其中, 用户登录模块实现对使用用户的验证, 只有进行登录的用户才能进入到微博系统的主界面并体验系统的内容。系统的前台界面端采用网页编码语言Jsp进行纯代码网页制作, 后台采用Hbase非关系型数据库进行数据交互以及保存, 前、后台功能图见图2.1、图2.2。

2.2 类Twitter风格的实现

本微博系统实现的是类Twitter的风格的系统。采用Twitter推出的一个开源的用于前端开发的工具包Bootstrap, 它是一个CSS/HTML框架。可以兼容大部分j Query插件和包含了丰富的Web组件。

2.3 子模块设计

2.3.1 用户身份验证模块

创建微博系统的注册界面, 在该页面中, 用户需要输入自己的希望的用户名、输入自己的账号密码, 并进行密码验证, 前后输入密码一样的情况下点击注册即可注册, 但是会判断用户名是否存在, 存在的话即进行提示, 当系统注册运行时, 界面如图2.3所示。

2.3.2 用户微博发布模块

在用户的主页面中, 拟定在上图的左上部空缺部位添加一个输入框进行用户的微博发送功能, 当用户输入内容后, 点击“发送微博”按钮后, 系统会将输入框内的内容进行发送, 并将数据存入对应的数据表中进行保存, 以便每次切换用户时的数据检索更新。发送微博功能加入后, 页面如图2.4所示。

2.4 负载均衡

HBase的Region Server的负载均衡采用的策略是新增数据时, 对key值进行Hash计算, 用计算得到的Hash值对RegionServer数进行取余运算, 即Hash (key) %Region Server数, 根据余数的不同将新增数据插入到不同的Region Server中, 避免了对同一台Server的集中读写, 实现了负载均衡。

3 结论

本文完成了在Hadoop平台下的微博系统, 系统采用类Twiiter风格实现, 功能实现了典型的微博系统的所有功能, 解决了传统微博系统海量数据存储问题及访问效率问题, 实现了负载均衡, 为在大数据平台下开发与实现基于Web的内容管理系统探索出一条新的途径和方法。

《福建电脑》投稿须知

《福建电脑》 (国际标准刊号:ISSN 1673-2782;国内统一刊号CN 35-1115/TP) 是福建省计算机学会主办、福建省科技厅主管的计算机学科综合月刊。欢迎投稿:

1.编辑部收到作者稿件后, 5个工作日内返馈初审意见 (电子邮件) 。

2.编辑部投稿信箱:fjdnbjb@vip.163.com联系电话:0591-87814718工作QQ:2661504015

摘要:针对现如今大多数的微博系统数据扩展能力差, 查询效率底, 存储资源的浪费等缺点, 本系统以Apache Hadoop为数据存储平台, Hbase数据库提供后台数据的非关系型数据存储, 实现系统的负载均衡。从而实现一款类Twiter微博系统。此外, 本系统界面操作方面采用Bootstrap工具包, 使系统的操作简便, 操作步骤简单、内容的查看更高效。

基于hadoop分析实现 篇8

质检机构承担着社会的质量监督检验、体系认证、标准化、计量校准等, 随着质检信息化的不断发展, 质检机构产生的质量检验数据是非常庞大的。传统的数据库架构存储由于可扩展能力不强、成本较高等方面的限制, 无法满足海量数据管理的需求, 海量的历史数据的价值无法得到有效利用。

在海量数据的存储与处理方面, 技术发展非常迅速。谷歌、亚马逊、IBM和微软等公司都在此领域投入了大量的科研力量, 提出了多种创新的海量数据管理技术。Hadoop是Apache基金提供的开源的分布式系统基础架构, 利用集群实现大规模的并行运算和存储, 广泛应用于海量数据存储与分析处理领域[1,2,3]。例如, Yahoo、Face Book、淘宝、Amazon等互联网公司已采用Hadoop进行大数据的存储与分析应用。Hadoop主要由HDFS分布式文件系统[4,5]和MapReduce[6,7]并行编程模型组成, 其主要优势包括可扩展性、经济性、高效性以及可靠性好等。本文基于Hadoop分布式系统架构设计实现了对质检大数据的分析应用, 能够较好地满足质检大数据存储与管理的要求。

1 Hadoop相关介绍

Hadoop是一种以可靠、高效、可伸缩的方式进行分布式处理大量数据的软件框架。Hadoop最核心的是MapReduce分布式数据处理模式和HDFS (Hadoop Distributed File System) 分布式文件系统。

最底层的是HDFS, 它将文件分布存储到多个独立的计算机节点上, 并以流式数据来访问存储的超大文件, 具有高度容错性, 非常适合大规模数据集上的应用。HDFS将一个文件分割成一个或多个块存储在一组数据节点 (Data Node) 中。数据节点是负责响应客户的操作请求, 执行数据块的读写。名称节点 (Namenode) 管理文件系统的命名空间以及客户端对文件的访问。它维护整个文件系统树及树内所有文件和索引目录, 同时记录着块与数据节点的映射关系。如图1所示。

MapReduce框架负责处理大数据的分布式计算、工作调度、负载均衡、容错均衡、容错处理以及网络通信等复杂问题。它的原理是将一个任务的输入数据分割成M个Split任务子数据集, 然后服务器控制节点 (Master) 将Split分配到不同的服务器工作节点 (Worker) 上启动M个Map程序并行处理这些分割数据, 经过排序 (shuffle and sort) 、分区 (partition) 、合并 (combine) , 最后通过启动N个Reduce将分布处理好的数据汇总整合成最终的计算结果。因此一个复杂计算的任务可以分解成许多小的数据集, 被分配到计算机集群中均衡的并行处理, 通过集群工作节点的扩展可以更快、更高效地处理大数据的计算。具体的处理流程如下。

(1) 运行程序向服务器控制节点 (Master) 提交一个新的任务, MapReduce使用指定的Input Format将输入数据做拆分, 形成M个Split任务子数据集, 每个Split被分割形成值键对, 然后将任务子数据集保存到HDFS中。

(2) 服务器控制节点 (Master) 根据调度算法为服务器工作节点 (Worker) 分配任务子数据集Split, 通常优先分配与Split-网络位置 (Location) 最接近的工作节点。

(3) 服务器工作节点 (Worker) 从HDFS中读取分配的Split-, 调用Map方法进行处理, 生成新的值键对。为了效率Map处理结果首先保存在内存中缓存区, 并进行预排序、分区, 将相同key键的数据归在一个分区中 (如指定了combiner则将根据key对数据进行优化合并) 。每当缓存内容达到指定大小后, 结果将被溢写 (spill) 到本地磁盘中生成一个新的spill文件。最后所有溢写文件将合并成一个已分区且已排序的输出文件。

(4) 服务器工作节点 (Worker) 为分区文件启动N个Reduce任务, 并为每个Reduce指定分区。

(5) Reduce根据任务分区锁定集群中的若干个Map, 通过http从这些Map端得到的分区数据, 首先按key健进行排序, 然后将相同key键的数据进行合并成组, 再交由用户自定义的reduce方法进行处理, 得到新的值键对, 并作为最后输出结果写入HDFS。

(6) 当所有Map子任务和Reduce子任务完成后, 用户程序将所有Reduce结果合并得到最终结果。

MapReduce编写的应用程序能够运行在由上千个商用机器组成的大型集群上, 并以一种可靠容错的方式并行处理上T级别的数据集。MapReduce编程模型的运行机制如图2所示。

2 基于Hadoop的质检大数据分析的架构设计

质检大数据分析的整体架构设计如图3所示。质检数据通过分布的业务服务器采集后, 汇总写入HDFS分布式文件系统中。从HDSF中读取质检数据, 经过MapReduce并行分布式计算得到输出结果写入Hbase分布式数据库中。客户端数据分析展现通过Hive查询Hbase数据库返回结果。Zookeeper服务集群负责分布式应用协调配置。

整个框架中其中最核心的设计就是:MapReduce的设计, 将在下面详细介绍。HBase、Zookee per、Hive都是Hadoop框架的子项目[8,9,10]。Hbase是构建在HDFS上的分布式、面向列的非关系型数据库, 类似于Google的Big Table系统, 适合非结构化数据存储的数据库;Zookeeper是支撑分布式应用的协同工作系统;Hive是基于Hadoop的一个数据仓库工具, 提供Hive QL语句 (类似SQL) 管理HDFS数据。

3 基于Hadoop的质检分析应用设计

根据ISO17025实验室认可服务的国际标准要求, 质检数据的业务系统采集, 经历了业务登记、业务检测、报告编制、报告审核、报告签发、发告发放等阶段。最后质检数据经过验证和转换形成一些空格分隔的文本文件。包含记录号、企业名称、检测产品、检测项目、单项指标、单项判定、综合判定等。原始的质检数据采集如表1所示。

根据要分析的目标设计MapReduce, 假设以产品为目标, 那么设计一组MapReduce的核心代码设计如下:

Map输出结果, 如表2所示。

Reduce输出结果, 如表3所示。

同样如果以企业为分析目标, 可以得到Reduce输出结果, 如表4所示。

可以在此输出的结果来进一步划分相同单项指标的不同产品类别的统计数。最后所有分析的数据文件将被发送到服务器上供管理人员决策使用, 以起到预防和预警的作用。当然如果需要, 可以在reduce阶段结合数据分析与数据挖掘的算法, 进行计算得到分析结果。

4 结束语

质检部门在社会生产的运行与管理中居于重要的地位。本文提出通过Hadoop集群架构的分布式应用来处理质检的大数据, 针对质检数据的特点给出设计MapReduce主要开发代码, 将数据分布到不同节点上计算, 提高了质检数据利用的效率。通过对海量质检数据的分析计算, 挖掘出有实用价值的产品检测信息, 为管理部门提供了预警, 变事后监督为事前预防, 能够在一定程度上规避风险。通过质检部门的检测数据的有效利用能更好地规范企业的生产, 保护好人民的健康安全, 因此本设计具有很好的推广应用价值。

参考文献

[1]Hadoop[EB/OL]. (2011-1l-19) .http://hadoop.apache.org.

[2]Qiu Zhi, Lin Zhao-wen, Ma Yan.Research of Hadoop based data flow management system[J].The Journal of China Universities of Posts and Telecommunications, 2011, 18 (2) :164-168.

[3]Ye Xiang-long, Huang Meng-xing, Zhu Dong-hai, et a1.A novel blocks placement strategy for Hadoop[C]//Proceedings of the 11th International Conference on Computer and Information Science.Washington D C:IEEE, 2012:3-7.

[4]HDFS design[EB/OL]. (2013-08-28) .http://hadoop.apache.org/docs/r2.0.6-alpha/hadoop-project-dist/hadoop-hdfs/HdfsDesign.html.

[5]Ghemawat S, Gogioff H, Leung P T.The google file system[C]//Proceedings of the 19th ACM Symposium on Operating Systems Principles.New York:ACM, 2003:29-43.

[6]Dean J, Ghemawat S.MapReduce:Simplifled Data Processing On Large Clusters[J].Communications of the ACM, 2008, 5l (1) :107-113.

[7]Lammel R.Google’S MapReduce programming model-Revisited[J].Science Computer Program, 2008, 70 (1) :1-30.

[8]White T.Hadoop:The Definitive Guide[M].O’Reillly Media, Inc., 2009.176-180.

[9]Hive Architecture[EB/OL].http://Hive.apache.org, 2009.

上一篇:侯以雷优秀诗歌欣赏下一篇:葡萄酒的运作模式