Hadoop平台数据挖掘(精选9篇)
Hadoop平台数据挖掘 篇1
1 Hadoop 的概述
Hadoop平台采用的是并行计算、分布式存储结构的数据计算系统,它采用成本较低的PC设备组建了大型集群,进而构成了一个用于处理海量数据的分布式计算系统。Hadoop平台的源代码是开放式的,这种体系结构便于系统的二次开发,以此来满足某一特定群体的特殊要求。Hadoop系统只需要投入较低的成本就可以处理高容量的数据,Hadoop具有良好的性能被广泛应用于各种领域。Hadoop具有良好的扩展性能,Hadoop系统的各个节点上均被扩展了数据挖掘系统中所需要的功能模块,Hadoop系统可以利用集群对数据进行数据存储、并行计算,从海量数据中挖掘隐含的、新颖的、对决策实施工作有指导价值的关系、模型,在Hadoop平台上构建数据挖掘系统。Hadoop集Map Reduce、HDFS、HBase、Avro、Pig等子项目于一身,并行编程模型(Map Reduce)、分布式文件系统(HDFS)是Hadoop的核心技术。用户可以通过结合编程模型Map Reduce与Hadoop的方式对分布式程序进行进行二次开发。HDFS系统主要用来存储文件,采用的是分布式的存储方式,HDFS系统具有较高的容错性能,使文件的读写速度得到了提高,而且扩大了系统的存储容量。
2 Hadoop Map Reduce编程模型的介绍
Map Reduce编程模型是Hadoop的重要组成部分,它是一款简单的编程模型,可以用于海量数据的计算处理。本文主要从以下几部分介绍了Map Rduce编程模型。
1.Map Reduce的执行流程。Map Reduce是由Google公司开发研制的一种用于大规模数据集并行运算的分布式计算模型,将其用于处理大规模的海量数据。Hadoop程序的主要工作逻辑都包含在Map Reduce数据模型 中。Map Reduce具有容错性好、编程简单、易于扩展等 . 特点,使集群上的海量数据并行处理实现得到了极大地简化。Map Reduce计算模型借鉴于函数式编程语言的思想、特性,主要由Map和Reduce两个函数组成。在Map Reduce分布式数据处理模型中,数据处理的流程主要分为Map、Reduce两个阶段。(1)Map阶段。Map阶段主要负责完成映射分解的工作。当有数据输入时,将输入的数据分解成若干个小数据集合,这些小数据集合中的数据由集群中的各个节点分别处理,并在对应节点位置生成中间结果。(2)Reduce阶段。Reduce阶段主要负责化简归约的工作。Reduce阶段将Map阶段存放在集群中每个节点的中间结果按照一定的业务逻辑进行数据合并,并将其归约结果传送给最终用户。
2.Map Reduce分布式数据处理模型的构成。在Map Reduce分布式数据计算模型中包括以下几部分内容 :(1)Job :Job是一次分布式过程所需要完成的工作内容。(2)Task :Task是由一个Job派生出来的多个子任务单元,在Map Reduce中包括以下两种 :Map Task和Reduce Task,分别用于 执行Map和Reduce两个阶段。(3)Job Tracker :Job Tracker主要负责监 控并调度Job中的各个Task运行于哪个Task Tracker上,当发现失败的Task,Job Tracker会下达命令使系统重新运行。Job Tracker是一个Master服务,它负责控制各个节点,一般部署在单独的机器上。(4)Task Tracker :Task Tracker主要负责与Job Tracker的通讯工作,接收并执行每个Task。Task Tracker是一个或多个Slaver服务,一般部署在多个机器上。(5)Job Client :通过用户端的Job Client类将各个Job的应用程序及配置参数打包成jar文件,并将打包的文件存储于HDFS,将路径提交到Job Tracker中,等待Job Tracker派生子任务,接收到Job Tracker派生子任务后由Task Tracker执行。
3.Map Reduce数据处理模型的模块划分。Map Reduce分布式数据处理模型由如下几个模块组成 :(1)Input模块 :Input模块主要负责将输入的海量数据划分成小数据块,小数据块主要包括16MB、128MB两种,并将这些小数据块传输至Map模块中。(2)Map模块 :通过Map模块处理后,将产生一个或多个
3 HDFS系统的介绍
HDFS系统主要用来存储文件,它是Hadoop平台的主要存储系统,采用的是分布式的存储方式,HDFS系统具有较高的容错性能,而且数据的吞吐容量很大,使文件的读写速度得到了提高,而且扩大了系统的存储容量。分布式文件系统HDFS有效地解决了海量数据的存储与管理问题,HDFS存储了大量的用户数据,可以为其他子模块提供必要的服务。HDFS系统是由 主要由Name Node、Secondary Name Node、Data Node、Client几部分构成。Name Node为控制节点,每个集群包 含一个Name Node,它主要负责管理文件的数据源、保持与Data Node同步等工 作 ;Secondary Name Node会定时对Name Node的节点进 行备份,即使Name Node出现了问 题 ;通过Secondary Name Node可以将集群切换到出现问题的节点进而维持集群的正常运行 ;在工作节点Data Node中以分块形式存储了用户的相关数据,采用这种存储方式使数据的交流更为快捷、安全 ;集群之间通过Client进行数据交互,以此来读取、写入文件内容。
4基于Hadoop平台的数据挖掘技术
基于Hadoop平台的数据挖掘系统采用的是自上而下的分层思想,系统的上层可以调用下层子系统。根绝实际需求对系统进行分层设计,系统的各个层之间是相互独立的,他们之间通过调用进行数据通信,这种分层设计系统具有较好的扩展性能。基于Hadoop平台的数据挖掘系统主要由以下几部分构成 :(1) 交互层 :系统的交互层主要负责系统与用户之间的信息通信,是二者之间的通信接口。交互层会为用户提供形象的图像界面,这个图形界面具有良好的表现形式,用户通过登陆界面系统可以办理相关业务,还可以查看、保存输出结果。交互层主要由业务模块、用户管理模块、展示模块三大模块组成。(2)业务应用层 :业务应用层主要负责处理、调度和控制用户层提交的业务。业务应用层通过调用数据挖掘算法层的功能模块来调度和控制用户层提交的业务。(3) 数据挖掘层 :数据挖掘层是系统的核心,该层以并行方式来实现任务过程中的算法,而且数据挖掘层会将任务提交给Hadoop分布计算层进行运算,将最终结果返回到业务应用层中去。
Hadoop降低数据分析门槛 篇2
“过去我们只有在企业中、在工作状态中才会产生数据,而在云计算、社交媒体和移动计算高度普及的今天,我们几乎24小时在生产数据,从而迎来了大数据时代。这就使得企业在数据的处理上面临相当大的压力。”Informatica高级副总裁兼首席信息官托尼·杨在日前举行的“2012 Informatica 全球巡展(北京站)”上表示。作为一家以数据集成为主要业务的公司CIO,托尼·杨对于数据的爆炸性增长有着更为直接的体会。
托尼·杨认为,大数据时代建立在传统的基于数据仓库之上的数据分析处理方法面临着很大局限性,至少从性价比(数据的价值/数据的成本)上来看。一方面,数据仓库的建设不管是软硬件的购置还是数据的准备都涉及很大的投入;而另一方面,数据仓库的部署以及随后的数据建模及其分析都需要专业人士的参与。另外,过去的数据分析方法都是面向传统的结构化数据,而对非结构化数据的处理并不擅长。这也正是Hadoop广受欢迎的主要原因之一。
“Hadoop的出现将大幅降低数据分析和处理的门槛,提高数据的回报率。”Informatica核心技术部资深产品管理总监郑玮表示。
在郑玮看来,Hadoop可以从两个方面降低数据处理和分析的成本。其一,Hadoop是开源软件,尽管并不意味着免费,但和商业软件相比,其采购成本要低得多;其二,Hadoop是为普通的硬件设备而设计,本身已经充分考虑到这些硬件的不可靠性,而不是专用硬件,这就大幅降低了硬件投入成本。不过,在郑玮看来,Hadoop的最大价值在于它让我们可以以一种全新的、高回报率的方式来创新性地处理数据。比如,很多电子商务网站利用它来分析访客的行为,从而做出更科学的营销策略,一些半导体企业利用它来帮助分析产品缺陷。而为了帮助企业用好Hadoop,Informatica在其最新的产品Informatica 9.5中特别新增了一些功能模块,包括帮助企业把数据转载入Hadoop、探查Hadoop中数据的质量以及把数据从Hadoop中导入数据仓库中等。
“降低数据的成本,同时提高数据的价值,另外,即使你是一个小企业,也可以用好大数据,这就是Hadoop的最大价值。”郑玮表示。
Hadoop平台数据挖掘 篇3
关键词:数据挖掘,Hadoop体系,参数配置,map/reduce程序,海量数据
1 前言
海量数据有Internet Web数据、 视频图像、 企业数据、 公共服务管理数据、 医学图像数据。 数据挖掘实际是创新的技术, 最令人感兴趣的是在基因技术中发现DNA子序列。 海量数据挖掘不仅能发现所需的知识为决策服务, 数据分析还能发现模式和规律; 而且在海量数据存储在分布式系统的新阶段, 数据挖掘技术也升级为分布式数据挖掘。 云计算的Iaa S能解决海量数据挖掘的底层系统设施问题, 谷歌的GAE, 雅虎的YAP, IBM的 “蓝云”, 亚马逊的AWS, 微软的Azure都是云计算产品和服务系统。 Hadoop是开源项目Nutch的子项目, Apache基金会开发的分布式计算平台。 基于Hadoop云计算系统的复杂数据挖掘技术, 可实现不同领域的应用, 生物信息学、 商业数据分析、 汽车计算机辅助制造等, 获得了良好的商业价值。 中国移动基于云计算的数据挖掘服务系统WPDminer, 立足提供下一代互联网服务。 中国电信也参加了全球云计算测试平台Open Cirrus[1]。
分布式数据挖掘优化管理存储在不同地理位置的海量数据, 而且采用数据一次写入、 多次读取的方法。 Hadoop云计算有3 大主要系统: 文件系统HDFS、 分布式编程模式Map/Reduce和分布式数据库Hbase; 包括10 个组件, 分布在上百个网络结点或上千个PC机组成的集群中。 整合不同Hadoop系统的云计算资源, 则可实现第三代互联网技术[2]。
2 Hadoop体系的参数配置和运行系统设置
布署Hadoop集群系统有4 个步骤:计算机系统安装和网络构建, SSH认证, Hadoop参数配置, 部署和运行。
2.1 系统硬件、软件和网络参数配置
Hadoop实验系统包括主结点master和数据结点, 称为主从节点式系统。 建立集群, 实验系统有4 个节点, 一个命名节点Namenode和3 个数据节点datanode。 硬件系统配置:CPU:intel Pentium Dual-Core3.20GHZ, 内存4G, 硬盘400G。
2.1.1 局域网IP地址配置
如表1 所示。
2.1.2 /etc/hosts文件配置
集群master节点作为命名节点, /etc/hosts文件中包括所有数据节点的内容。 而Datanode节点的/etc/hosts文件配置包括此数据节点, 以Hadoop2 为例, 如表2 所示。
2.1.3 软件配置
操作系统: linux 6.0, Hadoop版本: Hadoop 0.20.0, SSH client/Server: Hadoop运行要求SSH的设置必须准确。 此外, 还包括JDK 1.6.0 和Eclipse 7.5 Linux。
2.1.4 文件系统设置
集群中所有节点的文件系统部署相同, 用户名使用Hadoop, 目录名/home/Hadoop/Hadoop-0.20.0。
2.2 SSH设置
首先, Namenode Hadoop通过SSH无密码公钥方式启动Hadoop1~Hadoop3 上的守护进程。 然后用Hadoop的命令生成密码对, 有一个私钥id_rsa和一个公钥id_rsa.pub。 公钥应复制到所有datanode结点, 保存在/home/Hadoop/.ssh/authorized_keys文件中; 而私钥保存在namenode结点上, 存储路径是/home/hadoop/.ssh/id_rsa。 注意文件的读写权限设置为:$>chmod 644 authorized_keys。 一次公钥认证过程是:
(1) Hadoop向Hadoop2 发起SSH连接。
(2) Hadoop2 生成一个随机数, 并且用公钥进行加密。
(3) Hadoop收到Hadoop2 加密的数后, 用私钥解密, 并发送到Hadoop2。
(4) Hadoop2 发现数相同, SSH认证完成, 建立SSH连接。
接着在集群所有机器上对sshd服务进行配置, 修改文件/etc/ssh/sshd_config文件。
最后进行测试。 Hadoop向Hadoop2 发起SSH连接, $>ssh hadoop2。
2.3 Hadoop配置文件设置
Hadoop体系配置文件有hadoop_env.sh、 hadoop -site.xml和masters、 slaves文件[2]。
修改hadoop-site.xml文件需应用Java编程。 设置主从结点时, 将masters文件的localhost改成Hadoop (namenode) , 修改slaves文件去除localhost而加入datanode, 每个机器一行, 如表3 所示。
2.4 Hadoop运行的参数配置
包括部署分布式系统和运行集群系统的主进程两个过程。在集群系统的所有节点上部署Hadoop体系。 并且在namenode上产生新的分布式文件系统, 用格式化的方法。
在namenode上启动主hadoop进程: $>bin /start-all.sh。
则namenode启动namenode、 secondary namenode和jobtracker 3 个进程, 而在datanode上启动datanode和tasktracker两个进程。 Jobtracker是唯一的, 而tasktracker是多个的。 每个节点都应运行主进程。
3 Hadoop体系的分布式数据挖掘技术
分布式数据挖掘技术有基于主体 (ontology) 、 网格和云计算3 种方法。 Hadoop体系应用分布式数据挖掘技术的关键是实现算法的并行。 分布式数据挖掘算法有SPRINT (数据分类) 、 LWLR、 SBC算法等。 分布式系统要求Hapood体系能实现松耦合, 在提供统一标准的条件下, 实现建模和调度, 模块动态组合和互操作, 保证系统一致性和扩展性。
数据挖掘系统包括数据源服务器、 数据预处理、 数据挖掘引擎、 模式评估、 知识表示、 图形界面和知识库, 系统组成见参考文献1。 数据预处理对不同数据结构进行数据格式转换, 数据分析是关键技术, 包括概念特征和类描述、 大量数据的频繁模式和多维关联、 具体数据的标号分类与预测、 数据类型标号的聚类分析。 模式评估采用置信度等统计方法。数据挖掘引擎和模式评估都用到知识库。
Hadoop体系运营并行数据挖掘算法, 实现了数据集划分、TCP/IP消息传递协议、 数据传递协议、 map/reduce、 写入时备份策略、 错误处理和安全等关键技术。 在Hadoop之上运行数据挖掘组件, 包括并行处理、 数据加载、 模式评估、 结构存储和并行ETL组件。 工作流和主服务响应功能则更靠近操作系统。 图形界面为用户提供管理和响应管控。 数据挖掘算法进行map/reduce编程后在Hadoop体系中应用, 技术架构和实现过程是[3]:
(1) 完成数据挖掘算法的map/reduce编程, 在client运行map/reduce program。
( 2) Client向namenode提交元数据操作, namenode的Jobtracker进程初始化。
(3) Client将fork () 一个datanode中的进程分割并复制数据源文件, 存储在HDFS中。
(4) Namenode指派map任务到datanode。 Map和reduce任务都是子模块的相应函数。
( 5) Datanode的Task Traker进程解析出 ( key, value) 对, map函数处理后保存中间结果。
(6) 本地写入到文件中。 Namenode分派reduce节点, 并传递中间结果的位置信息。
(7) Reduce结点远程读取中间结果, 数据挖掘算法的reduce函数进行归约操作。
(8) 当所有数据挖掘算法的map, reduce完成后, 保存模式产生的知识表示到输出文件。
(9) 数据挖掘应用程序又取得系统控制权, 获得输出文件。
4 结语
Hadoop体系在参数配置后, 应用Java编程环境编写map/reduce程序, 则能运行海量数据的数据挖掘技术, 可在大型数据库、 计算机辅助制造、 医学和生物信息学、 金融和商业系统的决策、 图像处理、 模式识别中应用。 基于Hadoop体系的数据挖掘技术在集群系统中获得了最广泛的应用。
参考文献
[1]杨宸铸.基于Hadoop的数据挖掘研究.重庆大学, 2010.
[2]张良将.基于Hadoop云平台的海量数字图像数据挖掘的研究.上海交通大学, 2013.
Hadoop平台数据挖掘 篇4
【关键词】SG-186;Hadoop;大数据分析
引言
在电网智能化、信息化飞速发展的今天,以SG-186为核心的数百个各类系统已经渗入电力生产、经营、管理等各个角落。系统运行的可靠性直接影响电力可靠性及公司的社会形象,系统的各类数据也都直接反映了公司经营业绩及发展现状。信息系统后台日志数据规模急速增大,传统的单机式数据库模式在各类系统复杂的数据分析诊断中已经越显乏力,本文运用Hadoop平台及相关技术,提供了一款基于Hadoop的大数据分析解决方案。通过在服务器上的运作,可以对大规模日志进行分析,并自动生成图表进行展示,从而可以非常直观的观察各项用户数据。
1.技术背景
Hadoop是一个高效的、非常可靠的并且可扩展性很强的的分布式软件开发框架,它的优势在于能在相对较短的时间内接受并且完成大量的数据处理任务。运用Hadoop框架进行开发,开发者可以通过自己开发编写的Map/Reduce来进行大数据分析处理。通过更改相应的配置文件,数个甚至更多的副本数据可以通过Hadoop保存下来,这样的设计可以使得Hadoop更加的可靠。因为即使某一个集群中的Hadoop节点出错,其也可以通过HDFS,即数据块副本来完成数据处理任务。因为Hadoop框架可以在非常宽泛的范围内进行扩展,所以其可以处理海量的数据,其数据规模普遍可以达到TB的数量级,在某些情况下还可以突破PB的数量级。Hadoop进行数据处理的时候,其运行速度是非常迅速的,并且在处理过程中,开发者可以不用了解或研究其系统底层的实现过程就可以完成发任务。
Hadoop的相关系统:Hadoop分布式系统(HDFS)包含了许多元素,文件系统存储在群集节点上的文件。HDFS上层的Map/Reduce程序框架引擎,包含了工作跟踪和任务的跟踪。
2.大数据分析解决方案
2.1 系统日志数据预处理
确定了系统对数据的需求之后,就可以对日志进行预处理了。通过对用户日志的UID访问,获取每个日志的基本數据。然后逐个读取各项数据,分别确认是否属于系统所需的日志数据类型。如果是,则保留在系统平台内;如果不是,则删除其数据。为了获取用户的各种信息,我们需要对用户访问系统所遗留下来的日志进行严格的分析。其中,非常关键的问题在于,在运用本文所设计的基于Hadoop的海量数据分析系统对日志进行分析之前,尽可能的对日志进行简化,即去除一些无关紧要的数据部分,是对整个系统的运行效率有着重大提升的意义的。
因此,在将日志导入系统进行分析之前,我们需要对日志进行预处理。预处理有两个目的:一是去掉日志中部分系统不关心的数据;二是统一日志格式,在用户访问的过程中,其生成的格式有可能会因为其来源渠道等因素的不同导致日志整体架构不一致,如果不统一日志的格式,直接导入系统进行处理,那么将会有大量的系统资源被浪费在无用的处理过程中。
2.2 生成最小粒度数据的实现
根据从日志的预处理之后得到的新日志文件数据,系统将对海量的数据进行逐个肢解的过程,并将其按维度划分最细分粒度及流转最细粒度,生成最细分粒度数据。此步骤的难度在于,日志数据极为庞大,单个日志要划分成十数个乃至数十个的小数据,其数量就更为庞大。如何存储这些最细分粒度数据,以便系统后用成了最重要也是最难的问题。
在这个步骤中,系统将釆用Hadoop平台的Apache Pig来实现这一过程。Apache Pig是一个用于分析大型数据集的平台,包括一个高层次的语言表达数据分析程序来评估这些方案以及基础数据处理。Pig的突出特性是它们的结构是适合进行大量的并行轮流处理,使他们能够处理非常大的数据集。目前,Pig的基础设施层由编译器产生的Map-Reduce计划,大规模并行实现已经存在于序列中。
首先,将后台用户日志导入系统。系统将对海量数据进行逐个肢解的过程,并将其按维度划分最细分粒度及流转最细粒度,形成最细分粒度数据,然后存放在Hive中。
在这个过程中,难点在于日志的数量大,通常是数百GB。因此,在此部分,系统将运用Apache Pig来实现对系统原始日志及特征表的肢解,使其生成最细分粒度数据,并将其导入Hive中存放。
首先系统将注册各种UDF,以便 展整个系统流程。然后导入系统后台所存储的用户访问电商网站服务器所留下来的日志数据,主要是访问日志,其次是访问特征码,特征码对于页面流转的统计分析是非常重要的。
然后系统将要逐个地清理原始日志,主要是排除垃圾信息和不完整信息,因为在曰志存储的过程中,不可避免的会收到一些或有意或无意的垃圾信息的攻击,这一部分需要提前剔除,以免工作量太大。
2.3 数据分析及报表的实现
在得到各个数据类型的Hive表之后,系统需要通过Apache Hive来汇总所需细分粒度数据。汇总的方式可以由用户自行设定,可以将任意两种乃至数种上文中所提到的Hive表进行组合汇总,形成新的Hive表。在此步骤中,被划分成最细分粒度的数据己经存放于Hive中。所以,系统将运用Apache Hive来将所有最细分粒度数据汇总,使其成为各个项目单独的汇总表文件。从最细粒度的数据统计,现在就有了两个乃至多个Hive表均包含其数据内容。当系统收到上一个步骤所分析统计得出的Hive表时,其将通过调用Apache Hive的各个接口,使其接收到Hive表中的内容,并且通过用户事先设定好的数据类型汇总方式,将各个Hive表中的数据先逐个读取,再将其输入存放到新的Hive表中。
系统在此部分将通过Hadoop平台所提供的接口建立到数据库的链接,然后在对上一节中所生成的各项Hive表实施遍历,逐行逐词的读出数据表中的每一项数据,将其存入Mysql中,然后提供一个前端可用的接口,以方便各种前端客户连接至Mysql,将数据资料读出并做成可直观阅读和分析的系统报表。
在数据存入Mysql之后,系统可以根据衔接的前端程序的不同,生成各类不同样式的图表,可以包括系统到目前为止,储存在数据库中的全部或者部分数据,供网站分析人员观察与分析。
3.结论
目前电力行业信息发展所面临的问题是本论文的重点。首先介绍了选题的背景和意义,然后逐步引入Hadoop技术,特别是在HDFS文件系统方面的,Map/Reduce框架,Hive数据仓库框架介绍的原理和使用,以及作为如何使用Hadoop数据处理,来解决这个问题的。然后,本文介绍了如何充分利用Hadoop的配置设备,以及内置的数据仓库框架,以实现统计的需求,并生成直观的图表显示。
因为Hadoop运作过程并非自动化的工作形式,可以研究关于这个项目的代码固化下来的可能性,以达到完成自动化功能的目的,仅需要用户简单地输入特定需求的参数,后台任务运行这些数据使用Hadoop来进行数据处理,所以面对数据的处理需求,并不需要手动启动脚本来运行任务。
参考文献
[1]MapReduce计算任务调度资源配置优化研究.
作者简介:
肖靖峰(1987—), 男,国网新疆电力公司ERP系统运维专责,主要从事新疆电力信息化运维及系统管控工作。
Hadoop平台数据挖掘 篇5
随着互联网发展起来的社交网络对人类社会活动的方式、效率等产生了深远影响, 在社交网络基础上形成了移动社交网络 (Mobile Social Network) 。在移动社交网络的发展中, 用户的需求也发展到了一个新的阶段, 体现为对贴心服务和个性化服务的追求, 他们希望在任何时间、任何地点、任何设备上体验个性化服务, 因此移动互联网的发展要以用户为中心, 以提供个性化服务为终极目标[1]。
个性化服务的核心工作之一是如何通过移动用户的消费信息有效发现用户的行为模式, 进而根据用户个性化的喜好, 更好的提供有价值的服务信息[2]。本文针对传统粗糙集理论在属性约简时必须将数据全部放入内存, 导致在进行移动用户社交大数据时无法有效处理问题, 提出基于Map Reduce的移动数据粗糙集并行约简方法, 同时以Hadoop开源平台为基础, 构建了移动用户行为模式分析平台, 最后通过实验验证了平台的有效性与可用性。
2 平台框架设计
本文提出的基于Hadoop的用户行为分析模型框架, 主要由5个层次构成:资源层、存储层、控制层、分析层和展现层, 具体功能如下所述:
2.1 资源层。
资源层的对象分为两类, 一类是对用户各种移动业务访问数据的存储, 包括用户位置信息、终端设备类型、访问IP、网址/特征信息等等[3]。
2.2 存储层。设计存储层结构主要考虑两个方面:海量设备状态数据的高效存储和用户行为分析中访问效率问题。
2.2.1采用Hadoop分布式文件系统 (HDFS) 构建一个高度容错性的系统, 基于流数据模式访问并能处理超大文件 (1T以上) , 提供高吞吐量的数据访问。2.2.2使用列式存储的HBase数据库, 所有的待分析用户访问状态数据文件都以HFile文件形式存储在HDFS文件系统上。能够提供高并发读写操作, 并且列都可以动态增加, 列为空就不存储数据, 节省存储空间。
2.3 控制层。
控制层采用Map Reduce并行运算模式, 将用户行为分析过程划分为多个Map Reduce作业, 以廉价的X86服务器构建Hadoop集群, 对每个作业分为Map和Reduce两个阶段, 同时构建Zookeeper负责协调控制服务, 利用Hive的强大统计汇总、点对点查询和大数据分析功能, 用HQL语句进行采集信息的各类分析操作。
2.4 分析层。
首先, 通过移动数据粗糙集并行约简方法进行移动社交大数据的预处理, 然后利用多元回归分析、贝叶斯网络和判别式法等智能分类算法进行用户行为特征的提取, 依据行为特征曲线分析结果, 经用户行为推理机根据行为分类规则进行自动判断[4]。同时, 通过Sqoop接口将行为分类规则存入用户行为知识库。
2.5 展现层。对移动互联网下用户行为进行分类, 对于每一类行为分别进行快速的图形化展现, 同时进行各种应用推荐。
3 平台关键技术:基于Map Reduce的移动数据粗糙集并行约简
在对移动社交数据进行处理时, 将全部的属性看做一个完整的集合, 但这些属性在分析不同的行为目标时, 如上网时长的分布规律, 用户使用某种移动套餐的可能性等, 并不是所有属性都是必要的, 可以将属性的约简归结为属性的选择问题, 即在保持属性集合用户行为分类能力不变的情况下, 如何选取最有代表性的属性。因此, 以粗糙集理论为基础, 在Map Reduce框架下实现粗糙集约简方法的并行化改进。
在构建基于Hadoop平台移动社交数据属性约简时, 它的平台核心是HDFS和Map Reduce, 其中HDFS为海量的原始数据提供了列式存储, Map Reduce通过编写Map和Reduce两个函数过程实现数据的分析处理。本文提出的粗糙集并行约简方法执行过程如下:
3.1 获取原始移动社交数据集, 包含n个属性 (n=j+l, 其中条件属性j (j<n) 个, 决策属性l (l<n) 个) 。
3.2 采用分布式文件系统HDFS进行列式存储, 将完整的数据集进行自动划分处理, 这些分解的数据块存放在一组数据节点中。
3.4 在Reduce阶段, 合并不同数据块中计算获得的某个属性局部等价关系, 获得该属性的完整等价类。
3.6 在Reduce阶段, 合并获得每个候选属性集的完整重要度。
3.7 进行属性约简, 根据不同行为分析的目标, 获得相应的最优候选集。
4 平台的实验分析
本平台的实验环境是选取了5台虚拟机进行搭建, 采用Linux Ubuntu操作系统12.04的64位版本, 构建完全分步式的Hadoop集群, 通过内网的一个DNS服务器, 指定5台虚拟机所对应的域名。每台虚拟机, 1G内存, 系统硬盘2G, 外接硬盘16G。
实验的数据来源是运营商的CDR话单和上网详单, 以及相应的字段说明 (例如基站位置、通话类型等) , 具体CDR话单包括:主叫、被叫、通话时间、通话类型、通话位置信息、通话时长、服务类型, 通话费用上网详单包括:手机号码、上网时间、网址URL、持续时间、流量、上网套餐类型。
4.1 属性约简验证 (表1)
4.2 用户行为模式影响因素分析。
将居住地点数据进行规范化处理后转化为0-55个数字, 通过与归一化处理后的上网时长信息进行分析后, 发现上网时长与某些特定居住地点存在一定的相关性, 本分析中几个有峰值出现的地点分别是21———代表学校区域、40———代表咨询公司区域。
年龄与选择服务类型的关系分析, 显示高年龄段人群仅对移动通信的基本服务感兴趣, 中青年龄段人群对上网服务和增值服务使用较多。
摘要:伴随移动社交网络的快速发展, 如何为用户提供贴心和个性化的服务是电信运营商密切关注的问题, 要实现个性化服务的核心工作之一就是通过移动用户的消费信息有效发现用户的行为模式, 但传统的单机模式下的分析平台已无法有效处理当前的移动大数据, 本文针对传统粗糙集理论属性约简方法进行了并行化改造, 提出基于Map Reduce的移动数据粗糙集并行约简方法, 同时以Hadoop开源平台为基础, 构建了移动用户行为模式分析平台, 最后通过实验验证了平台的有效性与可用性。
关键词:用户行为模式,属性约简,Hadoop,Map Reduce
参考文献
[1]梁鹏, 张岩.移动数据业务用户行为模式研究[J].中兴通讯科技.2005 (4) :24-27.
[2]陆嘉恒.Hadoop实战[M].北京:机械工业出版社, 2012.
[3]张利军, 李战怀等.基于位置信息的序列模式挖掘算法[J].计算机应用研究, 2009, 26 (2) :4-11.
Hadoop平台数据挖掘 篇6
随着信息技术的高速发展, 整个社会正逐步进入“数字化”时代, 全球数据持续以爆炸性速度增长, 面对持续增长的海量数据对传统存储系统带来的新的挑战, 企业需要建立起高吞吐量、高可靠性和可扩展的存储系统。日常生产运营中, 企业一般都会有多个业务系统, 每个业务系统有各自的归档系统, 在这种情况下, 企业需要维护多个独立且各不相同的归档系统, 大大增加了维护和管理的负担并导致系统整体可扩展性差。如果构建一个统一的数据存储平台作为多个业务系统的公共归档系统, 那么所有业务系统的归档系统就可以整合为一个系统。
2 数据迁移设计与实现
2.1 分层存储系统
为了构建一个统一的数据存储平台供多系统使用, 本文设计了分层存储系统作为大数据存储平台。分层存储系统由在线存储平台和大数据存储平台组成。其中, 在线存储平台为企业的业务系统提供了在线数据的保存和处理服务, 保存了业务系统最近一段时间的数据, 大数据存储平台保存了企业业务系统所有的历史数据, 如图1所示。
2.2 数据迁移设计
数据迁移模块的主要功能是将在线存储平台的数据迁移到大数据平台上。其中, 在线存储平台的数据包含了结构化和非结构化两种类型的数据。结构化数据迁移需要将关系型数据库中的数据迁移到No SQL数据库中;非机构化数据迁移需要将数据文件从传统文件系统迁移到分层存储系统中的大数据平台。
(1) 结构化数据迁移设计
在线存储平台的数据通常采用传统的关系型数据库进行保存, 为了可扩展性的需要, 大数据平台基本上都采用了非关系型数据库 (如No SQL数据库) 。由于关系型数据库和No SQL数据库在数据的查询接口、数据模型、体系结构等方面都存在较大的差异, 数据迁移的设计要考虑很多类型转换和兼容性的问题。本文系统中涉及到的结构化数据迁移是指将数据从关系型数据库数据迁移到HBase表中。
系统需要定期将在线存储平台中的结构化数据迁移到No SQL数据库中, 以便进行后续的查询和数据处理工作。其过程就是将在线存储平台的数据库记录导出, 并转换成目标格式, 保存在No SQL数据库中。具体结构化数据模块设计如图2所示。
迁移的过程分为以下五个部分:
a.获取源数据库和目标HBase数据库连接信息, 以及源数据表字段到目标HBase表的映射关系;
b.源数据库包含My SQL、DB2、Oracle等, 每个数据库的数据格式都不同, 通过采用不同的JDBC (Java数据库连接) 使用SQL查询获取数据库数据;
c.HBase的数据是列式存储的, 输出格式为<关键字, 时间戳, 值>, 根据映射, 将每条输入记录拼装成多条HBase输出记录;
d.通过HBase连接信息建立与HBase的连接;
e.HBase提供了数据插入接口, 调用数据插入接口, 将步骤c中拼装好的数据插入到指定的HBase表中。
(2) 非结构化数据迁移设计
现有Hadoop数据迁移工具Flume使用较多, Flume是一个分布式、可靠的日志聚合的系统, 它可以在系统中定制各种类型的数据发送方, 将数据收集到一个节点上。Flume的优点是使用简单, 上传的文件可以按照大小、行或者是处理的时间分割为多个文件。但是在Flume-ng版本中, 每个数据源只能有一个文件, 而实际情况是要将多个在线存储平台的服务器中的文件夹整体都迁移到HDFS的指定目录下。如果采用Flume, 将需要针对每个文件设置一个配置文件, 实现过于繁琐。
针对Flume中存在的问题, 可以采用Apache VFS实现不同文件系统间非结构化数据迁移。该方式与Flume相比, 实现更加灵活。首先根据配置获取源数据、写入目标数据位置信息, 然后根据数据不同类型获取单个文件或目录下所有文件列表, 最后将迁移的文件写入到目标地址中。具体实现流程如图3所示。
迁移的过程分为以下五个部分:
a.根据迁移程序设置获取源、目标数据地址等相关信息, 主要包括数据类型信息, 分为两种:文件和目录信息;
b.根据源数据配置信息判断数据类型, 如果是文件直接读取该文件内容, 如果是目录则递归获取目录所包含该目录下所有文件信息;
c.如果数据类型是目录方式则判断目标目录, 如果不存在则创建目标目录;
d.通过调用HDFS接口, 在指定位置创建文件并写入数据;
e.通过以上的步骤, 只需要在迁移程序配置源、目标位置信息, 就可以实现业务平台的非结构化数据迁移到大数据平台的HDFS中。
2.3 数据迁移实现
(1) 结构化数据迁移实现
根据结构化数据迁移设计实现迁移程序, 其配置界面如图4所示, 该转换从Oracle中读取数据, 然后将数据插入HBase中。在“将数据插入HBase中”步骤配置与HBase关联的Zookeeper信息, 点击获取表名获取HBase映射信息表中记录的已经配置映射的表, 指定输出表为dsbtasklog, 点击获取指定表的映射获取表dsbtasklog的所有配置过的映射名称并选取logdata映射。
(2) 非结构化数据迁移实现
Apache VFS (Virtual File System) 提供了一种虚拟文件系统, 能够方便在其所支持的文件系统 (如:本地系统、FTP、HTTP、HDFS等) 进行文件操作。Apache VFS核心是File Object接口, 不同文件系统都实现该接口的方法, 进而根据不同文件系统类型调用其相应处理方式。
非结构化数据迁移重点需要解决实现不同文件系统与HDFS迁移以及迁移中的性能问题, 正式利用了Apache VFS可以在不同文件系统间进行文件操作以及多线程并发操作从而解决了非结构化数据迁移不同文件系统兼容和迁移性能问题。
根据非结构化数据迁移设计实现其迁移程序, 配置界面如图5所示。该转换中通过设置源、目标数据地址配置信息, 其中源数据地址一般为本地文件系统而目标地址为HDFS文件系统。
4 结语
分层存储系统很好地解决了海量数据增长的压力, 本文设计与实现的Hadoop大数据迁移程序满足了分层存储系统对结构化和非结构化迁移的要求。在实际应用中, 由于该程序拥有众多的文件接口, 能够处理传统操作系统、FTP等文件大大方便提高了系统灵活性, 另外在设计和实现过程中也存在需要完善的地方, 例如对异常的处理和日志的记录等需要加强。
摘要:为解决持续增长的海量数据的存储压力, 提出了由在线存储平台和大数据存储平台组成的分层存储系统, 并对分层存储系统中结构化、非结构化数据迁移的设计和实现进行了详细描述, 同时介绍了系统实际使用情况及优缺点。
关键词:Hadoop,HBase,大数据,数据迁移
参考文献
[1]李晨翔, 何刚, 孙莉.基于Hadoop平台的分布式ETL系统设计与实现[J].福建电脑, 2013 (11) :111-114.
[2]Apache Supported File Systems.Apache Commons VFS 2.1-SNAPSHOT API[EB/OL].[2014-08-20].http://commons.apache.org/proper/commonsvfs/filesystems.html.
Hadoop平台数据挖掘 篇7
随着大数据时代的到来,以及电信运营商正在推行去“IOE”,电信运营商开始将企业核心数据迁移到基于Hadoop的大数据平台进行大数据业务的开展。
当前电信运营商大数据业务模式和应用场景日趋清晰,对内对外大数据应用支撑要求搭建集约和开放共享的大数据平台[1]。电信数据特有的真实性、敏感性,以及支撑电信运营商大数据业务厂商的多样性,大数据平台存储能力开放、计算资源开放、数据开放的安全已成为制约大数据业务开展的关键因素。本文提出了一种基于Hadoop的大数据平台能力开放策略,解决电信运营商大数据平台能力开放面临的难题,提升电信运营商开展大数据业务的能力。
2开放特点
电信大数据平台汇聚了IT系统、网元平台等企业核心数据,采用多厂商、跨部门的大数据业务开展模式。电信大数据平台能力开放具备如下特点:
(1)平台安全等级高
电信大数据平台汇聚企业核心数据,支撑企业日常生产,关系到企业决策及用户感知,必须保证平台安全、稳定、高效运行。
(2)数据安全要求严格
电信运营商拥有海量用户真实的信息,这类数据属于敏感数据,必须保证数据安全。
(3)数据规模大
企业IT系统及网元平台每时每刻都在产生大量的通话、短信、流量、业务、系统日志等数据,日均数据量在10TB+级别。
(4)多厂商、跨部门
电信运营商采用多厂商、跨部门方式开展大数据业务,业务理解能力、大数据开发水平、数据安全意识差异较大。
(5)能力开放不成熟
电信运营商大数据平台正在高速发展阶段,尚无成熟的大数据平台能力开放策略可供借鉴。
3开放挑战
随着企业核心数据逐步汇聚到大数据平台,企业决策及生产运营对大数据平台的要求越来越高,基于大数据平台开展的大数据业务逐渐丰富。由于电信数据特有的真实性、敏感性,以及支撑电信运营商大数据业务厂商的多样性,大数据平台存储能力开放、计算资源开放、数据开放的安全已成为制约大数据业务开展的关键因素。基于Hadoop的大数据平台能力开放面临的挑战如下:
(1)如何提供大数据平台存储能力。
(2)如何面向不同厂商提供平台计算资源。
(3)如何实现数据共享及保障数据的访问安全控制。
(4)如何提供任务的统一调度服务。
(5)如何提供任务的统一监控告警服务。
(6)异构数据源如何与大数据平台进行数据同步。
4策略设计
基于Hadoop的大数据平台采用一个平台+一站式数据开发系统的能力开放策略,即:一个SQL ON Hadoop的大数据平台,一个由统一开发引擎、统一调度引擎、统一监控告警引擎、异构数据同步引擎构建的一站式数据开发系统实现大数据平台的能力开放。
采用开源软件Hadoop+Hive+Impala架构构建电信大数据平台,提供海量数据的存储、计算服务,支撑企业大数据业务的开展。采用开源软件Sentry实现数据共享及数据访问安全控制,采用开源ETL工具Pentaho Data Integration构建统一调度引擎,基于统一调度引擎任务日志开发统一监控告警引擎,采用开源软件Sqoop构建异构数据同步引擎。
4.1存储资源开放
以Hive表或Impala表的方式提供大数据平台存储资源,对开放的表空间进行HDFS配额。HDFS允许管理员为使用的命名和每个个人的文件夹设置配额。命名配额和空间配额独立操作,但是这两种配置管理和实现是连接紧密的[2]。
命名配额是限制文件夹下文件和文件夹的数目。空间配额是设置文件夹存储数据空间的大小。
4.2计算资源开放
采用“多租户”模式开放大数据平台计算资源,实现不同租户间计算资源的隔离,大数据平台采用公平调度器实现“多租户”模式的计算资源共享。
公平调度器按资源池(pool)来组织作业,并把资源公平地分到这些资源池里。默认情况下,每一个用户拥有一个独立的资源池,以使每个用户都能获得一份等同的集群资源而不管他们提交了多少作业。按用户的Unix群组或作业配置(jobconf)属性来设置作业的资源池也是可以的。在每一个资源池内,会使用公平共享(fairsharing)的方法在运行作业之间共享容量(capacity)。也可以给予资源池相应的权重,以不按比例的方式共享集群[3]。
4.3数据开放
通过Sentry对表进行权限控制,实现数据共享及数据访问安全控制。
4.4开发引擎
采用开源软件Zeppelin、Squirrel连接大数据平台,或者开发一套实现Hive JDBC或Impala JDBC的系统实现对大数据平台计算引擎的接入。
4.5调度引擎
通过对开源软件Pentaho Data Integration进行二次开发,实现用户分权分域的权限管理功能,以分布式方式部署,通过提交到远程Carte服务器进行任务调度,实现企业任务的统一调度。
4.6监控告警引擎
对统一调度引擎的任务执行日志进行二次开发,实现统一监控,同时将异常信息发送到企业内部短信及邮件接口,实现企业统一监控告警引擎。
4.7异构数据同步引擎
采用开源软件Sqoop实现异构数据同步引擎,实现Hadoop与关系型数据库之间的快速数据同步。
5结语
通过对大数据平台进行能力开放,提升了电信运营商开展大数据业务的能力,提升了电信运营商数据运营、智慧运营的能力。对基于Hadoop的电信大数据平台提出了一整套能力开放策略,为电信运营商大数据平台能力开放提供了解决方案。
参考文献
[1]王晖,唐向京.共享开放的运营商大数据平台架构研究.信息通信技术,2014,(6):52-58.
[2]HDFS配额指南(HDFS Quotas Guide).
Hadoop平台数据挖掘 篇8
关键词:云平台,海量数据,信息处理
1 数据挖掘概念
数据挖掘就是从大量的、模糊的、不完全的、毫无规律的、真实的、随机的数据中挖掘或抽取出有价值的、未知的、新颖的、隐含在大规模数据中不为人知的模式或规律等知识的复杂过程, 提高海量信息知识的服务质量。如何通过寻找数据间潜在的关联, 把隐藏于大量数据之内的事先不为人们所知的知识挖掘出来, 数据知识挖掘的过程如图1所示。
2 开源云计算平台Hadoop
云计算是一种新型的基于互联网的、大众参与的计算模式, 它将大量的计算资源共同组成了IT资源池, 巨大的资源池连接在一起, 将庞大的计算任务, 分布在大量的、廉价的并行计算机上运行, 其计算资源是动态、可伸缩、被虚拟化的, 它将IT资源、数据以及应用作为一种服务, 通过互联网提供给用户。用户可根据自身的需来访问计算机以及存储系统。云计算用于动态创建高度虚拟化的资源提供用户使用。云计算平台是以文件系统HDFS、分布式并行编程模型Map Reduce和分布式数据库HBase为核心的开源分布式的计算平台。HDFS文件系统用于可靠地存储海量的数据集, Map Reduce模型是一个在超大集群下进行海量数据计算的一种编程模式。由Map和Reduce两个模块处理海量信息, Map负责把一个大Map任务分解成多个Map任务, 在可接受的时间内, Reduce把分解后的多个Map任务处理结果汇总起来, 得到最终结果。在云计算平台Hadoop的基础上, Map Reduce模型可以为海量和复杂数据对象的数据挖掘提供基础设施。Hadoop云平台为不同的用户提供了编程环境。用户可以根据需要, 构建自己的Hadoop计算云平台。Hadoop云平台的项目结构如2所示。
3 基于Map Reduce的海量信息处理
随着网络信息飞速地膨胀, 从信息的海洋中查找和获取所需要的信息愈发重要。本文探讨通过Hadoop云计算平台, 设计基于Map Reduce模型的信息处理系统。系统由三个阶段组成: (1) 提取网页数据。系统利用Hadoop平台下的Map Reduce计算模型进行数据收集, 首先将感兴趣的网页的链接地址写入本地一个文件中, 然后启动Hadoop平台中的HDFS文件系统将文件导入。 (2) 对提取到的数据按需要进行分析处理, 系统对收集到的海量网络数据进行分析并处理, 把收集的网络数据属性进行封装, 封装后的数据可以方便地应用到Map Reduce计算模型中, 这样可以大大降低代码量, 提高数据处理速度。Map阶段主要是数据收集部分的处理, 是通过各种判断语句来实现的。Reduce阶段主要是把符合标题长度的数据输到HDFS上, 分析Map Reduce模型, 通过对网页数据的分析和处理, 就可以得出所需要的数据类型, 然后输出所需要的特定的数据信息格式。 (3) 用户根据自己的需要, 对自己感兴趣信息进行查询。当用户输入査询内容时, 系统使用双向匹配算法, 对输入的中文通过査询己经准备好的数掘字典 (用Berkeley DB存储) 进行分词, 得到很好的处理效果。实验表明, 通过利用Hadoop平台运行程序, 当获取大数量的网络信息时, 能够大大缩短程序的运行时间。
4 系统实现的关键技术
本文采用的关键技术是网络爬虫和双向最大匹配算法, 网络爬虫是通过用户给定的网页链接地址抓取相应的内容, 是一个自动提取网页的程序。在抓取网页数据时, 应用多线程的抓取方式, 把抓取到的网页数据存储在HDFS文件系统中, 不需要经过本地。这样整体爬行速度就大大提高了。本系统在进行中文分词时, 系统采用双向最大匹配算法。首先对用户输入的查询字符串经过处理进行划分, 把一个短语分解成词语的组合。然后, 根据最少切分原理, 最终确定分词的结果。数据存储方式采用的数据库是一个嵌入式数据库Berkeley DB。DB管理的数据方式相对比较简单, DB对数据类型不做任何限制, 由程序员自己设计。由于它是嵌入在编写程序的函数中, 所以可以管理256T大小的数据量。在数据预处理过程中, 选择并行处理方式, 以提高数据管理和挖掘效率, 实现高效的云计算并行海量数据挖掘算法。
5 结语
Hadoop平台数据挖掘 篇9
随着智能交通城市建设的发展,各种无线设备、导航定位设备产生了海量的交通数据,这些数据具有复杂、多样、动态变化的特性,存在采集和存储标准缺乏以及规范问题[1,2]。如何存储和分析海量的交通数据,使这些数据得到高效利用,为城市交通管理提供数据支持,是智能交通城市建设的重要组成部分。
传统的大规模数据处理大多采用高性能计算,需要投入较大的资金和时间成本,Hadoop技术的发展在大数据存储和处理上提供了很好的解决方案[3]。HDFS分布式文件系统、MapReduce编程模型、Hive和HBase数据库是Hadoop的关键技术,采用Hadoop技术能够在廉价的硬件设备上以更低的运行成本完成大规模的数据处理[4,5]。本文利用Hadoop集群技术,对龙口市的城市公交车交通数据进行了高效处理并存储到HBase分布式数据中,设计并实现了一个高效实用的城市交通数据存储处理平台。
1 Hadoop
Apache Hadoop是一款支持数据密集型分布式应用的开源软件框架,支持在大型集群上运行的应用程序,为应用提供可靠性和数据移动,提供稳定的共享存储和分析系统,其核心功能包括文件系统HDFS(Hadoop Distributed Filesystem)和MapReduce软件架构。HDFS提供高吞吐量的数据访问,非常适合在大规模数据集上应用,MapReduce用于大规模数据集的并行运算;HDFS提供存储支持,MapReduce提供数据分析支持。
Apache Hive是基于Hadoop提供数据概要、查询和分析的数据仓库基础架构。Hive定义了简单的类SQL查询语言,简称HQL,它允许用户通过HQL进行数据查询,可以直接使用存储在Hadoop文件系统中的数据。将HQL语句通过解释器转换为MapReduce作业提交到Hadoop集群上,Hadoop监控作业执行过程,然后返回作业执行结果给用户。Hive的最佳使用场合是大数据集的批处理作业。
HBase是Apache组织开发的基于Hadoop的数据查询系统,目标是存储并处理大型数据,能够对大型数据提供实时的读写访问,是Google的bigtable开源实现,是一个高可靠性、高性能、可伸缩的分布式存储系统,具有较好的负载均衡控制及容错性能。
2 系统结构及功能
城市交通数据存储处理平台可收集多个来源的交通数据并进行处理,完成数据展示。平台由数据存储、数据处理、数据展示3层组成,其架构如图1所示。
2.1 数据存储层
数据存储层主要用来存储公交浮动车定位器发送的实时定位数据,以及公交卡的刷卡信息及其它有效数据。该层分数据预处理、数据缓存区、数据写入和存储3部分。
数据预处理模块。实现对各种不同来源的交通数据进行规范化处理,以保证数据的有效性。GPS实时定位数据是进行分析的关键数据。由于数据的发送端设备和载体差异,数据格式会存在一定的差异,需要对接收的数据统一格式。数据格式包括经纬度、瞬时速度、方向、时间戳等主要信息。公交卡数据格式包括卡号、刷卡时间、车次名称、区间站号等数据信息。预处理模块对不符合规范的数据直接排除。
数据缓存区。GPS客户端由于通信成本以及实际需求,一般以30s-60s为周期发送一次实时数据。为了提高海量数据的批量写入速度,考虑磁盘读写吞吐率的限制,该层主要用来缓存数据,以时间戳为标记,满1h进行一次数据缓冲,即根据时间戳的标记将1h内的数据写入到下一层,并重新开始新的缓冲。
数据写入和存储。该模块接受缓冲区发送来的数据,以时间戳为标准,自动生成HBase插入数据脚本,以脚本命令执行,写入分布式数据库HBase中,数据库根据时间戳以天为单位建表。当天写入的数据直接追加到当天的表中。
2.2 数据处理层
由于公交车GPS设备发送的位置信息存在偏移误差,而且与本地路网的坐标体系不一致,所以需要对这些信息进行坐标转换,然后匹配地图。数据处理层主要负责HBase中数据的处理,然后将结果存储到HBase中。
对大规模定位数据进行道路匹配计算。 首先设置MapReduce作业的输入输出路径,通过主函数启动该作业,作业启动成功后执行Map任务。在Map任务准备阶段,从mysql数据库中读取路段数据保存在内存中。Map通过接收键值对,对值中数据按时间、经度、纬度、速度、方向的格式解析,通过调用这些值,采用逐级网格索引匹配法进行匹配,得到匹配结果。处理方法及步骤如下:
(1)Map:读取公交车位置信息数据。解析位置信息数据,获取公交车ID、经度、纬度、速度值、方向和时间属性值,对应格式输出。
(2)Reduce:获取Map输出信息。采用路网坐标体系的转换公式,完成坐标体系转换;利用地图匹配技术进行坐标匹配,得到精确的匹配信息即匹配后的经纬度坐标;输出公交车ID、经纬度、速度、方向、时间和匹配后的经纬度坐标值。
2.3 数据展示层
数据展示层主要负责将后台处理的数据进行可视化展示,主要技术采用Echarts开源框架。数据可视化技术将数据转换成便于理解和吸收的图表结构,增加了信息印象,Echarts基于Canvas元素,使用Javascript脚本语言编写可视化图表库,拥有动态的数据接口。通过Echarts提供的数据接口,对系统数据进行可视化操作。通过HBase提供的java api访问数据库,使用Echarts提供的数据接口进行定制化展示。
3 实验验证
本系统实验环境为hadoop2.7.1,centos7,java1.8,系统由一个master节点和2个slave节点构成,所有的节点硬件为8G内存和100G硬盘构成。本实验采用龙口市30辆公交车1年的信息数据,接近2亿条。
在相同的环境配置上,对比本系统和在SQL server2008R2数据库系统查询时间。实验结果表明,在数据量不大时,平台的查询效率小于SQL server数据库,但在数据量变大时,本平台的读取优势就显现出来。对比数据如图2所示。
实验中采取2011年1月2号一天的数据,共453 577条记录,将这些数据作为平台并行处理的实验数据,依次执行坐标系转换和地图匹配运算,统计在不同计算单元数下的计算时间,反映平台采用Mapreduce处理方式的并行性能,实验结果如表1所示。
4 结语
本文针对大规模公交车数据在存储和处理性能方面的要求,提出了一种基于Hadoop技术的公交车数据存储和处理方案,并在数据读取性能和处理效率上与传统方式作了对比,实验结果证明该方案可行,优势明显。
摘要:随着城市的发展,传统方式存储与处理不断增多的交通数据暴露出诸多问题。为此,设计并实现了一套基于Hadoop的交通数据存储和处理平台。该平台采用HBase数据库存储数据,Mapreduce实现数据并行处理,Web端展示数据。实验结果证实,该平台在数据存取和数据处理性能方面都优于传统处理方式。
关键词:交通数据,Hadoop,HBase,MapReduce,并行处理
参考文献
[1]周小平,刘祥磊.海量铁路机车GIS定位数据分布式处理技术[J].中国科技论文,2015,7(10):812-816.
[2]王美玲,程林.浮动车地图匹配算法研究[J].测绘学报,2012,41(1):133-138.
[3]陆嘉恒.Hadoop实战[M].北京:机械工业出版社,2011.
[4]陆婷,房俊,乔彦克.基于HBase的交通流数据实时存储系统[J].计算机应用,2015,35(1):103-135.
[5]SUN Y,FANG J,HAN Y.A distributed real-time storage method for stream data[C].WISA 2013:Proceedings of the 10th Conference on Web Information System and Application.Washington,DC:IEEE Computer Society,2013:314-317.
[6]刘军霞,王磊,周喜.面向海量数据的电子政务云平台研究[J].计算机与现代化,2013(7):164-168.