本發(fā)明屬于云計(jì)算技術(shù)領(lǐng)域,特別是一種基于mapreduce的wsn感知數(shù)據(jù)分布式解碼方法。
背景技術(shù):
隨著無線傳感網(wǎng)(wirelesssensornetwork,簡稱wsn)技術(shù)的日益成熟,wsn的應(yīng)用領(lǐng)域也越來越廣。但是由于wsn中傳感器節(jié)點(diǎn)設(shè)計(jì)簡單,計(jì)算資源、存儲(chǔ)資源和能量供應(yīng)資源都很有限,使得wsn中節(jié)點(diǎn)通信距離較短,網(wǎng)絡(luò)帶寬低,無線通信鏈路不可靠。使用網(wǎng)絡(luò)編碼技術(shù)可以提高wsn網(wǎng)絡(luò)吞吐量,改善wsn網(wǎng)絡(luò)負(fù)載均,提高wsn網(wǎng)絡(luò)帶寬利用率,降低wsn網(wǎng)絡(luò)能量消耗。隨著網(wǎng)絡(luò)編碼技術(shù)的不斷發(fā)展,網(wǎng)絡(luò)編碼也被應(yīng)用在wsn中。本發(fā)明利用reed-solomon碼(rs碼)構(gòu)造稀疏矩陣對(duì)wsn感知數(shù)據(jù)進(jìn)行編碼,提高wsn可靠性和能量利用率。
由于網(wǎng)絡(luò)編碼的使用造成在信宿解碼而產(chǎn)生時(shí)延,而且在無線傳感網(wǎng)中進(jìn)行數(shù)據(jù)解碼會(huì)極大增加無線傳感網(wǎng)負(fù)擔(dān),尤其在感知數(shù)據(jù)規(guī)模龐大時(shí),會(huì)嚴(yán)重影響網(wǎng)絡(luò)性能。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于提供一種高效、可靠的基于mapreduce的wsn感知數(shù)據(jù)分布式解碼方法,通過利用rs碼構(gòu)造稀疏矩陣對(duì)感知數(shù)據(jù)進(jìn)行編碼,提高wsn可靠性和能量利用率,將編碼感知數(shù)據(jù)的解碼工作放在hadoop集群中進(jìn)行,以減輕wsn的網(wǎng)絡(luò)計(jì)算負(fù)擔(dān),提升wsn性能。同時(shí),由于集群具有強(qiáng)大的計(jì)算能力,可以實(shí)現(xiàn)大規(guī)模感知數(shù)據(jù)的高效解碼。
實(shí)現(xiàn)本發(fā)明目的的技術(shù)解決方案為:一種基于mapreduce的wsn感知數(shù)據(jù)分布式解碼方法,包括以下步驟:
步驟1,在wsn中通過reed-solomon碼構(gòu)造稀疏矩陣,對(duì)感知數(shù)據(jù)進(jìn)行編碼,編碼之后的數(shù)據(jù)通過外部網(wǎng)絡(luò)發(fā)送到hadoop集群,包括:
步驟1.1,rs碼的生成矩陣mn×k左乘m的子矩陣nk×k的逆矩陣,得到編碼矩陣d;
步驟1.2,根據(jù)wsn網(wǎng)絡(luò)的組播容量k,獲取k個(gè)原始數(shù)據(jù)包(f1,f2,f3,…,fk),組成原始數(shù)據(jù)向量f=[f1,f2,f3,…,fk]t
步驟1.3,利用目標(biāo)稀疏矩陣d對(duì)原始數(shù)據(jù)向量f進(jìn)行編碼;
步驟1.4,wsn通過外部網(wǎng)絡(luò)發(fā)送數(shù)據(jù)到hadoop集群;
步驟2,hadoop集群獲取編碼向量構(gòu)成編碼矩陣,獲取被編碼數(shù)據(jù)組成待解碼向量,包括:
步驟2.1,hadoop集群接收被編碼數(shù)據(jù),并將其構(gòu)成待解碼向量f″;
步驟2.2,hadoop集群獲取被編碼的wsn感知數(shù)據(jù)的編碼向量,并將編碼向量構(gòu)成編碼矩陣d';
步驟3,hadoop集群利用mapreduce框架對(duì)編碼矩陣進(jìn)行求逆運(yùn)算,獲取譯碼矩陣,包括:
步驟3.1,對(duì)編碼矩陣d'進(jìn)行分塊處理,直到劃分的子矩陣塊可以在單臺(tái)機(jī)器上進(jìn)行快速的lu分解為止;
步驟3.2,對(duì)最小子塊進(jìn)行l(wèi)u分解,返回l的逆矩陣,u的逆矩陣和p;
步驟3.3,對(duì)當(dāng)前子塊的父塊進(jìn)行進(jìn)行l(wèi)u分解,返回l的逆矩陣,u的逆矩陣和p;
步驟3.4,重復(fù)步驟3.3,直到對(duì)編碼矩陣d'完成lu分解,并返回l的逆矩陣,u的逆矩陣和p;
步驟3.5,利用返回的l的逆矩陣,u的逆矩陣和p計(jì)算編碼矩陣的逆矩陣d”,即譯碼矩陣;
步驟4,hadoop集群使用mapreduce框架,使用譯碼矩陣和接收的編碼數(shù)據(jù),進(jìn)行解碼計(jì)算,獲得原始wsn感知數(shù)據(jù),包括:
步驟4.1,利用hdfs存儲(chǔ)譯碼矩陣和待解碼矩陣,存儲(chǔ)格式為:矩陣行號(hào),矩陣列號(hào),元素值,矩陣中的元素值為0的不予存儲(chǔ);
步驟4.2,將hdfs中存儲(chǔ)的譯碼矩陣的元素,按要求存入鍵值對(duì)key=(i,k),k=1,value=(′d″′,j,d″i,j);
步驟4.2,將hdfs中存儲(chǔ)的待解碼矩陣的元素,按要求存入鍵值對(duì)key=(i,1),i=1,2,…,k,value=(′f″′,i,f″i×1);
步驟4.3,將相同key中,對(duì)應(yīng)的value進(jìn)行相乘之后累加求和,得到原始數(shù)據(jù)fi×1(如果有value對(duì)應(yīng)的value為空,則不計(jì)算)。
本發(fā)明與現(xiàn)有技術(shù)相比,其顯著優(yōu)點(diǎn)為:(1)通過構(gòu)造稀疏矩陣對(duì)感知數(shù)據(jù)進(jìn)行編碼,可以提高wsn的可靠性和能量利用率;(2)將編碼數(shù)據(jù)的譯碼工作放在hadoop集群中可以減輕wsn網(wǎng)絡(luò)計(jì)算負(fù)擔(dān);(3)hadoop集群具有強(qiáng)大的計(jì)算能力,可以應(yīng)對(duì)大規(guī)模數(shù)據(jù)集的解碼工作,從而提高解碼效率。
附圖說明
圖1為本發(fā)明整體協(xié)調(diào)框架示意圖。
圖2為本發(fā)明基于mapreduce的wsn感知數(shù)據(jù)分布式解碼方法的流程圖。
具體實(shí)施方式
下面結(jié)合附圖及實(shí)施例對(duì)本發(fā)明作進(jìn)一步詳細(xì)說明。
結(jié)合圖2,本發(fā)明基于mapreduce的wsn感知數(shù)據(jù)分布式解碼方法,步驟如下:
步驟1,在wsn中通過reed-solomon碼構(gòu)造稀疏矩陣,對(duì)感知數(shù)據(jù)進(jìn)行編碼,編碼之后的數(shù)據(jù)通過外部網(wǎng)絡(luò)發(fā)送到hadoop集群,包括:
步驟1.1,rs碼的生成矩陣mn×k左乘m的子矩陣nk×k的逆矩陣,得到稀疏矩陣d;
設(shè)m為n×k的rs碼生成矩陣,由于rs碼具有mds屬性,所以該矩陣m同樣具有mds屬性。n是矩陣m的一個(gè)k×k子矩陣,所以可以通過下面的變換得到目標(biāo)稀疏矩陣d:
步驟1.2,根據(jù)wsn網(wǎng)絡(luò)的組播容量k,獲取k個(gè)原始數(shù)據(jù)包(f1,f2,f3,…,fk),組成原始數(shù)據(jù)向量f=[f1,f2,f3,…,fk]t;
步驟1.3,利用目標(biāo)稀疏矩陣d對(duì)原始數(shù)據(jù)向量f進(jìn)行編碼;
步驟2,hadoop集群獲取編碼向量構(gòu)成編碼矩陣,獲取被編碼數(shù)據(jù)組成待解碼向量,包括:
步驟2.1,hadoop集群接收被編碼數(shù)據(jù),并將其構(gòu)成待解碼向量,設(shè)為f″,則f”如下表示:
f″=[f1f2…fk-2c1c2]t;
步驟2.2,hadoop集群獲取被編碼的wsn感知數(shù)據(jù)的編碼向量,并將編碼向量構(gòu)成編碼矩陣,設(shè)為d',假設(shè)d'如下所示:
步驟3,hadoop集群利用mapreduce框架對(duì)編碼矩陣進(jìn)行求逆運(yùn)算,獲取譯碼矩陣,包括:
步驟3.1,對(duì)編碼矩陣d'進(jìn)行分塊處理,直到劃分的子矩陣塊可以在單臺(tái)機(jī)器上進(jìn)行快速的lu分解為止,設(shè)分到d1,1為止,用s1,s2來表示子塊;
步驟3.2,對(duì)最小子塊進(jìn)行l(wèi)u分解,返回l的逆矩陣,u的逆矩陣和p,此處為對(duì)s2進(jìn)行l(wèi)u分解;
步驟3.3,對(duì)當(dāng)前子塊的父塊進(jìn)行進(jìn)行l(wèi)u分解,返回l的逆矩陣,u的逆矩陣和p,此處為對(duì)s1進(jìn)行l(wèi)u分解;
步驟3.4,重復(fù)步驟3.3,直到對(duì)編碼矩陣d'完成lu分解,并返回l的逆矩陣,u的逆矩陣和p;
步驟3.5,利用返回的l的逆矩陣,u的逆矩陣和p計(jì)算編碼矩陣的逆矩陣d″,即譯碼矩陣;
步驟4,hadoop集群使用mapreduce框架,使用譯碼矩陣和接收的編碼數(shù)據(jù),進(jìn)行解碼計(jì)算,獲得原始wsn感知數(shù)據(jù),包括:
步驟4.1,利用hdfs存儲(chǔ)譯碼矩陣和待解碼矩陣,存儲(chǔ)格式為:矩陣行號(hào),矩陣列號(hào),元素值,矩陣中的元素值為0的不予存儲(chǔ);
步驟4.2,將hdfs中存儲(chǔ)的譯碼矩陣的元素,按要求存入鍵值對(duì)key=(i,k),k=1,value=('矩陣名',j,對(duì)應(yīng)元素值),如譯碼矩陣d”,則鍵值對(duì)可以表示為key=(i,k),k=1,value=(′d″′,j,d″i,j);
步驟4.2,將hdfs中存儲(chǔ)的待解碼矩陣的元素,按要求存入鍵值對(duì)key=(i,1),i=1,2,…,k,value=(′矩陣名′,i,對(duì)應(yīng)元素值),如待解碼矩陣為f″,則鍵值對(duì)可以表示為key=(i,1),i=1,2,…,k,value=(′f″′,i,f″i×1);
步驟4.3,將相同key中,對(duì)應(yīng)的value進(jìn)行相乘之后累加求和,得到原始數(shù)據(jù)fi×1(如果有value對(duì)應(yīng)的value為空,則不計(jì)算)。
綜上所述,本發(fā)明基于mapreduce的編碼數(shù)據(jù)分布式解碼方法,將數(shù)據(jù)解碼工作放在hadoop集群中進(jìn)行,以降低無線傳感網(wǎng)網(wǎng)絡(luò)負(fù)擔(dān)。利用mapreduce實(shí)現(xiàn)感知數(shù)據(jù)解碼算法的并行化,以改進(jìn)感知數(shù)據(jù)解碼造成的信宿時(shí)延問題。通過網(wǎng)絡(luò)編碼技術(shù)提高了wsn的網(wǎng)絡(luò)可靠性和能量利用率,充分利用了hadoop集群的資源優(yōu)勢(shì),為實(shí)現(xiàn)編碼數(shù)據(jù)的高效、快速解碼提供了技術(shù)支持。