[发明专利]一种基于Hadoop的车辆拥挤度获取方法有效
申请号: | 201310688009.1 | 申请日: | 2013-12-16 |
公开(公告)号: | CN103646541B | 公开(公告)日: | 2017-05-24 |
发明(设计)人: | 廖丹;卜思桐;孙罡;陆川;虞红芳;许都 | 申请(专利权)人: | 电子科技大学;电子科技大学广东电子信息工程研究院 |
主分类号: | G08G1/01 | 分类号: | G08G1/01;G06F19/00 |
代理公司: | 成都行之专利代理事务所(普通合伙)51220 | 代理人: | 温利平 |
地址: | 611731 四川省成*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 hadoop 车辆 拥挤 获取 方法 | ||
1.一种基于Hadoop的车辆拥挤度获取方法,其特征在于,包括以下步骤:
(1)、通过MapReduce编程模型处理统计数据;
输入统计的GPS信息,并通过MapReduce编程模型将GPS信息分成N个数据片段,Map()函数读取数据片段时,每次读取一条记录,即数据片段的一行GPS信息,待读取完一条记录后再读取下一条记录,Map()函数将读取的这行记录分解成键值对<Kn,Vn>,n=1,2,…N,在Kn中输入这行记录首字符在文件中的偏移量,在Vn中输入这行消息的内容,同时声明一个数组1,把计算统计拥挤度和线性拥挤度时需要的时间time、经度long、纬度lat、速度speed存入数组1中,Hadoop为每一个数据片段创建一个Map任务,所有的Map任务之间采用并行计算方式,Hadoop同时会根据配置文件中设置的Reduce任务的数量来创建Reduce任务,Reduce任务是基于Reduce()函数执行的,多个Reduce任务之间也是并行执行的;
(2)、第一个MapReduce()函数进行时间和区域化处理:
(2、1)、在第一个Map()函数中对数组1中的经度、纬度进行处理,对研究的区域进行网格化;对经度为i,纬度为j的区域site(i,j)作标记,则第一个Map()函数输出对应的Kn为site(i,j),对应的Vn为时间time、速度speed;
(2、2)、在Reduce()函数中,分别计算车辆在同一时刻的相关速度参数;将经度、纬度相同的Kn对应的所有Vn合并成一个list链表,形成<Kn,list(Vn)>组,同时声明一个数组2,将速度speed提取出来存放在数组2中,令ι=site(i,j),然后根据公式求区域site(i,j)内所有车辆在时刻time的平均速度再计算区域site(i,j)内所有车辆在时间time速度的最大速度vmax(ι)和最小速度vmin(ι),最后计算区域site(i,j)内所有车辆在时间time速度小于平均速度的比例P(v≤v(t)(ι)),v∈VΦ(ι),则第一个Reduce()函数的输出对应的Kn值为site(i,j),对应的Vn为time,vmax(ι),vmin(ι),P(v≤v(t)(ι)),v∈VΦ(ι),最后将输出存放到Hadoop的分布式文件系统hdfs上;
(3)、第二个MapReduce()函数对记录的GPS信息进行联结处理:
(3、1)、将第一个MapReduce()函数的输出和上一时刻time-1计算得到的统计拥挤度和线性拥挤度的值输入到第二个MapReduce()函数中;
(3、2)、第二个Map()函数将读取的每条记录打包,使其在Reduce侧进行联结;第二个Map()函数处理读取的每条记录时,用数据源标记每条记录,然后将记录打包并标记,这时记录包中含有原始记录和数据源标签,第二个Map()函数则为每个记录包设置组键值;第二个Map()函数的输出被记录为键/值对,并按键来分区,对于联结,第二个Map()函数则输出一个记录包,采用组键作为联结的键;
(3、3)、第二个Reduce()函数接收第二个Map()函数的输出数据,并对其值进行完全交叉乘积:
第二个Reduce()函数对相同联结键的所有记录一起处理,通过解包得到原始记录,以及根据标签所得到记录的数据源,第二个Reduce()函数对接收到的输入数据值进行完全交叉乘积,当第二个Reduce()函数接收到的输入数据值分别有不同的标签时,交叉乘积就是这些输入数据的原始集合,交叉乘积得到的每个合并结果被送入Combine()函数,则Combine()函数得到的结果为:
site(i,j),time,vmax(ι),vmin(ι),P(v≤v(t)(ι)),v∈VΦ(ι),site(i,j),time-1,
其中,t为时刻time,(t-τι)表示下一时刻time-1,τι是获取位置ι的动态性参数,各条记录的时间time相同,当第二个Reduce()函数接收到的输入数据值未含有标签或标签相同,则Combine()函数丢弃其合并结果;
(4)、通过第三个MapReduce()函数中的Map()函数计算统计拥挤度和线性拥挤度:
在第三个Map()函数中输入每条记录的Vn值:
site(i,j),time,vmax(ι),vmin(ι),P(v≤v(t)(ι)),v∈VΦ(ι),site(i,j),time-1,
根据公式计算得到时刻time的线性拥挤度;
再根据公式计算得到时刻time的统计拥挤度;其中,αι和ιι是获取位置ι的动态性参数。
2.根据权利要求1所述的基于Hadoop的车辆拥挤度获取方法,其特征在于,所述的Vn中输入消息的内容包括:车辆编号no、GPS消息记录序号、车辆ID:c-objid、车牌号c-regnum、车的颜色c-regcolor、收到本条GPS消息的时间time、该时刻车辆所在位置的经度long、该时刻车辆所在位置的纬度lat、该时刻车辆的速度speed、出租车的行驶方向direction、车辆所在位置的高度height、该时刻车辆是否空载state。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于电子科技大学;电子科技大学广东电子信息工程研究院,未经电子科技大学;电子科技大学广东电子信息工程研究院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310688009.1/1.html,转载请声明来源钻瓜专利网。