• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      輕量級(jí)遙感數(shù)據(jù)分布式調(diào)度框架DataboxMR

      2021-07-23 07:53:32孟祥海王學(xué)志趙江華周小華
      關(guān)鍵詞:引擎數(shù)據(jù)處理內(nèi)存

      孟祥海,王學(xué)志,趙江華,周小華

      1.中國(guó)科學(xué)院計(jì)算機(jī)網(wǎng)絡(luò)信息中心,北京 100190

      2.中國(guó)科學(xué)院大學(xué),北京 100049

      引 言

      隨著遙感數(shù)據(jù)處理技術(shù)的不斷豐富和發(fā)展,遙感數(shù)據(jù)處理能力不斷增強(qiáng),處理手段更加豐富,發(fā)展出較多成熟的遙感數(shù)據(jù)處理技術(shù),例如,利用人工智能技術(shù)進(jìn)行云雪檢測(cè)、利用rasterio訪問(wèn)柵格數(shù)據(jù)等,充分發(fā)揮不同遙感數(shù)據(jù)處理技術(shù)的優(yōu)勢(shì),提升遙感數(shù)據(jù)處理的效率和水平是研究遙感數(shù)據(jù)處理的關(guān)鍵。遙感數(shù)據(jù)處理涉及數(shù)據(jù)解譯、處理和專業(yè)應(yīng)用等,目標(biāo)為形成多源遙感基礎(chǔ)數(shù)據(jù)產(chǎn)品和專業(yè)數(shù)據(jù)產(chǎn)品。基于遙感數(shù)據(jù)(特別是高分辨率遙感影像數(shù)據(jù))的信息提取技術(shù)獲取有效信息,可為專業(yè)應(yīng)用提供數(shù)據(jù)支撐,可應(yīng)用于土地遙感分析、植物遙感分析、水體和海洋遙感分析等領(lǐng)域。信息提取的前提是對(duì)遙感數(shù)據(jù)進(jìn)行有效地組織、處理、計(jì)算和分析等操作。

      作為連接遙感數(shù)據(jù)和專業(yè)應(yīng)用之間的媒介,遙感數(shù)據(jù)處理系統(tǒng)建設(shè)正臨著數(shù)據(jù)密集、計(jì)算密集、并發(fā)訪問(wèn)密集、時(shí)空密集等實(shí)際應(yīng)用帶來(lái)的挑戰(zhàn)[1]。傳統(tǒng)單機(jī)處理的服務(wù)模式已不能滿足遙感大數(shù)據(jù)的處理需求,為此需要引入分布式系統(tǒng)對(duì)空間數(shù)據(jù)進(jìn)行處理[2-4],依托分布式處理技術(shù)提高處理遙感數(shù)據(jù)的規(guī)模和效率。

      目前主流分布式計(jì)算框架Hadoop、Storm、Spark等在遙感數(shù)據(jù)處理方面均取得了較好的效果,根據(jù)數(shù)據(jù)的格式及內(nèi)容提供實(shí)時(shí)處理和離線批處理[5]。張嘉等基于HBase預(yù)分區(qū)優(yōu)化策略,結(jié)合MapReduce計(jì)算框架,構(gòu)建了空間數(shù)據(jù)分布式計(jì)算與分析的優(yōu)化流程[6]。宋峣等應(yīng)用Storm對(duì)現(xiàn)有系統(tǒng)進(jìn)行并行優(yōu)化,設(shè)計(jì)了遙感數(shù)據(jù)流處理任務(wù)拓?fù)浣Y(jié)構(gòu)[7]。劉歡等基于Spark并行框架進(jìn)行MODIS遙感影像的海表溫度反演,影像處理效率大大提升[8]。然而,利用上述主流分布式計(jì)算框架對(duì)遙感數(shù)據(jù)進(jìn)行分析處理需要用戶自己設(shè)計(jì)遙感數(shù)據(jù)處理算子,其影像數(shù)據(jù)切割、分析等操作需借助額外的專有框架實(shí)現(xiàn),用戶操作復(fù)雜度較高。

      針對(duì)上述問(wèn)題,研究人員提出了眾多專門應(yīng)用于遙感數(shù)據(jù)處理的分布式系統(tǒng)架構(gòu),如SpatialHadoop[9]、Hadoop-GIS[10]、GeoSpark[11]、LocationSpark[12]、Simaba[13]、pipsCloud[14]等。這些系統(tǒng)基于MapReduce和Spark分布式計(jì)算框架實(shí)現(xiàn),無(wú)需借助額外的專有框架,提高了遙感數(shù)據(jù)處理的效率。然而,基于MapReduce和Spark計(jì)算框架進(jìn)行遙感數(shù)據(jù)處理帶來(lái)性能提升的同時(shí),也帶來(lái)了一定的局限性。

      上述框架集成在通用平臺(tái)上,只能在特定開(kāi)發(fā)環(huán)境,利用通用平臺(tái)API和存儲(chǔ)系統(tǒng)處理遙感數(shù)據(jù),需要用戶學(xué)習(xí)使用通用平臺(tái)的API和技術(shù),用戶使用復(fù)雜度高,對(duì)于輕量級(jí)的遙感處理任務(wù)(數(shù)據(jù)的簡(jiǎn)單計(jì)算)來(lái)說(shuō)遷移和使用代價(jià)較高。目前,用戶大多擁有處理遙感數(shù)據(jù)的程序或算法,待處理遙感數(shù)據(jù)存儲(chǔ)在特定存儲(chǔ)系統(tǒng)中,借助一個(gè)輕量級(jí)框架,在盡量不改變既有程序和存儲(chǔ)位置的基礎(chǔ)上實(shí)現(xiàn)遙感數(shù)據(jù)的高效處理成為用戶的需求。若基于MapReduce或Spark等通用計(jì)算框架進(jìn)行遙感數(shù)據(jù)處理,其程序和算法需要根據(jù)通用平臺(tái)的API進(jìn)行重構(gòu),數(shù)據(jù)需要導(dǎo)入框架對(duì)應(yīng)的存儲(chǔ)系統(tǒng),遷移代價(jià)較高。更換技術(shù)框架和存儲(chǔ)系統(tǒng)給簡(jiǎn)單的處理任務(wù)帶了較大壓力。

      實(shí)踐中針對(duì)既有成熟遙感數(shù)據(jù)處理技術(shù)只能單獨(dú)使用或在特定領(lǐng)域使用的問(wèn)題,設(shè)計(jì)了一個(gè)新的交互環(huán)境。該環(huán)境支持既有成熟技術(shù)的綜合使用,提升了系統(tǒng)處理能力。此外,不同用戶需求不同,只提供特定的API接口或算法,難以滿足用戶個(gè)性化的處理需求。因此,設(shè)計(jì)一種遷移方便、操作簡(jiǎn)單的開(kāi)放交互方式,也是目前亟待解決的問(wèn)題。

      目前,依托通用平臺(tái)進(jìn)行遙感數(shù)據(jù)處理的計(jì)算框架除遷移能力和操作復(fù)雜度受限制外,其調(diào)度端的可控性也是用戶關(guān)心的問(wèn)題。通常,分布式計(jì)算框架執(zhí)行任務(wù)時(shí),其他任務(wù)無(wú)法提交,需等待任務(wù)執(zhí)行完畢才可提交新的任務(wù)執(zhí)行,為用戶執(zhí)行緊急任務(wù)帶來(lái)了一定的困擾?,F(xiàn)有遙感數(shù)據(jù)處理系統(tǒng)一般將任務(wù)提交至集群,集群自動(dòng)分配節(jié)點(diǎn)執(zhí)行任務(wù),緊急處理任務(wù)仍需按其調(diào)度策略分配執(zhí)行,用戶對(duì)任務(wù)分配調(diào)度過(guò)程的控制力較低。因此,設(shè)計(jì)一個(gè)用戶可控的調(diào)度系統(tǒng),保證緊急任務(wù)及時(shí)處理和負(fù)載均衡也是急需解決的問(wèn)題。此外,遙感數(shù)據(jù)處理過(guò)程偶爾涉及處理全局?jǐn)?shù)據(jù)的操作,通用平臺(tái)的遙感數(shù)據(jù)處理一般基于內(nèi)存執(zhí)行分布式處理,若單景數(shù)據(jù)量較大,將全局?jǐn)?shù)據(jù)加載至內(nèi)存處理可能會(huì)造成內(nèi)存資源負(fù)載過(guò)重,從而降低系統(tǒng)的處理性能。

      針對(duì)上述問(wèn)題,本文提出了基于RS-UDF的輕量級(jí)遙感數(shù)據(jù)分布式調(diào)度框架DataboxMR。針對(duì)處理輕量級(jí)遙感任務(wù)時(shí)遷移能力低、用戶操作復(fù)雜度高等問(wèn)題,本文提出了RS-UDF。RS-UDF是可封裝既有成熟遙感數(shù)據(jù)處理技術(shù)并將封裝單元提交至調(diào)度引擎執(zhí)行的交互環(huán)境,可在不改變用戶既有程序或數(shù)據(jù)存儲(chǔ)位置的情況下提交分布式任務(wù)。針對(duì)調(diào)度過(guò)程可控性低和遙感數(shù)據(jù)全局處理性能差等問(wèn)題,系統(tǒng)設(shè)計(jì)了雙層調(diào)度引擎。雙層調(diào)度引擎支持遙感數(shù)據(jù)的高效調(diào)度,支持用戶指定節(jié)點(diǎn)執(zhí)行任務(wù),支持故障恢復(fù),可實(shí)現(xiàn)輕量化任務(wù)處理,相同條件下,消耗更少的系統(tǒng)資源。

      1 遙感數(shù)據(jù)調(diào)度框架DataboxMR

      1.1 系統(tǒng)概述

      DataboxMR以穩(wěn)定高效地處理遙感數(shù)據(jù)為目標(biāo),提供了一個(gè)支持已有成熟遙感處理技術(shù)、遷移方便、用戶使用復(fù)雜度低、調(diào)度過(guò)程可控的輕量級(jí)調(diào)度框架。如圖1所示,DataboxMR主要由RS-UDF、主調(diào)度器(Jobman)、分調(diào)度器(Taskman)和工作節(jié)點(diǎn)(Worker)四部分組成。其中,RS-UDF以函數(shù)為調(diào)度單元,實(shí)現(xiàn)分布式任務(wù)的封裝與提交,主調(diào)度器接收RS-UDF提交的任務(wù)并進(jìn)行任務(wù)劃分和分發(fā),分調(diào)度接收主調(diào)度器分配的子任務(wù)并分發(fā)給工作節(jié)點(diǎn),工作節(jié)點(diǎn)負(fù)責(zé)實(shí)際的任務(wù)執(zhí)行。

      圖1 DataboxMR框架Fig.1 DataboxMR framework

      在這四部分中,RS-UDF和調(diào)度引擎(主調(diào)度器和分調(diào)度器)是支撐DataboxMR框架的核心模塊,RS-UDF實(shí)現(xiàn)對(duì)遙感處理邏輯的封裝,提供對(duì)外交互的環(huán)境和接口。調(diào)度引擎實(shí)現(xiàn)遙感處理任務(wù)的高效劃分、分配與處理,支持指定節(jié)點(diǎn)處理緊急任務(wù),具備故障恢復(fù)能力。

      1.2 遙感數(shù)據(jù)處理服務(wù)組件RS-UDF

      UDF技術(shù)是用戶自定義函數(shù)的簡(jiǎn)稱,一般表示自定義標(biāo)量函數(shù)、自定義聚合函數(shù)及自定義表函數(shù)三種自定義函數(shù)的集合,通常所說(shuō)的UDF指用戶自定義標(biāo)量函數(shù)。RS-UDF受UDF啟發(fā),將遙感數(shù)據(jù)處理技術(shù)融入U(xiǎn)DF技術(shù)中,用以支持對(duì)現(xiàn)有遙感數(shù)據(jù)處理技術(shù)的擴(kuò)展,實(shí)現(xiàn)靈活高效的二次開(kāi)發(fā)。

      RS-UDF是DataboxMR中面向遙感數(shù)據(jù)的用戶自定義服務(wù)組件,基于Python提供遷移方便、操作簡(jiǎn)單的開(kāi)發(fā)交互環(huán)境,側(cè)重與既有成熟技術(shù)(如numpy、rasterio、gdal等)結(jié)合,利用既有成熟技術(shù)設(shè)計(jì)業(yè)務(wù)邏輯。用戶已有程序或算法經(jīng)過(guò)簡(jiǎn)單封裝,即可提交任務(wù)請(qǐng)求。當(dāng)用戶實(shí)現(xiàn)數(shù)據(jù)可視化、數(shù)據(jù)計(jì)算等簡(jiǎn)單的處理任務(wù)時(shí),無(wú)需根據(jù)通用平臺(tái)的API進(jìn)行重構(gòu),只需簡(jiǎn)單修改已有程序,將其封裝成滿足RS-UDF要求的函數(shù)算子形式,通過(guò)服務(wù)接口提交調(diào)度引擎處理即可,用戶操作復(fù)雜度低,遷移代價(jià)小。此外,用戶可根據(jù)需求靈活設(shè)計(jì)遙感數(shù)據(jù)處理邏輯,直接引入已有成熟軟件包,充分保留UDF靈活開(kāi)發(fā)的優(yōu)勢(shì),從而保證用戶操作的靈活性。

      1.2.1 基于RS-UDF處理遙感數(shù)據(jù)的內(nèi)部任務(wù)封裝過(guò)程

      RS-UDF接收用戶任務(wù)后,內(nèi)部對(duì)任務(wù)進(jìn)行進(jìn)一步封裝處理。如圖2所示,用戶以函數(shù)為單元封裝好處理邏輯,將函數(shù)單元以參數(shù)形式提交至RSUDF接口,接收任務(wù)參數(shù)后,RS-UDF將任務(wù)調(diào)度服務(wù)器地址、客戶端地址注冊(cè)至etcd。檢測(cè)集群狀態(tài)、節(jié)點(diǎn)狀態(tài)等信息,驗(yàn)證集群是否有空閑資源可以分布式處理遙感數(shù)據(jù)。若集群資源滿足處理遙感數(shù)據(jù)的要求,則將函數(shù)單元序列化為統(tǒng)一的JSON格式,將接口中其他參數(shù)轉(zhuǎn)碼為字節(jié)碼形式。將序列化和轉(zhuǎn)碼后的參數(shù)提交至DataboxMR-Engine進(jìn)行分布式處理。RS-UDF根據(jù)用戶不同需求可提供不同的接口服務(wù),同步任務(wù)若存在Reduce算子,則選用MapReduce接口,若只存在Map算子,則選擇map接口。異步任務(wù)調(diào)用過(guò)程同理,在實(shí)際應(yīng)用中,用戶可根據(jù)不同需求選擇不同接口服務(wù)。

      圖2 RS-UDF任務(wù)封裝Fig.2 RS-UDF task package

      上述客戶端地址、集群主調(diào)度器地址等注冊(cè)過(guò)程通過(guò)etcd服務(wù)器保障實(shí)現(xiàn)。etcd通過(guò)raft一致性協(xié)議保證集群的高可靠性,當(dāng)一個(gè)節(jié)點(diǎn)出現(xiàn)故障時(shí),集群中其他節(jié)點(diǎn)的備份數(shù)據(jù)可保障任務(wù)的正常執(zhí)行。

      1.2.2 RS-UDF用戶任務(wù)封裝實(shí)例

      針對(duì)通用平臺(tái)遷移代價(jià)大、用戶使用復(fù)雜度高等問(wèn)題,RS-UDF結(jié)合既有成熟遙感數(shù)據(jù)處理技術(shù),在原有程序和算法的基礎(chǔ)上只需簡(jiǎn)單封裝,即可提交調(diào)度引擎執(zhí)行分布式處理。此外,基于RS-UDF提交分布式任務(wù)時(shí),對(duì)數(shù)據(jù)的存儲(chǔ)系統(tǒng)沒(méi)有特殊要求,可在不改變?cè)写鎯?chǔ)系統(tǒng)的情況下處理數(shù)據(jù)。為了解RS-UDF用戶任務(wù)封裝過(guò)程,設(shè)計(jì)了圖3所示NDVI計(jì)算實(shí)例。

      圖3 RS-UDF封裝實(shí)例Fig.3 RS-UDF package example

      舉例:

      如圖3所示,用戶在已有處理邏輯的基礎(chǔ)上,利用DataboxMR的分布式計(jì)算能力完成數(shù)據(jù)分析任務(wù)時(shí),只需簡(jiǎn)單修改既有程序(其中“+”表示增加的代碼,“-”表示刪除的代碼),修改為滿足RS-UDF要求的函數(shù)形式?;赗S-UDF封裝函數(shù)調(diào)度單元時(shí),基本未改變用戶原有處理邏輯,有效避免了為實(shí)現(xiàn)輕量級(jí)任務(wù)而學(xué)習(xí)通用平臺(tái)API、進(jìn)行大規(guī)模代碼修改、遷移等問(wèn)題,用戶操作簡(jiǎn)便,使用代價(jià)低。

      1.3 調(diào)度引擎DataboxMR-Engine

      調(diào)度引擎主要為遙感數(shù)據(jù)提供作業(yè)和計(jì)算任務(wù)的分層調(diào)度、任務(wù)處理等服務(wù)。分別從高效處理輕量級(jí)任務(wù)、用戶可控性及性能穩(wěn)定性方面入手,保證調(diào)度引擎的功能。作為調(diào)度系統(tǒng)的核心,DataboxMR-Engine除實(shí)現(xiàn)任務(wù)劃分及調(diào)度基本功能外,保證系統(tǒng)的高可靠性,實(shí)現(xiàn)對(duì)任務(wù)狀態(tài)的監(jiān)測(cè)、保障有效的容錯(cuò)及恢復(fù)機(jī)制也是其必不可少的功能。基于雙層調(diào)度模式實(shí)現(xiàn)遙感數(shù)據(jù)的切分和分配,其處理過(guò)程可支持用戶指定節(jié)點(diǎn)處理遙感數(shù)據(jù),保證靈活性的同時(shí),可增加用戶對(duì)調(diào)度引擎的控制能力,可提升用戶處理緊急任務(wù)的能力和效率。同時(shí),調(diào)度引擎支持故障恢復(fù)功能,基于核心數(shù)據(jù)結(jié)構(gòu)(雙端隊(duì)列和索引樹(shù))和狀態(tài)機(jī)制實(shí)現(xiàn),保證系統(tǒng)高可用和穩(wěn)定性的同時(shí),可快速回收系統(tǒng)資源,保證系統(tǒng)可用資源充足,從而保證系統(tǒng)輕量化的特點(diǎn)。

      1.3.1 遙感處理任務(wù)調(diào)度過(guò)程

      雙層調(diào)度引擎由一個(gè)主調(diào)度器和多個(gè)分調(diào)度器組成。主調(diào)度器負(fù)責(zé)任務(wù)的劃分和分發(fā),分調(diào)度器負(fù)責(zé)接收子任務(wù)并分發(fā)給工作節(jié)點(diǎn)。雙層調(diào)度模塊側(cè)重對(duì)遙感數(shù)據(jù)的高效調(diào)度和處理,通過(guò)雙端隊(duì)列和索引樹(shù)等數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn),具有指定節(jié)點(diǎn)優(yōu)先執(zhí)行、故障恢復(fù)的能力。其調(diào)度過(guò)程如圖4所示。

      圖4 調(diào)度過(guò)程Fig.4 Scheduling process

      任務(wù)接收和劃分:主調(diào)度器接收來(lái)自RS-UDF的任務(wù)二進(jìn)制流,解析二進(jìn)制流,將解析后任務(wù)加入任務(wù)字典,從字典中取出任務(wù)劃分并加入任務(wù)隊(duì)列。入隊(duì)順序根據(jù)優(yōu)先級(jí)參數(shù)確定,若優(yōu)先級(jí)參數(shù)為True,則將子任務(wù)分配至隊(duì)列首部,若未指定優(yōu)先級(jí),則按順序加入至隊(duì)列尾部。

      主調(diào)度器子任務(wù)分配:從任務(wù)隊(duì)列首部取出任務(wù)分配。當(dāng)任務(wù)指定優(yōu)先級(jí)時(shí),高優(yōu)先級(jí)任務(wù)的任務(wù)信息被放入至數(shù)據(jù)庫(kù),子任務(wù)信息不放入數(shù)據(jù)庫(kù),放入內(nèi)存等待分配執(zhí)行。若任務(wù)未指定優(yōu)先級(jí),任務(wù)和子任務(wù)信息均放入數(shù)據(jù)庫(kù),不放于內(nèi)存,等高優(yōu)先級(jí)任務(wù)執(zhí)行完畢再執(zhí)行。

      分調(diào)度器子任務(wù)分配:分調(diào)度器向主調(diào)度器請(qǐng)求批量子任務(wù),主調(diào)度器根據(jù)分調(diào)度器的請(qǐng)求信息從任務(wù)隊(duì)列取出子任務(wù)分配給分調(diào)度器,分調(diào)度器將接收到的子任務(wù)加入至其自身維護(hù)的雙端隊(duì)列中,等待工作節(jié)點(diǎn)來(lái)主動(dòng)拉取任務(wù)執(zhí)行。

      任務(wù)執(zhí)行:工作節(jié)點(diǎn)從與其位于相同節(jié)點(diǎn)的分調(diào)度器隊(duì)列中主動(dòng)拉取子任務(wù)到本地執(zhí)行。

      1.3.2 基于隊(duì)列和索引樹(shù)的雙層調(diào)度結(jié)構(gòu)

      如圖5所示,雙層調(diào)度引擎的核心數(shù)據(jù)結(jié)構(gòu)為任務(wù)隊(duì)列和索引樹(shù)。任務(wù)隊(duì)列負(fù)責(zé)維護(hù)待分配子任務(wù)。索引樹(shù)用于記錄子任務(wù)與分調(diào)度器或子任務(wù)與工作節(jié)點(diǎn)之間的映射關(guān)系。

      圖5 隊(duì)列和索引執(zhí)行原理Fig.5 Queue and index execution principle

      任務(wù)隊(duì)列基于雙端隊(duì)列實(shí)現(xiàn),入隊(duì)時(shí),當(dāng)未指定任務(wù)優(yōu)先級(jí)時(shí),按順序?qū)澐趾笞尤蝿?wù)加入至隊(duì)列尾部,當(dāng)指定任務(wù)優(yōu)先級(jí)或重新執(zhí)行任務(wù)時(shí),將子任務(wù)加入至隊(duì)列首部。分配時(shí),從隊(duì)列首部取出任務(wù)分配執(zhí)行。

      索引樹(shù)用于存儲(chǔ)任務(wù)、子任務(wù)和節(jié)點(diǎn)之間的分配關(guān)系,基于任務(wù)id、子任務(wù)id及節(jié)點(diǎn)地址實(shí)現(xiàn)映射。一級(jí)索引樹(shù)用于記錄任務(wù)、子任務(wù)和分調(diào)度器之間的映射關(guān)系,二級(jí)索引樹(shù)用于記錄子任務(wù)和工作節(jié)點(diǎn)地址之間的映射。

      1.3.3 基于狀態(tài)機(jī)制的故障恢復(fù)

      受限于網(wǎng)絡(luò)、硬件資源等情況,任務(wù)執(zhí)行過(guò)程中出現(xiàn)任務(wù)超時(shí)、任務(wù)執(zhí)行出錯(cuò)等情況不可避免,如何實(shí)現(xiàn)高效的故障恢復(fù)是必須解決的一個(gè)問(wèn)題。為保證任務(wù)執(zhí)行過(guò)程中的故障恢復(fù)能力,提升系統(tǒng)的可靠性,調(diào)度引擎提出了狀態(tài)機(jī)制。

      狀態(tài)機(jī)制是指在調(diào)度過(guò)程中為每個(gè)階段的任務(wù)賦予相應(yīng)狀態(tài),例如,任務(wù)分發(fā)后賦予已分配狀態(tài),任務(wù)執(zhí)行成功賦予成功狀態(tài)。調(diào)度過(guò)程根據(jù)任務(wù)的狀態(tài)信息,執(zhí)行相應(yīng)的分配、拋棄等操作。

      如圖6所示,任務(wù)在工作節(jié)點(diǎn)執(zhí)行時(shí),分調(diào)度器通過(guò)心跳信息定時(shí)的獲取任務(wù)的執(zhí)行狀態(tài),若任務(wù)出現(xiàn)超時(shí)或出錯(cuò),工作節(jié)點(diǎn)通過(guò)心跳信息將失敗任務(wù)信息反饋給上層分調(diào)度器。分調(diào)度器通過(guò)索引樹(shù)快速定位出錯(cuò)子任務(wù)相應(yīng)信息、子任務(wù)id及與工作節(jié)點(diǎn)間的映射關(guān)系,將獲取到的錯(cuò)誤子任務(wù)相關(guān)信息通過(guò)心跳信息反饋給主調(diào)度器。主調(diào)度器根據(jù)狀態(tài)信息首先從索引樹(shù)中獲取出錯(cuò)的子任務(wù)id及任務(wù)id的映射信息,停止出錯(cuò)任務(wù)相關(guān)的所有子任務(wù)的執(zhí)行,回收分配至這些任務(wù)中的資源,然后從任務(wù)字典重新取出任務(wù)并劃分為子任務(wù),將子任務(wù)分配至雙端隊(duì)列的首部,等待重新分配,最終任務(wù)被重新分配至新的節(jié)點(diǎn)執(zhí)行成功,結(jié)束故障恢復(fù)過(guò)程。

      圖6 故障恢復(fù)過(guò)程Fig.6 Failure recovery process

      狀態(tài)機(jī)制結(jié)合調(diào)度引擎的隊(duì)列和索引樹(shù)數(shù)據(jù)結(jié)構(gòu)保障任務(wù)執(zhí)行的可靠性和穩(wěn)定性。調(diào)度引擎基于每秒一次的心跳信息獲取任務(wù)狀態(tài),保證及時(shí)發(fā)現(xiàn)任務(wù)執(zhí)行故障并激活故障恢復(fù)機(jī)制,整個(gè)狀態(tài)恢復(fù)過(guò)程調(diào)度引擎自主完成,無(wú)需人工干預(yù),對(duì)用戶透明。

      1.3.4 可控、輕量化的調(diào)度引擎

      通常,用戶希望通過(guò)管理調(diào)度引擎來(lái)提升任務(wù)處理過(guò)程的可控性。為滿足這一需求,系統(tǒng)內(nèi)部設(shè)計(jì)任務(wù)處理監(jiān)測(cè)模塊,通過(guò)狀態(tài)反饋機(jī)制、接受用戶指定節(jié)點(diǎn)執(zhí)行任務(wù)的方式實(shí)現(xiàn)。狀態(tài)反饋機(jī)制負(fù)責(zé)監(jiān)測(cè)并反饋任務(wù)執(zhí)行狀態(tài)。接受用戶指定執(zhí)行節(jié)點(diǎn)的服務(wù)可保證調(diào)度引擎可控的特性,指定節(jié)點(diǎn)執(zhí)行任務(wù)時(shí),若指定節(jié)點(diǎn)未在執(zhí)行任務(wù),可直接執(zhí)行用戶指定任務(wù),若指定節(jié)點(diǎn)有任務(wù)執(zhí)行中,則需要等待當(dāng)前任務(wù)執(zhí)行完畢后執(zhí)行用戶任務(wù)。

      此外,處理全局遙感數(shù)據(jù)時(shí),可結(jié)合Zonal Operation運(yùn)算的特點(diǎn)及其狀態(tài)機(jī)制提升資源的利用率和任務(wù)處理的效率。遙感數(shù)據(jù)的Zonal Operation運(yùn)算,處理范圍通常為不規(guī)則但具有明確物理意義的單元,其輸入需包含指定區(qū)域的矢量范圍,調(diào)度引擎在計(jì)算時(shí)將矢量范圍掩膜包含的多個(gè)Tiles按數(shù)據(jù)量大小均衡的加載至各個(gè)節(jié)點(diǎn)執(zhí)行分布式處理。同時(shí),基于狀態(tài)機(jī)制及時(shí)將分配至出錯(cuò)任務(wù)的系統(tǒng)資源收回,保證系統(tǒng)資源的高效利用,從而保證系統(tǒng)輕量化處理的特點(diǎn)。

      2 實(shí)驗(yàn)

      2.1 實(shí)驗(yàn)設(shè)計(jì)

      為驗(yàn)證系統(tǒng)性能,基于Landsat8[15]數(shù)據(jù)集計(jì)算歸一化植被指數(shù)(Normalized Difference Vegetation Index, NDVI)。NDVI是一種利用綠色植物對(duì)紅光的低反射率和對(duì)近紅光的高反射率的光譜特征值計(jì)算的植被指數(shù),可應(yīng)用于檢測(cè)植被生長(zhǎng)狀態(tài)、植被覆蓋度等。NDVI值在-1至1之間,負(fù)值表示地面覆蓋為云、水、雪等,對(duì)可見(jiàn)光高反射;0表示有巖石或裸土等,近紅外光譜特征(NIR)和紅外光譜特征(Red)近似相等;正值表示有植被覆蓋,且隨覆蓋度增大而增大。其數(shù)學(xué)表達(dá)式為:實(shí)驗(yàn)過(guò)程中對(duì)比DataboxMR和GeoTrellis計(jì)算NDVI時(shí)處理時(shí)間、CPU占用、內(nèi)存占用和網(wǎng)絡(luò)占用的性能差異。

      基于DataboxMR處理遙感數(shù)據(jù)時(shí),將Map函數(shù)、Reduce函數(shù)及數(shù)據(jù)提交至RS-UDF的服務(wù)接口。實(shí)驗(yàn)中,DataboxMR引入gdal庫(kù),基于gdal庫(kù)將影像數(shù)據(jù)讀取為矩陣,基于矩陣可分解的性質(zhì),對(duì)矩陣進(jìn)行切分,切分后數(shù)據(jù)塊作為DataboxMR分布式處理的基本單元,以List或者Tuple形式提交至服務(wù)接口,接收參數(shù)后接口將任務(wù)封裝并提交至調(diào)度引擎,調(diào)度引擎對(duì)任務(wù)執(zhí)行劃分和分配,將子任務(wù)下發(fā)至集群中各節(jié)點(diǎn)分別執(zhí)行遙感數(shù)據(jù)的NDVI計(jì)算,最后將各部分?jǐn)?shù)據(jù)計(jì)算結(jié)果匯總返回并寫入磁盤。

      為使用內(nèi)存計(jì)算平臺(tái)Spark的分布式調(diào)度和計(jì)算能力執(zhí)行遙感數(shù)據(jù)處理任務(wù),需引入開(kāi)源框架GeoTrellis[16]進(jìn)行分布式柵格數(shù)據(jù)處理。GeoTrellis是基于Spark環(huán)境處理遙感空間數(shù)據(jù)的框架,旨在支持網(wǎng)絡(luò)規(guī)模和集群規(guī)模的地理空間處理,可讀取、轉(zhuǎn)換、操作和寫入遙感數(shù)據(jù),此外,GeoTrellis可對(duì)矢量數(shù)據(jù)進(jìn)行地圖代數(shù)操作,可進(jìn)行矢量數(shù)據(jù)和柵格數(shù)據(jù)的相互轉(zhuǎn)換操作。其主要實(shí)現(xiàn)了創(chuàng)建低延遲、可擴(kuò)展的地理處理Web服務(wù)、在分布式體系結(jié)構(gòu)中運(yùn)行,對(duì)大型遙感數(shù)據(jù)集進(jìn)行快速批處理、采用多核架構(gòu)對(duì)遙感數(shù)據(jù)進(jìn)行并行化處理等功能。綜上所述,GeoTrellis為Spark提供了功能豐富、處理高效的遙感數(shù)據(jù)處理庫(kù),通過(guò)GeoTrellis與Spark共同組成的處理引擎執(zhí)行遙感數(shù)據(jù)處理操作,在提升處理效率的同時(shí),也擴(kuò)展了Spark的處理能力和范圍。因此,為了利用Spark基于內(nèi)存的分布式計(jì)算能力,對(duì)遙感數(shù)據(jù)進(jìn)行高效處理。同時(shí),也為了利用GeoTrellis強(qiáng)大的遙感數(shù)據(jù)處理能力,提出了開(kāi)源框架GeoTrellis與Spark組成調(diào)度引擎進(jìn)行遙感數(shù)據(jù)處理的方法?;贕eoTrellis處理遙感數(shù)據(jù)時(shí)將柵格數(shù)據(jù)分割為使用空間填充曲線索引的統(tǒng)一瓦片[17]。受GeoTrellis-Landsat-Tutorial[18]啟發(fā),本實(shí)驗(yàn)基于GeoTrellis對(duì)數(shù)據(jù)進(jìn)行柵格化?;赟park環(huán)境實(shí)現(xiàn)遙感影像的分布式處理,首先需利用GeoTrellis將遙感影像切分為多個(gè)瓦片數(shù)據(jù)(實(shí)驗(yàn)中為彈性分布式數(shù)據(jù)集(Resilient Distributed Dataset,RDD),然后對(duì)瓦片數(shù)據(jù)進(jìn)行一系列處理。其處理流程為讀取影像數(shù)據(jù)并將其轉(zhuǎn)化為RDD[(SpatialKey, MultibandTile)],然后基于轉(zhuǎn)化后RDD[(SpatialKey, MultibandTile)]執(zhí)行分布式計(jì)算,除計(jì)算NDVI外,基于RDD還可對(duì)遙感影像執(zhí)行多種分布式處理操作。實(shí)驗(yàn)中,GeoTrellis涉及處理技術(shù)有:基于HadoopGeoTiffRDD方法將單波段影像讀取為RDD[(SpatilKey,Tile)],基于combine等方法將單波段影像合并為多波段形式,然后基于map算子設(shè)計(jì)處理邏輯,將合并成的多波段影像切分為瓦片并執(zhí)行計(jì)算,最后在Spark環(huán)境中以RDD為執(zhí)行單位進(jìn)行分布式處理。Spark分布式環(huán)境下GeoTrellis執(zhí)行分布式處理的流程如圖7所示。

      圖7 GeoTrellis計(jì)算NDVI過(guò)程Fig.7 GeoTrellis calculation process of NDVI

      2.2 實(shí)驗(yàn)環(huán)境與數(shù)據(jù)

      實(shí)驗(yàn)在由3個(gè)計(jì)算節(jié)點(diǎn)組成的集群上進(jìn)行,每個(gè)計(jì)算節(jié)點(diǎn)中配置有4核CPU、8GB RAM和30GB 7200RPM的HDD,實(shí)驗(yàn)環(huán)境如表1所示。

      表1 實(shí)驗(yàn)環(huán)境系統(tǒng)信息Table 1 Experimental environment system information

      實(shí)驗(yàn)數(shù)據(jù)基于Landsat8數(shù)據(jù)集,本實(shí)驗(yàn)采用十景Landsat8數(shù)據(jù)集作為實(shí)驗(yàn)數(shù)據(jù),數(shù)據(jù)集及數(shù)據(jù)量如表2所示。

      表2 數(shù)據(jù)集Table 2 Data set

      2.3 實(shí)驗(yàn)結(jié)果監(jiān)測(cè)

      DataboxMR與GeoTrellis分別讀取并處理十景遙感影像,并將計(jì)算后的遙感數(shù)據(jù)寫入相應(yīng)的存儲(chǔ)系統(tǒng)。在該過(guò)程中,分別記錄分布式處理任務(wù)的消耗時(shí)間、CPU占用率、內(nèi)存占用率和網(wǎng)絡(luò)傳輸占用等性能指標(biāo)。時(shí)間消耗通過(guò)監(jiān)測(cè)Linux系統(tǒng)時(shí)間實(shí)現(xiàn),后三者通過(guò)Ganglia監(jiān)測(cè)記錄。Ganglia是UC Berkely發(fā)起的開(kāi)源項(xiàng)目,可對(duì)分布式集群的所有計(jì)算資源進(jìn)行監(jiān)測(cè),通過(guò)Web頁(yè)面顯示監(jiān)測(cè)結(jié)果。實(shí)驗(yàn)過(guò)程中,通過(guò)為集群部署Ganglia的方式實(shí)時(shí)監(jiān)測(cè)集群處理任務(wù)時(shí)間段內(nèi)的系統(tǒng)資源(CPU占用率、內(nèi)存占用率、網(wǎng)絡(luò)負(fù)載)變化,并記錄反饋監(jiān)測(cè)結(jié)果。

      2.3.1 計(jì)算時(shí)間

      為驗(yàn)證DataboxMR處理遙感影像數(shù)據(jù)的速度,相同實(shí)驗(yàn)條件下,對(duì)相同數(shù)據(jù)集執(zhí)行NDVI計(jì)算,基于Linux的系統(tǒng)時(shí)間,對(duì)讀取遙感數(shù)據(jù)、分析遙感數(shù)據(jù)和寫遙感數(shù)據(jù)處理結(jié)果三個(gè)階段時(shí)間分別監(jiān)測(cè)記錄,各階段時(shí)間消耗情況如表3所示。

      去噪模塊的核心在于將噪聲分類,通過(guò)不同的濾波器進(jìn)行處理。均值濾波是對(duì)數(shù)據(jù)求均值,中值濾波采用分組排序:首先對(duì)列數(shù)據(jù)進(jìn)行排序,之后對(duì)排序后的每行數(shù)據(jù)排序得到每行的中值,最后對(duì)每行數(shù)據(jù)的中值排序得到中值[5]。

      表3 GeoTrellis與DataboxMR時(shí)間消耗Table 3 Time consumption of GeoTrellis and DataboxMR

      表3表明,相同實(shí)驗(yàn)條件下,對(duì)相同遙感數(shù)據(jù)執(zhí)行NDVI計(jì)算,DataboxMR讀寫磁盤數(shù)據(jù)的時(shí)間相較于GeoTrellis讀寫HDFS數(shù)據(jù)更快。由于最終處理數(shù)據(jù)為矩陣形式,因此處理過(guò)程消耗時(shí)間相近,差異較小。因此,由實(shí)驗(yàn)結(jié)果可知DataboxMR的I/O速度較快。若將數(shù)據(jù)存于主流空間數(shù)據(jù)庫(kù)或?qū)ο蟠鎯?chǔ)系統(tǒng),其讀寫性能可進(jìn)一步提升。

      2.3.2 CPU占用

      為觀察DataboxMR執(zhí)行分布式計(jì)算時(shí)CPU占用變化,分別監(jiān)測(cè)集群整體和各節(jié)點(diǎn)的CPU占用變化。

      圖8(左上)表明,GeoTrellis在Spark環(huán)境下執(zhí)行遙感影像分布式處理時(shí),任務(wù)提交后,集群整體CPU占用率最高超過(guò)25%,普遍維持在15%~20%之間。DataboxMR的CPU占用率峰值在4%以下,普遍穩(wěn)定在3%~3.5%之間,GeoTrellis的占用面積(曲線與坐標(biāo)軸的積分)大于DataboxMR的面積。因此,分布式處理遙感數(shù)據(jù)時(shí),DataboxMR比GeoTrellis占用更少的CPU資源。圖8(右上、左下、右下)表明,集群各節(jié)點(diǎn)CPU占用率均出現(xiàn)明顯變化,未出現(xiàn)明顯負(fù)載不均衡,未產(chǎn)生明顯數(shù)據(jù)傾斜,分布式任務(wù)執(zhí)行狀態(tài)正常。對(duì)比各節(jié)點(diǎn)CPU占用率變化可知,DataboxMR的CPU占用率明顯低于GeoTrellis的CPU占用率。綜上所述,DataboxMR進(jìn)行遙感數(shù)據(jù)分布式處理時(shí)比GeoTrellis占用更少CPU資源。

      圖8 CPU占用變化Fig.8 CPU usage changes

      2.3.3 內(nèi)存占用

      為驗(yàn)證分布式處理過(guò)程中內(nèi)存占用變化情況,分別監(jiān)測(cè)處理過(guò)程中集群內(nèi)存變化和各節(jié)點(diǎn)內(nèi)存變化。圖9表示內(nèi)存使用時(shí)的占用變化,圖10表示剩余空閑內(nèi)存變化。

      圖9 內(nèi)存占用變化Fig.9 Memory usage changes

      圖10 空閑內(nèi)存變化Fig.10 Free memory changes

      圖9(左上)表示GeoTrellis和DataboxMR處理相同任務(wù)時(shí)集群內(nèi)存使用變化。結(jié)果表明,前者處理時(shí)內(nèi)存占用面積(占用曲線與坐標(biāo)軸之間的積分)大于后者的面積。因此,可知前者處理任務(wù)時(shí)內(nèi)存占用更大。圖9(右上、左下、右下)表示集群各節(jié)點(diǎn)處理相同任務(wù)時(shí)內(nèi)存占用變化。結(jié)果表明,各節(jié)點(diǎn)前者面積均大于后者面積,說(shuō)明處理任務(wù)時(shí)GeoTrellis各節(jié)點(diǎn)的內(nèi)存占用率大于DataboxMR。圖10(左上)表明,GeoTrellis提交分布式任務(wù)至Spark運(yùn)行環(huán)境時(shí),空閑內(nèi)存出現(xiàn)明顯減少,維持在2GB~4GB之間。提交分布式計(jì)算任務(wù)至DataboxMR時(shí),空閑內(nèi)存資源變化較平緩,維持在5GB~6GB之間,前者平均空閑值小于后者。圖10(右上、左下、右下)表明,各節(jié)點(diǎn)執(zhí)行計(jì)算任務(wù)時(shí)空閑內(nèi)存均出現(xiàn)了明顯減少,但DataboxMR各節(jié)點(diǎn)的空閑內(nèi)存相較于GeoTrellis平均值更大,即相對(duì)空閑內(nèi)存更多。綜上所述,執(zhí)行遙感數(shù)據(jù)處理任務(wù)時(shí),GeoTrellis消耗的內(nèi)存資源比DataboxMR更多。

      2.3.4 網(wǎng)絡(luò)傳輸

      為驗(yàn)證網(wǎng)絡(luò)傳輸和通信效率,監(jiān)測(cè)網(wǎng)絡(luò)負(fù)載。圖11表示網(wǎng)絡(luò)輸入變化,圖12表示網(wǎng)絡(luò)輸出變化。

      圖12 網(wǎng)絡(luò)輸出變化Fig.12 Network output changes

      圖11-12(左上)表明,GeoTrellis處理遙感影像時(shí),從HDFS讀寫數(shù)據(jù)將產(chǎn)生大量網(wǎng)絡(luò)傳輸開(kāi)銷,最大輸入、輸出傳輸達(dá)到17.5MB/s左右。DataboxMR計(jì)算NDVI時(shí),最大輸入、輸出傳輸峰值在5MB/s以下,后者的面積(輸入、輸出曲線與坐標(biāo)軸之間的積分)明顯小于前者,為前者的1/3左右,說(shuō)明后者占用了更少的網(wǎng)絡(luò)資源。圖11-12(右上、左下、右下)表明,Spark集群中各節(jié)點(diǎn)從HDFS讀寫數(shù)據(jù)時(shí)輸入、輸出的網(wǎng)絡(luò)傳輸負(fù)載在6MB/s~10MB/s之間,網(wǎng)絡(luò)負(fù)載重,系統(tǒng)傳輸效率低。DataboxMR集群中各節(jié)點(diǎn)的輸入、輸出的網(wǎng)絡(luò)負(fù)載在3MB/s以下,數(shù)據(jù)傳輸?shù)木W(wǎng)絡(luò)開(kāi)銷明顯低于GeoTrellis,網(wǎng)絡(luò)占用低,對(duì)系統(tǒng)的網(wǎng)絡(luò)性能影響小,網(wǎng)絡(luò)通信效率高。綜上所述,執(zhí)行遙感數(shù)據(jù)處理時(shí),DataboxMR網(wǎng)絡(luò)傳輸開(kāi)銷比GeoTrellis更低,通信代價(jià)更小,網(wǎng)絡(luò)傳輸效率和通信效率更高。

      圖11 網(wǎng)絡(luò)輸入變化Fig.11 Network input changes

      3 實(shí)驗(yàn)結(jié)果分析

      實(shí)驗(yàn)從處理時(shí)間、CPU占用率、內(nèi)存占用率、網(wǎng)絡(luò)負(fù)載角度驗(yàn)證了DataboxMR處理遙感數(shù)據(jù)的性能。對(duì)比DataboxMR與基于Spark計(jì)算框架的GeoTrellis的處理性能,實(shí)驗(yàn)結(jié)果表明,前者的I/O時(shí)間、處理時(shí)間均比GeoTrellis少,處理輕量級(jí)任務(wù)的效率較高。前者處理任務(wù)時(shí)CPU占用率比后者低,前者平均剩余空閑內(nèi)存比后者高,即DataboxMR比GeoTrellis消耗更少的內(nèi)存資源。網(wǎng)絡(luò)傳輸從輸入占用和輸出占用兩方面進(jìn)行分析,前者輸入、輸出均約為后者的1/3,因此,DataboxMR相比于GeoTrellis的網(wǎng)絡(luò)負(fù)載更低。綜上所述,DataboxMR處理輕量級(jí)遙感數(shù)據(jù)分析任務(wù)時(shí),具有穩(wěn)定高效的特點(diǎn),相同實(shí)驗(yàn)條件下,占用更少的系統(tǒng)資源。

      4 結(jié)論

      將大數(shù)據(jù)技術(shù)與遙感數(shù)據(jù)處理技術(shù)深度融合是一個(gè)值得繼續(xù)探討的問(wèn)題[19]。數(shù)據(jù)密集型科學(xué)需要高效的計(jì)算框架提高數(shù)據(jù)分析效率[20],本文對(duì)目前遙感數(shù)據(jù)分布式處理面臨的一些挑戰(zhàn)做了詳細(xì)闡述并設(shè)法予以克服,設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)輕量級(jí)的分布式調(diào)度框架(DataboxMR),從處理輕量級(jí)任務(wù)、方便遷移、支持已有技術(shù)擴(kuò)展、提高用戶對(duì)調(diào)度系統(tǒng)的控制力等角度出發(fā),設(shè)計(jì)實(shí)現(xiàn)了RS-UDF以及雙層調(diào)度引擎。最后,與開(kāi)源框架GeoTrellis作對(duì)比實(shí)驗(yàn),分別計(jì)算遙感數(shù)據(jù)的NDVI,收集集群內(nèi)資源消耗情況,從不同角度對(duì)結(jié)果進(jìn)行了分析。結(jié)果表明,DataboxMR不僅具有高效處理輕量級(jí)任務(wù)的能力,而且相同實(shí)驗(yàn)條件下,比GeoTrellis消耗更少的時(shí)間和更少的CPU、內(nèi)存、網(wǎng)絡(luò)等系統(tǒng)資源,具有輕量高效的特點(diǎn)。

      隨著云計(jì)算技術(shù)的發(fā)展,在線計(jì)算平臺(tái)得到了空前的發(fā)展,在線計(jì)算可根據(jù)用戶個(gè)性化需求高效處理任務(wù)。RS-UDF自定義函數(shù)算子的特點(diǎn)可滿足用戶個(gè)性化的開(kāi)發(fā)需求,簡(jiǎn)單封裝已有算法和程序執(zhí)行輕量級(jí)分布式任務(wù)的特性,為用戶提供了一個(gè)高效易用的開(kāi)發(fā)環(huán)境。DataboxMR是在遙感影像數(shù)據(jù)處理領(lǐng)域的新技術(shù),可應(yīng)對(duì)遙感大數(shù)據(jù)帶來(lái)的挑戰(zhàn),可為遙感數(shù)據(jù)處理提供靈活、高效的服務(wù),可應(yīng)用于在線計(jì)算領(lǐng)域,提供科學(xué)數(shù)據(jù)端的在線交互分析[21]。該框架除分布式處理遙感數(shù)據(jù)外,還可支持傳統(tǒng)數(shù)據(jù)的批處理以及人工智能算法的分布式訓(xùn)練等,為多種數(shù)據(jù)處理任務(wù)及應(yīng)用場(chǎng)景提供分布式算力支撐。目前該調(diào)度框架已開(kāi)源,可通過(guò)https://gitee.com/gscloud_dbox/databox_pymapreduce地址訪問(wèn)。

      利益沖突聲明

      所有作者聲明不存在利益沖突關(guān)系。

      猜你喜歡
      引擎數(shù)據(jù)處理內(nèi)存
      認(rèn)知診斷缺失數(shù)據(jù)處理方法的比較:零替換、多重插補(bǔ)與極大似然估計(jì)法*
      ILWT-EEMD數(shù)據(jù)處理的ELM滾動(dòng)軸承故障診斷
      “春夏秋冬”的內(nèi)存
      藍(lán)谷: “涉藍(lán)”新引擎
      商周刊(2017年22期)2017-11-09 05:08:31
      基于希爾伯特- 黃變換的去噪法在外測(cè)數(shù)據(jù)處理中的應(yīng)用
      無(wú)形的引擎
      河南電力(2015年5期)2015-06-08 06:01:46
      基于Cocos2d引擎的PuzzleGame開(kāi)發(fā)
      基于內(nèi)存的地理信息訪問(wèn)技術(shù)
      基于POS AV610與PPP的車輛導(dǎo)航數(shù)據(jù)處理
      上網(wǎng)本為什么只有1GB?
      青州市| 桃源县| 始兴县| 江油市| 保定市| 通渭县| 新密市| 台北市| 门头沟区| 哈巴河县| 逊克县| 隆子县| 安龙县| 凤翔县| 芜湖市| 清远市| 遂川县| 枝江市| 乐业县| 乐山市| 甘德县| 舒兰市| 措美县| 吴江市| 银川市| 宿州市| 沙洋县| 宁夏| 邵阳市| 永靖县| 木里| 治县。| 定远县| 花垣县| 大埔县| 长治县| 依兰县| 朝阳区| 南宫市| 康乐县| 济源市|