■文/自貢市公安局 張亮 陳小松
隨著視頻監(jiān)控系統(tǒng)的不斷建設(shè),監(jiān)控數(shù)據(jù)量呈現(xiàn)指數(shù)級的爆炸式增加,特別是隨著基于深度學(xué)習(xí)的視頻智能分析技術(shù)的快速發(fā)展,有關(guān)車輛、人臉/人像等的結(jié)構(gòu)化描述信息呈現(xiàn)指數(shù)級的爆炸式增加。同時,視頻大數(shù)據(jù)具有有別于互聯(lián)網(wǎng)大數(shù)據(jù)的特點(diǎn),如視頻大數(shù)據(jù)的海量循環(huán)覆寫、模糊查詢、百級甚至千億級記錄查詢的近實(shí)時時延要求等。關(guān)系型數(shù)據(jù)庫已經(jīng)遠(yuǎn)遠(yuǎn)不能滿足監(jiān)控系統(tǒng)大容量、高效快速的業(yè)務(wù)需求,近年來發(fā)展起來的大數(shù)據(jù)技術(shù)的出現(xiàn)為解決這個問題提供了可能,成為替代現(xiàn)有產(chǎn)品的不二選擇。
目前,大數(shù)據(jù)領(lǐng)域相關(guān)產(chǎn)品大多都是開源的,也有越來越多優(yōu)秀的大數(shù)據(jù)相關(guān)產(chǎn)品不斷的開源出來。在使用開源的大數(shù)據(jù)產(chǎn)品時,對于產(chǎn)品的使用管理和維護(hù)優(yōu)化也可能存在一系列問題。在大數(shù)據(jù)平臺使用過程中,對于數(shù)據(jù)的管理,要么是專業(yè)人員以命令行的方式進(jìn)行管理,要么是管理功能分散存在各個部件之中不能統(tǒng)一,并沒有一個專門的對大數(shù)據(jù)平臺上的數(shù)據(jù)進(jìn)行管理的軟件或平臺。大數(shù)據(jù)平臺產(chǎn)品的使用人員想要了解或者管理平臺之上存儲的數(shù)據(jù),只能求助于專業(yè)人員,這無疑對公安機(jī)關(guān)公共安全視頻監(jiān)控系統(tǒng)的運(yùn)維造成諸多不便和隱患。
同時,對于沒有接觸過大數(shù)據(jù)技術(shù)的人員,不論是研發(fā)人員還是運(yùn)維管理人員,想要熟練的使用大數(shù)據(jù)方面的類數(shù)據(jù)庫產(chǎn)品,都存在一定的技術(shù)門檻。這就需要對相關(guān)人員進(jìn)行專門的培訓(xùn),甚至需要多次的業(yè)務(wù)培訓(xùn)。這些人員對于關(guān)系型數(shù)據(jù)庫Oracle、Mysql等可能非常熟悉,可以熟練的通過關(guān)系型數(shù)據(jù)庫的各種客戶端或者命令,對數(shù)據(jù)庫進(jìn)行各種操作,查看數(shù)據(jù)庫中的表結(jié)構(gòu)及表中的各種數(shù)據(jù),執(zhí)行各種sql語句等。
因此,通過對視頻安防監(jiān)控領(lǐng)域需要的大數(shù)據(jù)技術(shù)和功能的研究,建設(shè)統(tǒng)一大數(shù)據(jù)管理平臺,有效整合各類信息資源,通過可視化、圖形化方式對大數(shù)據(jù)平臺資源進(jìn)行管理,填補(bǔ)大數(shù)據(jù)方面數(shù)據(jù)管理平臺缺失的空白,是亟需解決的問題。針對視頻監(jiān)控的視頻大數(shù)據(jù)運(yùn)維管理平臺對公安一線運(yùn)維管理人員來說是十分必要的。
目前行業(yè)內(nèi),使用開源的Hadoop平臺主要為HDP、CDH兩種,HDP是由Hortonworks公司發(fā)行的Hadoop版本,CDH是由Cloudera公司發(fā)行的Hadoop版本。CDH版本基于原生Apache Hadoop版本進(jìn)行改進(jìn),添加了補(bǔ)丁和自行開發(fā)的組件,更加穩(wěn)定易用。CDH通過CM(Cloudera Manager)進(jìn)行可視化安裝,采用parcel包方式安裝,便于后期升級維護(hù)。由于HBase不支持SQL方式的查詢,但是使用HBase提供的API,對開發(fā)人員的要求比較高,為了能讓HBase支持SQL訪問,可以使用HIVE和HBase集群的方式,達(dá)到使用JDBC訪問HBase的目的。HBase本身不支持二級索引,但使用HBase的Coprocessor技術(shù),選擇Observer框架,類似于Oracle的觸發(fā)器,實(shí)現(xiàn)了二級索引。
公安的視頻大數(shù)據(jù)業(yè)務(wù)應(yīng)用對于模糊查詢的需求比較多,這并不是Hadoop平臺的強(qiáng)項(xiàng),應(yīng)用ElasticSearch(ES)作為全文搜索的平臺,解決模糊查詢的問題。ES是一個實(shí)時的分布式搜索引擎。ES使用Lucene作為內(nèi)部引擎,但是在使用它做全文搜索時,只需要使用統(tǒng)一開發(fā)好的API即可,而不需要了解其背后復(fù)雜的Lucene的運(yùn)行原理。為了讓普通的開發(fā)人員都能進(jìn)行開發(fā),在ES之上封裝了支持SQL語句的ESSQL,開發(fā)人員只需要通過SQL語句就能訪問ES集群。
大數(shù)據(jù)平臺架構(gòu)如下圖所示:
圖1 大數(shù)據(jù)平臺架構(gòu)
其中:
● 分析集群為CDH5.5集群。
● 搜索集群為ES集群。
● 數(shù)據(jù)匯聚為Kafka和Sparkstreaming協(xié)同工作,實(shí)現(xiàn)ES和HBase的數(shù)據(jù)匯聚,部署在CDH5.5集群內(nèi)。
● ESSQL為專門開發(fā)的ES集群的SQL接口,部署在ES集群。
● 數(shù)據(jù)抽取ETL(“Extract”、“ Transform” 、“Load”的縮寫)云采集為Flume和Kettle協(xié)同工作,部署在CDH5.5集群內(nèi)。
● MR(MapReduce)和Spark都部署在CDH5.5集群內(nèi)。
本文提出的視頻大數(shù)據(jù)運(yùn)維管理平臺是在上述大數(shù)據(jù)平臺架構(gòu)基礎(chǔ)進(jìn)行設(shè)計的。
視頻大數(shù)據(jù)運(yùn)維管理平臺主要解決以下問題:
● 可視化的集群狀態(tài)監(jiān)控,能明顯減輕運(yùn)維人員運(yùn)維壓力。
● 能實(shí)時了解到集群的運(yùn)行情況,對異常問題及時做出有效的處理。
● 降低運(yùn)維人員維護(hù)集群的技術(shù)要求,對集群的增、刪、改、查都做到了可視化操作。
● 大集群的維護(hù)無需投入更多的人力,通過遠(yuǎn)程操作的方式就可以維護(hù)集群。
視頻大數(shù)據(jù)運(yùn)維管理平臺的主要功能如下圖所示:
圖2 視頻大數(shù)據(jù)運(yùn)維管理平臺的主要功能
視頻大數(shù)據(jù)運(yùn)維管理平臺主要由反應(yīng)集群概況的儀表盤、Hadoop集群管理、ES集群管理、應(yīng)用管理、系統(tǒng)管理等功能模塊組成。
圖3 運(yùn)維管理系統(tǒng)總體功能
總體功能上:
1)ZooKeeper:通過圖標(biāo)動態(tài)顯示ZooKeeper集群已用cpu內(nèi)核信息。
2)HDFS:顯示HDFS的數(shù)據(jù)總量和配置的容量。
3)YARN:通過動態(tài)圖顯示正在運(yùn)行的應(yīng)用程序。
4)Oozie:通過動態(tài)圖顯示每個時間運(yùn)行的作業(yè)。
5)Sqoop:通過動態(tài)圖顯示每個時間觸發(fā)的導(dǎo)入操作。
6)ElasticSearch:當(dāng)前ES總空間、已用空間、剩余空間、總表數(shù)、總記錄數(shù)。
圖4 Hadoop集群管理頁面
能夠在頁面上顯示當(dāng)前平臺安裝的部件,同時顯示整個集群的cpu、集群磁盤io、集群網(wǎng)絡(luò)io和HDFS io。
1)ZooKeeper:已用CPU、運(yùn)行狀況等相關(guān)圖表信息。
2)YARN:正在運(yùn)行的應(yīng)用程序(累計)、失敗的應(yīng)用程序(累計)、已停止的應(yīng)用程序(累計)等相關(guān)圖表信息。
3)Hbase:各個Region Servers總區(qū)域、讀寫請求、運(yùn)行狀況等等相關(guān)圖表信息。
4)HDFS:HDFS容量、已用的cpu內(nèi)核、各個DataNodes中總寫入的字節(jié)等相關(guān)圖表信息。
5)Hive:已用CPU內(nèi)核、運(yùn)行狀況相關(guān)圖表信息。
6)Spark:主機(jī)CPU、駐留內(nèi)存等圖表信息。
Hadoop集群啟動、停止和增加各個部件節(jié)點(diǎn),對Hadoop的各個部件下的各個節(jié)點(diǎn)可以啟動、停止和增加節(jié)點(diǎn)。具體業(yè)務(wù)邏輯如下:
1)集群節(jié)點(diǎn)增加,各個基本信息驗(yàn)證通過后需要下載必要的安裝包,以便安裝部件節(jié)點(diǎn)使用。
2)部件節(jié)點(diǎn)增加時,基本信息驗(yàn)證通過后需要安裝對應(yīng)的包和設(shè)置基本配置信息。
導(dǎo)入數(shù)據(jù)量通過圖表的方式呈現(xiàn):
通過動態(tài)圖表分別顯示導(dǎo)入到ES和Hbase每個時刻的數(shù)據(jù)量,不僅可以顯示當(dāng)前導(dǎo)入數(shù)據(jù)情況而且可以顯示過去1小時、3小時、6小時、1天以來的導(dǎo)入數(shù)據(jù)情況,同時顯示通過平臺導(dǎo)入數(shù)據(jù)的總量。
對平臺中運(yùn)行的MR任務(wù)和Spark任務(wù)實(shí)時監(jiān)控,顯示當(dāng)前平臺已經(jīng)運(yùn)行和正在運(yùn)行了MR和Spark任務(wù)。
對已安裝的各個部件配置進(jìn)行修改, 各個部件根據(jù)各自情況只提供關(guān)鍵信息進(jìn)行修改,通過鍵-值對的方式顯示,當(dāng)配置信息過多需分頁顯示。
圖5 ES集群管理頁面
在運(yùn)維系統(tǒng)可以控制ES集群的停止、啟動、刪除和增加節(jié)點(diǎn)。
1)停止、啟動和刪除直接通過java執(zhí)行遠(yuǎn)程shell腳本來控制,刪除時需要在ES節(jié)點(diǎn)表刪除該節(jié)點(diǎn)的地址信息。
2)增加新的節(jié)點(diǎn)時需要做ES基本配置信息的驗(yàn)證,驗(yàn)證通過該節(jié)點(diǎn)才能夠加入到ES集群中,同時對加入集群成功的節(jié)點(diǎn)需在ES節(jié)點(diǎn)表里增加該節(jié)點(diǎn)的相關(guān)信息。
對ES集群里每個節(jié)點(diǎn)的運(yùn)行狀況都可以監(jiān)控,具體功能如下:
1)通過圖表的方式顯示CPU、內(nèi)存、硬盤、jvm信息。
2)當(dāng)集群里機(jī)器CPU、jvm使用持續(xù)超過警戒值需要通過郵件的方式通知給相關(guān)人員,每一項(xiàng)的閥值在數(shù)據(jù)庫里進(jìn)行設(shè)置。
圖6 ES集群監(jiān)控頁面
在頁面輸入框顯示每個配置信息對應(yīng)的數(shù)據(jù)信息并支持修改,修改后的信息保存成功后直接同步到集群上,修改的配置信息需要重啟ES部件才能生效。
監(jiān)控在視頻大數(shù)據(jù)集群中實(shí)現(xiàn)的所有應(yīng)用模塊的運(yùn)行狀態(tài)。
通過選擇頁面查詢條件,測試當(dāng)前搭建的ES大數(shù)據(jù)平臺的搜索性能。傳統(tǒng)測試ES搜索性是直接通過調(diào)用ES提供的接口測試,這種方式對于不熟悉ES接口的開發(fā)人員編寫測試代碼不方便,增加編寫測試用例難度。
圖7 應(yīng)用監(jiān)控頁面
圖8 性能測試頁面
管理大數(shù)據(jù)運(yùn)維平臺和數(shù)據(jù)平臺系統(tǒng)中的用戶,新建用戶時可以給用戶賦角色,此時用戶就會擁有該角色下的操作權(quán)限,還可以對用戶的密碼、角色進(jìn)行修改。
權(quán)限管理顯示當(dāng)前系統(tǒng)中各種用戶角色,角色跟系統(tǒng)操作權(quán)限進(jìn)行綁定,某個角色賦予運(yùn)維平臺系統(tǒng)權(quán)限時,擁有該角色的用戶就可以擁有對應(yīng)系統(tǒng)權(quán)限。角色管理只控制系統(tǒng)級別,根據(jù)需要也可以控制到系統(tǒng)下級菜單,實(shí)現(xiàn)更精細(xì)的權(quán)限控制。
管理人員可以查看大數(shù)據(jù)平臺已安裝的部件的運(yùn)行日志信息,具體包含以下功能:
1)在系統(tǒng)中選擇部件名稱就可以看到對應(yīng)部件下的日志信息。
2)對于系統(tǒng)中出現(xiàn)的error日志,系統(tǒng)會定時將報錯信息通過郵件的方式發(fā)送給相關(guān)人員。
可以對系統(tǒng)的郵件新增、修改、刪除操作,這里配置的郵件信息以供系統(tǒng)中發(fā)送郵件使用。
本系統(tǒng)投入使用近后將大大提高系統(tǒng)的運(yùn)維效率。通過運(yùn)維管理平臺的監(jiān)測,實(shí)現(xiàn)了更加優(yōu)化的大數(shù)據(jù)計算性能,動態(tài)調(diào)整計算資源,確保重點(diǎn)類型的數(shù)據(jù)具有足夠的處理能力,保障了視頻大數(shù)據(jù)系統(tǒng)的正常穩(wěn)定,有效地支撐了構(gòu)建在該基礎(chǔ)上的視頻圖像信息實(shí)戰(zhàn)應(yīng)用系統(tǒng)的高效運(yùn)行。
[1]楊巨龍.大數(shù)據(jù)技術(shù)全解 基礎(chǔ)、設(shè)計、開發(fā)與實(shí)踐[M].北京:電子工業(yè)出版社.2015.
[2]朱潔,羅華霖.大數(shù)據(jù)架構(gòu)詳解:從數(shù)據(jù)獲取到深度學(xué)習(xí)[M].北京:電子工業(yè)出版社.2016.
[3]王家林.大數(shù)據(jù)Spark企業(yè)級實(shí)戰(zhàn)[M].北京:電子工業(yè)出版社.2015.