郭 旭,衛(wèi) 彪,江建宇
安徽四創(chuàng)電子股份有限公司,安徽合肥 230088
車輛通行數(shù)據(jù)的分布式存儲(chǔ)系統(tǒng)淺析
郭旭,衛(wèi)彪,江建宇
安徽四創(chuàng)電子股份有限公司,安徽合肥230088
卡口車輛通行數(shù)據(jù)的分布式存儲(chǔ)方法,包括配置計(jì)算節(jié)點(diǎn)和數(shù)據(jù)節(jié)點(diǎn)服務(wù)器,搭建并行計(jì)算集群環(huán)境;按照需要采集的車輛特征建立表結(jié)構(gòu),在表結(jié)構(gòu)中選取至少兩個(gè)特征作為主鍵,由主鍵組成一條卡口數(shù)據(jù)信息;對(duì)主鍵和常用查詢字段建立分布式可變索引,再針對(duì)車牌號(hào)建立分布式檢索索引;接入待存儲(chǔ)的各個(gè)卡口的過(guò)車信息數(shù)據(jù)源;用戶以包含索引的字段進(jìn)行查詢,系統(tǒng)在100m/s之內(nèi)返回相應(yīng)數(shù)據(jù)。滿足日常業(yè)務(wù)中卡口系統(tǒng)對(duì)海量過(guò)車信息數(shù)據(jù)存儲(chǔ)的需求,而且通過(guò)對(duì)過(guò)車信息的數(shù)據(jù)結(jié)構(gòu)的索引數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)實(shí)現(xiàn)了快速查詢的功能,大大提高了查詢速率,增強(qiáng)了用戶體驗(yàn)。
分布式存儲(chǔ);Hadoop分布式計(jì)算框架;海量過(guò)車信息
1.1系統(tǒng)架構(gòu)圖
1.2系統(tǒng)實(shí)現(xiàn)步驟
1)配置計(jì)算節(jié)點(diǎn)和數(shù)據(jù)節(jié)點(diǎn)服務(wù)器,搭建并行計(jì)算集群環(huán)境,安裝與集群環(huán)境版本匹配的數(shù)據(jù)訪問(wèn)中間件。
2)按照需要采集的車輛特征建立表結(jié)構(gòu),在表結(jié)構(gòu)中選取至少2個(gè)特征作為主鍵,由主鍵組成一條卡口數(shù)據(jù)信息。
3)對(duì)主鍵和常用查詢字段建立分布式可變索引,再針對(duì)車牌號(hào)建立分布式檢索索引。
4)接入待存儲(chǔ)的各個(gè)卡口的過(guò)車信息數(shù)據(jù)源。
2.1過(guò)車數(shù)量統(tǒng)計(jì)
卡口車輛通行數(shù)據(jù)的分布式存儲(chǔ)方法,其特征在于:設(shè)定定時(shí)任務(wù),自動(dòng)統(tǒng)計(jì)前一天各個(gè)卡口的過(guò)車數(shù)據(jù)總量。
2.2過(guò)車信息格式
卡口車輛通行數(shù)據(jù)的分布式存儲(chǔ)方法,其特征在于:將車牌號(hào)、通過(guò)時(shí)間、卡口編號(hào)這3個(gè)特征作為主鍵,由車牌號(hào)、通過(guò)時(shí)間和卡口編號(hào)共同組成一條能被用戶查詢到的卡口數(shù)據(jù)信息,卡口數(shù)據(jù)信息格式為:車牌號(hào)+通過(guò)時(shí)間取反+卡口編號(hào)。
2.3模糊查詢
卡口車輛通行數(shù)據(jù)的分布式存儲(chǔ)方法,其特征在于:用戶輸入一個(gè)車牌號(hào)的其中任意一段連續(xù)字符,便可通過(guò)分布式索引文件的查詢返回相似度最高的前20個(gè)車牌號(hào);返回車牌號(hào)之后,系統(tǒng)再根據(jù)相似度最高的車牌號(hào)列表進(jìn)行全字段的匹配查詢;車牌號(hào)的分布式索引存儲(chǔ)在大數(shù)據(jù)集群中的分布式文件系統(tǒng)中。
3.1配置計(jì)算節(jié)點(diǎn)和數(shù)據(jù)節(jié)點(diǎn)服務(wù)器
首先,配置計(jì)算節(jié)點(diǎn)和數(shù)據(jù)節(jié)點(diǎn)服務(wù)器,搭建并行計(jì)算集群環(huán)境,安裝與集群環(huán)境版本匹配的數(shù)據(jù)訪問(wèn)中間件,Apache Phoenix數(shù)據(jù)訪問(wèn)中間件把傳統(tǒng)數(shù)據(jù)庫(kù)的SQL語(yǔ)句編譯成HBase存儲(chǔ)所需要的操作語(yǔ)句,加快了開(kāi)發(fā)效率,降低了開(kāi)發(fā)難度;其次,按照需要采集的車輛特征建立表結(jié)構(gòu),在表結(jié)構(gòu)中選取至少兩個(gè)特征作為主鍵,由主鍵組成一條卡口數(shù)據(jù)信息。
3.2表結(jié)構(gòu)建立
如圖1所示,按照業(yè)務(wù)需求采集的車輛特征建立表結(jié)構(gòu),采集到字段有“車牌號(hào)”“通信時(shí)間”“卡口編號(hào)”,“車輛顏色”“車輛大小”“通行方向”“數(shù)據(jù)來(lái)源”等存儲(chǔ)字段;根據(jù)具體業(yè)務(wù)需求,整理需要持久化的所有數(shù)據(jù)信息字段,同時(shí)選取能夠唯一標(biāo)志一條記錄的字段作為主鍵,這里將車牌號(hào)、通過(guò)時(shí)間、卡口編號(hào)這3個(gè)特征作為主鍵,由車牌號(hào)、通過(guò)時(shí)間和卡口編號(hào)共同組成一條能被用戶查詢到的卡口數(shù)據(jù)信息。
3.3大數(shù)據(jù)集群配置
大數(shù)據(jù)集群運(yùn)行在Linux內(nèi)核的服務(wù)器,計(jì)算節(jié)點(diǎn)、備份計(jì)算節(jié)點(diǎn)和數(shù)據(jù)節(jié)點(diǎn)使用Hadoop分布式計(jì)算框架,采用HDFS的分布式文件系統(tǒng),利用MapReduce算法實(shí)現(xiàn)“分而治之”的計(jì)算模型,所有數(shù)據(jù)通過(guò)Phoenix中間件存儲(chǔ)在HBase數(shù)據(jù)庫(kù)內(nèi),整個(gè)Hadoop框架內(nèi)的計(jì)算轉(zhuǎn)發(fā)、監(jiān)控和策略決定都由ZooKeeper管理。
[1]Tom Wbite.hadoop權(quán)威指南第三版[M].北京:人民教育出版社,2014(7).
[2]涂子沛.大數(shù)據(jù)應(yīng)用實(shí)例[M].桂林:廣西師范大學(xué)出版社,2015(6).
TP31
A
1674-6708(2016)166-0074-01
郭旭,安徽四創(chuàng)電子股份有限公司。衛(wèi)彪,安徽四創(chuàng)電子股份有限公司。江建宇,安徽四創(chuàng)電子股份有限公司。