本發(fā)明涉及數(shù)據(jù)處理技術,特別涉及一種高效的海量輿情數(shù)據(jù)信息集群匹配方法。
背景技術:
:輿情信息,就是指在民眾社會政治態(tài)度的收集、整理、分析、報送、利用和反饋的信息運動過程中,用以客觀反映輿情狀態(tài)及其運動情況的資訊、消息、音信、情報、指令、數(shù)據(jù)和信號。目前,網(wǎng)上可以獲取很多互聯(lián)網(wǎng)輿情信息,這些輿情信息對于企業(yè)來說都非常重要;輿情信息的正負面、轉載量、閱讀量、傳播速度都時刻反應企業(yè)在公眾心目中的形象。但是互聯(lián)網(wǎng)輿情信息并沒有關聯(lián)是哪些企業(yè)發(fā)生負面輿論,所以很多企業(yè)都無法實時監(jiān)控本企業(yè)在當前時段所有的輿情信息。目前,企業(yè)數(shù)量眾多,而從網(wǎng)絡上爬取的互聯(lián)網(wǎng)輿情信息最多時達到每分鐘多達上百條,同時企業(yè)信息又分為企業(yè)全稱信息和企業(yè)簡稱信息,所以每條輿情信息都需要和這些企業(yè)的全稱信息匹配;同時每一條輿情包括標題、轉載量、內容等重要信息,而且大部分輿情信息有包含企業(yè)全稱或者企業(yè)簡稱的內容都在輿情文章的中部或者尾部,所以這對于企業(yè)名稱的匹配速度也是一大問題。而且匹配的速度必須嚴格控制在毫秒內,否則到最后會導致輿情信息堵塞,影響企業(yè)輿情信息的實時性。技術實現(xiàn)要素:為解決上述問題,本發(fā)明提供一種高效的海量輿情數(shù)據(jù)信息集群匹配方法,包括如下步驟:s100、將flume部署至各個輿情采集服務器上,并通過flume采集從互聯(lián)網(wǎng)爬取的輿情數(shù)據(jù)信息;s110、將從flume采集到的輿情數(shù)據(jù)信息存儲到kafka消息隊列中;s120、從kafka實時消費輿情數(shù)據(jù),并利用已部署的spark集群對輿情數(shù)據(jù)信息和企業(yè)信息進行實時匹配;s130、將匹配成功后的關聯(lián)數(shù)據(jù)信息展示到各個web系統(tǒng)上。進一步地,在步驟s110中將從flume采集到的輿情數(shù)據(jù)信息存儲到kafka消息隊列中,為了對企業(yè)輿情數(shù)據(jù)做離線數(shù)據(jù)分析,還包括:將從flume采集到的輿情數(shù)據(jù)信息同時存儲到hdfs消息隊列中。進一步地,在步驟s120中利用已部署的spark集群對輿情數(shù)據(jù)信息和企業(yè)信息進行實時匹配時,把所有企業(yè)信息均加載至spark內存中。進一步地,在步驟s120中利用已部署的spark集群對輿情數(shù)據(jù)信息和企業(yè)信息進行實時匹配時,若企業(yè)信息容量超過內存,則spark會保存至本地文件,再采用hash散列的算法把每個企業(yè)信息分發(fā)到不同的work中與輿情數(shù)據(jù)信息進行匹配。進一步地,在步驟s120中利用已部署的spark集群對匹配的輿情信息添加企業(yè)唯一標識,若匹配到多家企業(yè)則進行信息分裂,產(chǎn)生多筆關聯(lián)信息。進一步地,在對企業(yè)信息處理前,對企業(yè)信息數(shù)據(jù)進行清洗處理。進一步地,步驟s100中根據(jù)數(shù)據(jù)量動態(tài)調整輿情采集服務器的部署數(shù)量。本發(fā)明提供的高效的海量輿情數(shù)據(jù)信息集群匹配方法,搭建了一個集群匹配架構來解決時效性差和匹配速度慢等情況,所以采用集群匹配方式,是因為單臺服務器處理能力有限,所以匹配速度會很慢;而采用集群方式匹配時,可以把所有企業(yè)根據(jù)hash散列進行切分,然后分配到不同的服務器上,那么每個服務器所匹配的數(shù)量就相對減少,進而匹配速度和時效性就得到保障。測試結果表明,在采用該集群匹配方式后,從匹配速度、實時性上都有了很大的提高。附圖說明為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術中的技術方案,下面將對實施例或現(xiàn)有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1為本發(fā)明提供的高效的海量輿情數(shù)據(jù)信息集群匹配方法流程圖;圖2為本發(fā)明提供的高效的海量輿情數(shù)據(jù)信息集群匹配的架構示意圖。具體實施方式為使本發(fā)明實施例的目的、技術方案和優(yōu)點更加清楚,下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領域普通技術人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。本發(fā)明實施例提供一種高效的海量輿情數(shù)據(jù)信息集群匹配方法,如圖1和圖2所示,包括:s100、將flume部署至各個輿情采集服務器上,并通過flume采集從互聯(lián)網(wǎng)爬取的輿情數(shù)據(jù)信息;本步驟中,優(yōu)選地,可以根據(jù)數(shù)據(jù)量動態(tài)調整輿情采集服務器的部署數(shù)量,因為輿情數(shù)據(jù)可能存在很多臺服務器,所以配置多個agent收集不同服務器的輿情數(shù)據(jù),這里的agent可以動態(tài)增刪,以保證及時采集各個服務器爬取的輿情數(shù)據(jù);s110、將從flume采集到的輿情數(shù)據(jù)信息存儲到kafka消息隊列中;本步驟中,存儲在kafka消息隊列中的是實時數(shù)據(jù),如果處理離線數(shù)據(jù),則本步驟中還可以包括:將從flume采集到的輿情數(shù)據(jù)信息同時存儲到hdfs消息隊列中;保存至hdfs一份數(shù)據(jù),是因為在不同場景下(輿情的匹配信息不用實時顯示在web系統(tǒng)上時,可以采用離線的方式對數(shù)據(jù)進行分析,比如分析每個企業(yè)輿情的正負面的比率、分析輿情同比上個月和環(huán)比去年的數(shù)據(jù),這些都可以用離線分析),可以對企業(yè)輿情數(shù)據(jù)做離線數(shù)據(jù)分析,根據(jù)企業(yè)輿情信息的正負面、轉載量等信息分析企業(yè)的健康狀態(tài);保存至hdfs是可選的,具體可以參考是否需要用于離線數(shù)據(jù)分析。如果需要離線數(shù)據(jù)分析,需要把輿情數(shù)據(jù)保存至hdfs,然后可以用離線分析工具hive或者spark-sql進行離線數(shù)據(jù)分析,如果只是實時分析,可以直接省略保存至hdfs的步驟;存在kafka中的主要目的是為了防止某個時間段輿情數(shù)據(jù)過多,導致第三步匹配的時候無法及時匹配,從而導致過多輿情數(shù)據(jù)阻塞無法及時匹配成功,所以用一個消息隊列作為緩沖;s120、從kafka實時消費輿情數(shù)據(jù),并利用已部署的spark集群對輿情數(shù)據(jù)信息和企業(yè)信息進行實時匹配;選擇spark集群的原因主要是spark集群是基于內存的計算模型,所以在企業(yè)信息和輿情信息匹配時是在內存中完成,匹配速度會非???;優(yōu)選地,本步驟中,在利用已部署的spark集群對輿情數(shù)據(jù)信息和企業(yè)信息進行實時匹配時,可以把所有企業(yè)信息均加載至spark內存中,若企業(yè)信息容量超過內存,則spark會保存至本地文件;優(yōu)選地,本步驟中,在利用已部署的spark集群對輿情數(shù)據(jù)信息和企業(yè)信息進行實時匹配時,還可以采用hash散列的算法把每個企業(yè)信息分發(fā)到不同的work中與輿情數(shù)據(jù)信息進行匹配;為了匹配的精確度和速度提高,在上述步驟中,對企業(yè)信息處理前,對企業(yè)信息數(shù)據(jù)進行清洗處理,比如把企業(yè)全稱轉換成企業(yè)簡稱、清洗簡稱比較通用的詞語等清洗處理工作;s130、將匹配成功后的關聯(lián)數(shù)據(jù)信息展示到各個web系統(tǒng)上。為了進一步詳細解釋說明提供的方法,下面以一個具體的操作實例進行說明。測試的企業(yè)總量為360萬條,匹配的輿情信息為(一條輿情信息大概在5000字以上):xxx企業(yè)拖欠工資。步驟1:準備工作:需要5臺linux操作系統(tǒng)的物理機(最低配置5臺),配置為16g內存,6核。步驟2:把flume安裝至各個輿情采集服務器,然后配置source、channel、sink,其中sink配置為hdfs推送路徑和kafka推送路徑步驟3:安裝hadoop環(huán)境,兩臺安裝namenode,三臺安裝zookeeper,五臺安裝datanode,主要配置如表1所示:表1host1host2host3host4host5namenodenamenodezookeeperzookeeperzookeeperyarnmanageryarnmanagernodemanagernodemanagernodemanagerkafkakafkakafkadatanodedatanodedatanodemastermasterworkworkwork步驟4:安裝spark環(huán)境,并配置spark-streaming從kafak實時消費數(shù)據(jù)。步驟5:清洗企業(yè)目錄,主要工作是把企業(yè)全稱轉換成企業(yè)簡稱,比如包括“有限公司”、“集團”、“xxx市”等詞語的公司通過正則轉換成企業(yè)簡稱。步驟6:手工清洗簡稱比較通用的詞語,比如“xxx市之所以公司”,這個簡稱是“之所以”,這樣如果用簡稱匹配輿情信息就會出現(xiàn)很多錯誤的匹配,所以對于這種簡稱,需要維護一個數(shù)據(jù),讓這些企業(yè)排除在外。步驟7:開始匹配時,需要把所有企業(yè)都加載到spark內存中,如果企業(yè)信息超過內存,spark會保存至本地文件,再采用hash散列的算法把每個企業(yè)分發(fā)到不同的work中,這樣在匹配的時候每個work匹配的企業(yè)輿情信息就比較均衡。經(jīng)過步驟1~7,采用集群進行企業(yè)和輿情信息匹配和傳統(tǒng)的單機匹配效果對比如表2所示:表2匹配速度是否會內存溢出是否能實時匹配集群匹配0.1~0.5秒否是單機匹配6~15秒是否根據(jù)測試結果,在采用集群匹配方式后,無論從匹配速度、實時性上都有了很大的提高。最后應說明的是:以上各實施例僅用以說明本發(fā)明的技術方案,而非對其限制;盡管參照前述各實施例對本發(fā)明進行了詳細的說明,本領域的普通技術人員應當理解:其依然可以對前述各實施例所記載的技術方案進行修改,或者對其中部分或者全部技術特征進行等同替換;而這些修改或者替換,并不使相應技術方案的本質脫離本發(fā)明各實施例技術方案的范圍。當前第1頁12