摘要:
摘要: 研究產(chǎn)品相關(guān)大數(shù)據(jù)資源組織存儲與檢索查詢技術(shù),提出在Hadoop平臺基礎(chǔ)上對產(chǎn)品大數(shù)據(jù)資源進行分塊存儲?;贛apReduce并行架構(gòu)模型,提出多副本一致性Hash數(shù)據(jù)存儲算法,算法充分考慮了數(shù)據(jù)的相關(guān)性和時空屬性,并優(yōu)化了Hadoop平臺的數(shù)據(jù)劃分策略和數(shù)據(jù)塊規(guī)格調(diào)整。通過對數(shù)據(jù)的優(yōu)化存儲布局,采用多源并行連接檢索方法和多通道數(shù)據(jù)融合特征提取技術(shù)實現(xiàn)產(chǎn)品大數(shù)據(jù)信息檢索,提高了數(shù)據(jù)資源管理效率。實驗表明和標準Hadoop方案比較,多源并行連接數(shù)據(jù)檢索的執(zhí)行時間為其31.9%。
1. 引言
計算機的發(fā)展和網(wǎng)絡(luò)通信技術(shù)日趨成熟,數(shù)據(jù)規(guī)模的增長在給人們帶來便利生活的同時也讓從大量數(shù)據(jù)中汲取有用信息變得困難,如何從中檢索到有用數(shù)據(jù)是目前需要面對的重要問題 [1] [2] [3]。其中有產(chǎn)品相關(guān)的數(shù)據(jù)資源包含生產(chǎn)車間監(jiān)測視頻圖像及產(chǎn)品相關(guān)數(shù)據(jù)及文檔、物料跟蹤數(shù)據(jù)、加工數(shù)據(jù)、生產(chǎn)流通數(shù)據(jù)等,其存在著數(shù)據(jù)資源規(guī)模大,種類多,來源不同且分散分布的特點 [4] [5] [6]。傳統(tǒng)的分布式數(shù)據(jù)庫受數(shù)據(jù)庫存儲能力限制,存在著架構(gòu)存儲能力有限,對數(shù)據(jù)的管理與發(fā)布支持相對較弱,管理效率低的問題 [7] [8] [9]。
目前,針對傳統(tǒng)分布式數(shù)據(jù)庫存在的問題,龐書杰 [10] 提出了一種基于Hash的關(guān)聯(lián)規(guī)則并行優(yōu)化算法(HP-AR),通過對數(shù)據(jù)庫統(tǒng)計頻繁項集部分的并行處理結(jié)合輔助Hash表簡化挖掘過程滿足了面對大規(guī)模數(shù)據(jù)集時挖掘隱藏關(guān)聯(lián)規(guī)則的需求。潘俊輝等學者 [11] 針對基本算法Apriori的改進,提出了一種基于壓縮矩陣的優(yōu)化算法,該算法使用MapReduce計算模型對數(shù)據(jù)庫進行分塊,之后對數(shù)據(jù)庫的關(guān)聯(lián)規(guī)則的挖掘結(jié)果進行合并,得出頻繁項集。Aisha Siddiqa等學者 [12] 為了評估不同存儲架構(gòu)的性能,使用Brewer的CAP定理比較和分析了現(xiàn)有方法,提出了一種定義明確的大數(shù)據(jù)存儲技術(shù)分類法。
本文針對目前存在的數(shù)據(jù)管理效率低、檢索速度慢等問題基于Hadoop平臺,結(jié)合分布式、分層結(jié)構(gòu)的存儲優(yōu)化和并行處理等技術(shù),提出了一種多副本一致性Hash數(shù)據(jù)存儲算法,將數(shù)據(jù)集中的數(shù)據(jù)按照相關(guān)性以及時空屬性進行分塊處理,提高了數(shù)據(jù)處理的效率。同時在Hadoop MapReduce并行框架的基礎(chǔ)上,設(shè)計了一種多源并行連接數(shù)據(jù)檢索算法,實驗結(jié)果表明,同傳統(tǒng)Hadoop方案相比,多源并行連接數(shù)據(jù)檢索算法的運行速度明顯加快。
2. 產(chǎn)品大數(shù)據(jù)存儲優(yōu)化研究
2.1. 數(shù)據(jù)存儲及數(shù)據(jù)分布策略
基于數(shù)據(jù)相關(guān)性的多副本一致性Hash數(shù)據(jù)存儲算法(Multi-copy Consistency Hash Algorithm Based on Data Correlation, CMCHA),進行Hadoop的數(shù)據(jù)布局優(yōu)化,優(yōu)化技術(shù)路線:盡可能集中存儲相關(guān)聯(lián)的數(shù)據(jù),數(shù)據(jù)檢索和分析時在映射階段完成主要工作,使由映射端到約減端數(shù)據(jù)通信負載消耗降低,系統(tǒng)整體數(shù)據(jù)檢索和分析性能得到提高。每種跟蹤過程數(shù)據(jù)的類型和格式不同,可將數(shù)據(jù)的具體采集位置和時間作為數(shù)據(jù)檢索和分析時的關(guān)鍵字。
通常Hadoop平臺將數(shù)據(jù)存儲為3個副本,一份在本地,一份在同機架內(nèi)不同節(jié)點上,一份在不同機架的某一節(jié)點上。為減少整體數(shù)據(jù)傳輸帶寬消耗和數(shù)據(jù)讀取時間延時,HDFS讓讀取應(yīng)用程序讀取距離它最近的副本數(shù)據(jù)。
存儲算法考慮如下3方面的相關(guān)性:數(shù)據(jù)采集地點相關(guān)性、數(shù)據(jù)采集時間相關(guān)性和自定義數(shù)據(jù)相關(guān)性。利用一致性Hash算法,按照采集地點編號對數(shù)據(jù)副本1進行Hash映射;按照采集時間戳對數(shù)據(jù)副本2進行Hash映射;相關(guān)系數(shù)作為跟蹤過程數(shù)據(jù)的一個重要屬性,按照自定義相關(guān)系數(shù)對數(shù)據(jù)副本3進行Hash映射,實現(xiàn)不同的數(shù)據(jù)查詢和數(shù)據(jù)分析需求。根據(jù)應(yīng)用系統(tǒng)需要自定義數(shù)據(jù)相關(guān)性,給相關(guān)系數(shù)賦值,算法設(shè)計過程中構(gòu)建配置流程如圖1所示的Hash環(huán)。
Figure 1. CMCHA flow
圖1. CMCHA算法流程
步驟1:通過配置文件預定義跟蹤過程數(shù)據(jù)的相關(guān)系數(shù)以及冗余的副本數(shù)量,定義冗余副本數(shù)量為3;
步驟2:計算集群中每個數(shù)據(jù)節(jié)點的Hash值,配置到0~232的Hash環(huán)區(qū)間上;
步驟3:基于跟蹤過程數(shù)據(jù)的時間及空間屬性和相關(guān)系數(shù)計算數(shù)據(jù)的Hash值。根據(jù)數(shù)據(jù)來源位置ID,在云平臺下對第1份副本數(shù)據(jù)①,計算Hash值1,映射到Hash環(huán)上;對第2份數(shù)據(jù)②,根據(jù)跟蹤過程數(shù)據(jù)的采集時間戳,計算Hash值2,并映射到Hash環(huán)上。對第3份數(shù)據(jù)③,根據(jù)數(shù)據(jù)的相關(guān)系數(shù)計算其Hash值3,并映射到Hash環(huán)上。可配置大于3的副本數(shù)量,交替按照這3種方式計算其Hash值i,并依次映射到Hash環(huán)上,滿足更高的數(shù)據(jù)存儲可靠性;
步驟4:確定數(shù)據(jù)的存儲位置,根據(jù)數(shù)據(jù)Hash值和數(shù)據(jù)節(jié)點Hash值在CMCHA算法配置流程圖中按順時針方向?qū)?shù)據(jù)映射到距離其最近的節(jié)點(如將數(shù)據(jù)①映射到節(jié)點A上);
步驟5:如果節(jié)點空間不足或在映射過程出現(xiàn)異常,則跳過該節(jié)點尋找下一個存放節(jié)點。
2.2. 數(shù)據(jù)存儲優(yōu)化研究
按照所屬大文件,所有分塊數(shù)據(jù)存儲為一個文件,分塊數(shù)據(jù)基于Hadoop分布式存儲調(diào)度策略,被分散存放在不同的分布式存儲節(jié)點上,每個分塊數(shù)據(jù)設(shè)置相應(yīng)的存儲副本率,為便于數(shù)據(jù)檢索該存儲策略另外定義和維護分塊數(shù)據(jù)的索引鍵名。
每個大文件包含的每個分塊數(shù)據(jù)通過< key, value >記錄形式存儲到HDFS中,記為< Blk-ID, Data >,數(shù)據(jù)類型為< int, byte[] >,Blk-ID表示數(shù)據(jù)分塊順序號,Data表示數(shù)據(jù)分塊的二進制數(shù)據(jù),通過給定的Blk-ID可得到對應(yīng)數(shù)據(jù)分塊的二進制字節(jié)數(shù)據(jù)。大文件數(shù)據(jù)分塊存儲方法如圖2。
HDFS的設(shè)計目標是存儲大文件,其數(shù)據(jù)塊規(guī)格默認為64 MB,遠大于512B的物理磁盤的塊大小。HDFS文件訪問時間主要包括系統(tǒng)尋址時間和數(shù)據(jù)傳輸時間,文件傳輸效率 ηeffectηeffect 計算公式如下:
Figure 2. Block storage process of large file
圖2. 大文件分塊存儲流程
其中, tttt 表示數(shù)據(jù)傳輸時間, tt=Sblockvtt=Sblockv; tsts 表示系統(tǒng)尋址時間; SblockSblock 表示數(shù)據(jù)塊規(guī)格; vv 表示數(shù)據(jù)傳輸速度。
從(1)可看出 ηeffectηeffect 小于1。通常在數(shù)據(jù)分布和索引方法確定情況下, tsts 和 vv 是確定的值,要提高 ηeffectηeffect 應(yīng)增加 SblockSblock。在HDFS中,通過dfs.block.size參數(shù)設(shè)置數(shù)據(jù)塊 SblockSblock 的規(guī)格。如果規(guī)格設(shè)置過大會降低系統(tǒng)負載均衡性,在調(diào)整數(shù)據(jù)塊的規(guī)格時應(yīng)綜合考慮進入系統(tǒng)的數(shù)據(jù)規(guī)模、數(shù)據(jù)傳輸率和負載均衡性。
3. 數(shù)據(jù)多源并行連接檢索
產(chǎn)品數(shù)據(jù)跟蹤管理系統(tǒng)對在線監(jiān)測的多個監(jiān)測點以及相關(guān)參數(shù)進行綜合檢索,查詢條件是監(jiān)測位置ID、采樣時間或位置和時間聯(lián)合條件等。檢索內(nèi)容包括位置信息(數(shù)據(jù)采集點設(shè)備名稱、設(shè)備運行時間、采集位置等)、環(huán)境信息(生產(chǎn)車間的溫度、濕度、氣壓等)、生產(chǎn)數(shù)據(jù)(捕撈時間、捕撈批次、數(shù)量等)等多源數(shù)據(jù),需要將不同來源的數(shù)據(jù)進行數(shù)據(jù)連接。如在產(chǎn)品加工過程質(zhì)量控制參數(shù)的綜合檢索過程中需要連接3個數(shù)據(jù)文件:1) 加工過程數(shù)據(jù)文件(表1),其中采樣批次即為產(chǎn)品批次碼;2) 質(zhì)量控制參數(shù)檢測數(shù)據(jù)文件(表2);3) 檢測環(huán)境文件(表3),其中檢測位置編碼代表“車間–工段–班組–工位”。按時間進行的綜合查詢生成在2020年3月14日9:00~9:20的綜合檢測結(jié)果數(shù)據(jù),形成質(zhì)量檢測數(shù)據(jù)列表,包括位置信息和環(huán)境信息。此過程需要將3個數(shù)據(jù)文件按照查詢條件進行連接,形成滿足綜合查詢要求的查詢結(jié)果數(shù)據(jù)列表,如表4。
位置ID | 采集時間 | 采樣批次 |
DL082 | 2020-03-14 9:08 | 202003140103100 |
DL083 | 2020-03-14 9:18 | 202003140103300 |
DL081 | 2020-03-14 9:10 | 202003140103200 |
Table 1. Processing data file
表1. 加工過程數(shù)據(jù)文件
位置 | 采集時間 | 采樣批次 | 采樣信息 |
DL083 | 2020-03-14 9:10 | 202003140103200 | 31.9/7.58/50.2 |
DL081 | 2020-03-14 9:00 | 202003140103300 | 32.5/7.55/50.5 |
DL082 | 2020-03-14 9:08 | 202003140103100 | 32.2/7.57/50.4 |
DL082 | 2020-03-17 9:00 | 202003140103100 | 11.7/10.1/62.2 |
Table 2. Quality inspection data file
表2. 質(zhì)量參數(shù)檢測數(shù)據(jù)文件
位置ID | 檢測位置 | 采集時間 | 溫度℃ | 濕度 |
DL081 | ZZ01-I-02-B | 2017-03-14 8:00 | 39 | 65 |
DL082 | ZZ01-I-02-A1 | 2017-03-14 8:10 | 38 | 63 |
DL083 | ZZ02-II-01-A1 | 2017-03-14 8:11 | 38 | 59 |
Table 3. Detection position data file
表3. 檢測環(huán)境數(shù)據(jù)文件
位置ID | 檢測位置 | 采集時間 | 溫度/℃ | 濕度 | 采樣批次 | 采樣信息 |
DL081 | ZZ01-A-026-B | 2017-03-14 9:00 | 39 | 65 | 201703140103300 | 32.5/7.55/50.5 |
DL082 | ZZ01-A-026-A1 | 2017-03-14 9:08 | 38 | 63 | 201703140103100 | 32.2/7.57/50.4 |
DL083 | ZZ02-B-017-A1 | 2017-03-14 9:10 | 38 | 59 | 201703140103200 | 31.9/7.58/50.2 |
Table 4. Results of date join
表4. 數(shù)據(jù)連接結(jié)果
按照數(shù)據(jù)檢索需求和數(shù)據(jù)格式描述,設(shè)計并行過濾連接檢索算法,算法在映射端執(zhí)行,設(shè)計的主要依據(jù)是為節(jié)省網(wǎng)絡(luò)流量傳輸,提高檢索效率,過濾和連接在映射過程進行,避免要執(zhí)行的檢索操作在約減過程進行。為使數(shù)據(jù)連接時所需數(shù)據(jù)聚集到同一個數(shù)據(jù)節(jié)點,采用基于數(shù)據(jù)相關(guān)性的多副本一致性Hash算法進行數(shù)據(jù)分布。算法流程:1) 根據(jù)檢索條件過濾掉不符合檢索條件的數(shù)據(jù);2) 根據(jù)連接檢索需求,確定數(shù)據(jù)連接的組鍵(group key):檢測位置ID、時間戳或相關(guān)系數(shù);3) 用數(shù)據(jù)文件名作為標簽,標記各數(shù)據(jù)源的各個記錄;4) 將相同屬性值的記錄根據(jù)連接組鍵劃分到一組,按照檢索條件進行數(shù)據(jù)連接。
數(shù)據(jù)進行優(yōu)化存儲分布之后進入數(shù)據(jù)連接映射階段,此階段在本地節(jié)點進行相應(yīng)任務(wù)操作,結(jié)果傳輸?shù)紿DFS,數(shù)據(jù)的優(yōu)化分布及映射端連接模式流程如圖3所示。
Figure 3. Optimized data distribution and map data join mode
圖3. 數(shù)據(jù)的優(yōu)化分布及映射端數(shù)據(jù)連接模式
4. 算例驗證
4.1. Hadoop平臺建設(shè)
采用10節(jié)點即10臺服務(wù)器建設(shè)Hadoop集群平臺,指定集群中一個節(jié)點為NameNode,指定另一臺不同的節(jié)點為JobTracker,均是主控節(jié)點。余下節(jié)點為客戶端,作為DataNode也作為TaskTracker。操作系統(tǒng)采用Windows;部署:虛擬機軟件Vmvare;Vmvare安裝好一臺Windows虛擬機后,導出或者克隆出另外兩臺虛擬機,連接為橋連,確保虛擬機和主機ip地址在同一個ip段內(nèi),可以相互通信。設(shè)置數(shù)據(jù)塊規(guī)格為64 MB,對應(yīng)4個CPU內(nèi)核,各計算節(jié)點都分配4個任務(wù)網(wǎng)格,其中3個為映射計算任務(wù)網(wǎng)格,1個為約減計算任務(wù)網(wǎng)格。對集群的整體數(shù)據(jù)傳輸性能進行基準測試。
4.2. 算法性能驗證
為測試數(shù)據(jù)存儲分布優(yōu)化后多源連接檢索查詢算法的性能,將前述針對產(chǎn)品大數(shù)據(jù)連接算法和基于標準Hadoop平臺的連接算法進行分析比對驗證。分析使用實驗室研發(fā)的“產(chǎn)品大數(shù)據(jù)追溯系統(tǒng)”中采集存儲的數(shù)據(jù)集,如表5。
文件名 | 副本數(shù) | 文件大小 | 占用空間 | 記錄數(shù) |
加工過程 | 3 | 627 kB | 1881 kB | 1910 |
質(zhì)量檢測 | 3 | 370 GB | 1110 GB | 13.62 M |
檢測環(huán)境 | 3 | 215 MB | 645 MB | 4175 |
Table 5. Real data set for join query
表5. 算法驗證真實數(shù)據(jù)集
1) 多源并行連接檢索運行時間變化趨勢
選擇3種典型連接查詢條件進行基于CMCHA多源并行連接檢索查詢算法的運行測試,記錄每種條件下算法的運行時間。查詢結(jié)構(gòu)化語言SQL語句的描述如表6。
類型 | 條件 | 查詢語句 |
全連接 | 不設(shè)置 |
Select位置ID,檢測位置,采集時間,溫度,濕度,采樣批次,采樣信息 From加工過程,質(zhì)量參數(shù)檢測,檢測環(huán)境 Where加工過程,位置ID = 質(zhì)量參數(shù)檢測,位置ID = 檢測環(huán)境,位置ID |
位置條件 連接 |
檢測 工位 |
Select位置ID,檢測位置,采集時間,溫度,濕度,采樣批次,采樣信息 From加工過程,質(zhì)量參數(shù)檢測,檢測環(huán)境 Where加工過程,位置ID = 質(zhì)量參數(shù)檢測,位置ID = 檢測環(huán)境,位置ID and位置ID between [ID1, IDn] |
時間條件 連接 | 時間 |
Select位置ID,檢測位置,采集時間,溫度,濕度,采樣批次,采樣信息 From加工過程,質(zhì)量參數(shù)檢測,檢測環(huán)境 Where加工過程,位置ID = 質(zhì)量參數(shù)檢測,位置ID = 檢測環(huán)境,位置ID and采集時間between [T1, Tn] |
Table 6. SQL description of join query
表6. 連接查詢實驗類SQL描述
實驗過程中在數(shù)據(jù)集中選取不同規(guī)模的子集,從10萬條記錄遞增至數(shù)據(jù)全集(13.76 M條),基于CMCHA的多數(shù)據(jù)源并行連接檢索算法運行時間變化趨勢及運行時間與數(shù)據(jù)規(guī)模的關(guān)系如圖4??梢钥闯?,應(yīng)用了CMCHA數(shù)據(jù)存儲算法優(yōu)化后,數(shù)據(jù)檢索運行時間隨著數(shù)據(jù)規(guī)模的增長而增長平緩。由于對數(shù)據(jù)存儲布局采用CMCHA進行了優(yōu)化,且在映射過程中完成綜合檢索查詢操作,網(wǎng)絡(luò)通信量有效降低,保證了查詢性能的穩(wěn)定性。
Figure 4. Execution time and variation trend of data join
圖4. 多源連接檢索運行時間變化趨勢
2) 數(shù)據(jù)連接檢索運行時間比較
使用基于標準Hadoop平臺的約減端連接檢索處理算法和基于CMCHA的多源并行數(shù)據(jù)連接檢索算法,針對選取的13.76 M條樣本數(shù)據(jù)全集,分別執(zhí)行全連接、以檢測位置為查詢條件和以時間為查詢條件的連接檢索操作,運行時間比較結(jié)果如圖5,后一算法的運行時間分別為前一算法運行時間的32.9%、32.5%和32.1%。CMCHA算法在運行時間上遠小于標準Hadoop算法,而且隨著事務(wù)條數(shù)的增加,雖然CMCHA算法運行時間也在增加,但是兩者的差距也在逐漸變大,當數(shù)據(jù)量逐漸越大時,CMCHA算法的優(yōu)勢也越來越明顯。數(shù)據(jù)存儲優(yōu)化布局后提高了多數(shù)據(jù)源相關(guān)數(shù)據(jù)聚集性,映射任務(wù)中的數(shù)據(jù)連接在本地就能完成,減少了映射端到約減端的數(shù)據(jù)通信,也降低了約減任務(wù)的啟動對性能的影響,所以算法的運行效率明顯提高。
Figure 5. Execution time comparison of data join based on 2 algorithms
圖5. 兩種算法多源連接運行時間比較
5. 結(jié)論
針對產(chǎn)品大數(shù)據(jù)資源,基于Hadoop平臺,采用分布式、分層結(jié)構(gòu)的存儲優(yōu)化和并行處理等技術(shù),提出了多副本一致性Hash數(shù)據(jù)存儲算法,按照產(chǎn)品主屬性、相關(guān)系數(shù)和時間戳,在數(shù)據(jù)集群中按照規(guī)則聚集具有相關(guān)性的數(shù)據(jù),提高數(shù)據(jù)處理效率?;谠撍惴ㄔO(shè)計了Hadoop平臺下多源并行連接數(shù)據(jù)檢索算法,測試證明通過數(shù)據(jù)的存儲分布優(yōu)化,算例的運行速度明顯加快,和標準Hadoop方案比較,多源并行連接數(shù)據(jù)檢索的執(zhí)行時間為其31.9%。
審核編輯:湯梓紅
?
評論
查看更多