快速檢索        
  農業資源與環境學報  2021, Vol. 38 Issue (6): 1152-1163  DOI: 10.13254/j.jare.2021.0530
0

引用本文  

李亮丹, 曄沙, 謝夏, 等. 基于Hive的高寒草地海量數據高效分析系統設計研究[J]. 農業資源與環境學報, 2021, 38(6): 1152-1163.
LI Liangdan, YE Sha, XIE Xia, et al. High-efficient analysis system for massive data of alpine grassland based on Hive[J]. Journal of Agricultural Resources and Environment, 2021, 38(6): 1152-1163.

基金項目

國家重點研發計劃課題(2020YFD1100204);四川省科技計劃項目(2020YFS0499)

Project supported

National Key R&D Program of China(2020YFD1100204);Sichuan Science and Technology Program(2020YFS0499)

通信作者

游小敏??E-mail: 285865210@qq.com

作者簡介

李亮丹(1998-), 女, 湖南婁底人, 碩士研究生, 主要研究方向為土地大數據。E-mail: 1441103854@qq.com

文章歷史

收稿日期: 2021-08-17
錄用日期: 2021-10-13
基于Hive的高寒草地海量數據高效分析系統設計研究
李亮丹1 , 曄沙1 , 謝夏2 , 胡月明1,2,3,4 , 謝健文1,3,4 , 周悟1 , 游小敏4     
1. 華南農業大學資源環境學院, 廣州 510642;
2. 海南大學熱帶作物學院, ???570228;
3. 青海-廣東自然資源監測與評價聯合重點實驗室, 西寧 810016;
4. 廣州市華南自然資源科學技術研究院, 廣州 510642
摘要: 解決高寒草地的退化問題需要對高寒草地退化現狀進行綜合評價,而這需要相關數據作為支撐,本研究設計并實現了一個基于Hive的高寒草地海量數據高效分析系統,能對高寒草地的海量數據進行可靠、高效地存儲分析。首先,平臺設計基于Hadoop、Hive、Sqoop環境,通過節點和集群配置等步驟搭建完成;然后,通過期望最大化(EM)算法進行數據填充、數據導入、數據分區存儲等步驟,完成數據抽取、轉換、加載(ETL)及數據存儲;最后,系統通過混合函數編碼實現模糊查詢功能,實驗測試表明系統達到了預定的效果。隨著文件大小的增加和總體數據規模的增大,系統整體存儲和讀取時間一直處于增長的狀態,但平均運行時間(平均處理1 MB數據所使用的時間)處于降低的趨勢,說明隨著數據量的增加,系統并行處理海量數據的能力得到體現。使用2014年青海省稱多縣高寒草地樣方監測數據和部分虛擬數據(總數據量約為3 958萬條,7.56 GB),對Hive集群以及關系型數據庫SQL Server的數據查詢效率進行對比。結果顯示,當查詢數據量為3 958萬條時,Hive集群數據查詢的時間為SQL Server查詢時間的67.8%。說明在數據量較大時,系統數據查詢的效率比SQL Server更高。通過HiveQL對高寒草地生態數據進行分析處理,并開展相應的對照實驗,對比發現,Hive數據分析技術與對照實驗的處理結果相同。綜上,將分布式數據倉庫技術應用于高寒草地海量數據的存儲與分析,較傳統的數據存儲與分析技術相比有明顯的進步。本系統對海量數據處理效率高、可開發性強,可以很好地滿足海量高寒草地數據的存儲和分析要求。
關鍵詞: 高寒草地    海量數據    存儲與分析    Hive    
High-efficient analysis system for massive data of alpine grassland based on Hive
LI Liangdan1 , YE Sha1 , XIE Xia2 , HU Yueming1,2,3,4 , XIE Jianwen1,3,4 , ZHOU Wu1 , YOU Xiaomin4     
1. College of Natural Resources and Environment, South China Agricultural University, Guangzhou 510642, China;
2. College of Tropical Crops, Hainan University, Haikou 570228, China;
3. Qinghai Guangdong Joint Key Laboratory of Natural Resources Monitoring and Evaluation, Xining 810016, China;
4. South China Academy of Natural Resources Science and Technology, Guangzhou 510642, China
Abstract: Solving the problem of alpine grassland degradation should conduct a comprehensive evaluation of the current situation of alpine grassland degradation, and this requires relevant data as support. This paper designs and implements a Hive-based high-performance system for analyzing massive data of alpine grassland, which can reliably and efficiently store and analyze the massive data of alpine grassland. First, the platform was designed based on the Hadoop, Hive, and Sqoop environments, and was completed through steps such as node and cluster configuration. Then, the data ETL(Extract-Transform-Load) and data storage were completed by using the EM (Expectation-Maximization) algorithm for data filling, importing data, and data partition storage. Finally, the system realized the fuzzy query function through mixed function coding, and the system had achieved the predetermined effect. The results showed as the file size increased, the overall data size increased, and the overall system storage and reading time were always increasing, however, the average running time(the average time for processing 1 MB of data) was decreasing, reflecting the system's high ability to process large amounts of data in parallel as the amount of data increased. Using the alpine grassland quadrat monitoring data and some virtual data from the counties in Qinghai Province in 2014, the total data volume was approximately 39.58 million(7.56 GB), and the efficiency of data query between the Hive cluster and the relational database SQL Server was compared. When the query data volume was 39.58 million, the Hive cluster data query time was 67.8% of the SQL Server. With the increase of data volume, the efficiency of system data query was higher than that of SQL Server. The ecological data of alpine grassland was analyzed and processed through HiveQL, and the corresponding control experiment was carried out. The comparison found that the Hive data analysis technology had the same processing result as the control experiment. In summary, distributed data warehouse technology is applied to the storage and analysis of massive data in alpine grasslands, which is a significant improvement over traditional data storage and analysis technologies. This system has high efficiency in processing massive data and strong developability, which can well meet the storage and analysis requirements of massive alpine grassland data.
Keywords: alpine grassland    massive data    storage and analysis    Hive    

高寒草地生態系統是我國海拔最高、面積最大的生態系統類型,也是我國重要的畜牧業基地,其對于高原地區的水源涵養、生物多樣性保護、固碳等生態功能具有不可替代的作用[1-4]。然而,高寒草地生態系統具有脆弱性與敏感性的特點,一旦被破壞,容易導致水土流失、江河湖泊斷流干涸、蟲鼠災害、沙塵暴等一系列生態災害問題。而高寒草地一旦退化,修復和治理往往需要很長時間,且要耗費極大的人力和物力資源。

為了解決高寒草地退化問題,我國在高寒草地生態系統監測、草地生態修復方面開展了大量的工作[5-8]。2000年,我國啟動青海三江源自然保護區生態保護和建設工程[5]。不少學者就三江源生態保護和建設工程的成效進行了定性或定量的分析[6],提出了啟示性的建議[7],并對三江源生態保護和建設成效進行了評估[8]。除此之外,也有大量的學者從事高寒區域生態評價、高寒草地評價等工作。在生態評價方面,氣候變化[9]、土壤特征[10]等是學者們關注的重點。在高寒草地評價方面,植被覆蓋變化[11]、生態因素與植被的關系[12]、草地退化評價[13]等也受到了廣泛關注。隨著國家相關部門和眾多學者對高寒草地多方面、多手段的監測和研究,其數據量也隨時間呈爆炸式增長,合理有效地利用高寒草地海量數據進行高寒草地退化研究,通過對價值密度較低的海量數據進行挖掘及綜合分析,不僅能夠系統、科學地對高寒草地的退化與沙漠化的情況進行評價,而且能夠為高寒草地監測與管理政策的科學制定提供理論依據。

基于海量數據進行高寒草地退化研究的基礎在于數據的存儲和分析。目前高寒草地涉及的數據按來源主要可歸納成4大類: ①Landsat系列、Sentinel系列、國產高分以及中分辨率成像光譜儀(MODIS)等多傳感器的遙感數據[14];②來自監測站點的監測數據,如氣候、生物量等基礎地理數據;③相關部門信息資料,如各類社會經濟統計表格、描述文獻、地形圖、CAD測繪圖件、GIS數據等;④實驗數據,如根據不同實驗目的布設樣點得到的各類土壤和草地健康系數、草地覆蓋度等監管指標數據??傮w來說,我國積累的高寒草地數據主要呈現以下特點: ①數據規模龐大,數據分布不均衡;②多源多結構數據并存,異構數據量大、種類多;③空間性強;④數據格式多樣,數據質量參差不齊。針對以上高寒草地數據的特點,本研究提出通過分布式技術解決其高效存儲與分析的問題,旨在為高寒草地的監測與管理提供更多的方法與思路,并為后續政策制定及決策提供科學的數據支持。

1 高寒草地海量數據分析系統整體設計 1.1 需求分析

針對高寒草地數據的特點,本系統設計與實現了基于Hive的高寒草地海量數據分析系統,以解決高寒草地退化評價中數據存儲與分析的問題,主要需求如下:

(1) 數據搜集

數據搜集是關鍵的第一步,需要遵循全面、準確、直觀、科學的原則,多渠道、多手段地對高寒草地實時監測數據及海量歷史數據進行搜集,主要包括監測站信息數據、草地類型數據、生物量數據、氣象數據、水文數據等。

(2) 數據管理

本研究需要完成對高寒草地海量數據可靠的分布式存儲。Hive支持各種數據類型,包括基礎數據類型tinyint、smallint、int、bigint、float、string等,同時也支持array、map、struct、union等復雜的數據類型。Hive支持的文件格式主要包括textfile(文本文件)、sequencefile(二進制文件)、rcfile(Hive推出的面向列的數據格式)。同時,Hive繼承了分布式文件系統HDFS的數據存儲性能,具有極優秀的拓展性,適合對大量的高寒草地數據進行存儲與處理。

(3) 數據分析

一方面,基于海量數據的高寒草地退化評價需要對高寒草地實時監測數據及海量歷史數據進行批處理,而現有的技術往往難以保證數據批處理的效率,存在計算能力不強的問題,因此,需要提高對海量數據批處理分析的效率。另一方面,植被生長狀況、植被生產力和土壤侵蝕狀況等都需要經過一系列復雜的分析和計算,然而通過簡單的分類、統計往往難以從海量高寒草地數據中獲取足夠的、有價值的信息,因此,需要提升系統的分析拓展能力,能夠通過編寫代碼或調用腳本的方式,完成代碼層面的拓展,滿足更新的分析需求。

1.2 數據來源

本研究數據由多個渠道獲取,主要數據來源為青海省草原總站、青海湖流域生態環境綜合數據平臺等,結合國內高寒草地研究領域的相關學術論文,以保證數據的真實性與數據處理的科學性。對于高寒草地退化,學者們主要從植被退化、土壤退化等方面進行研究[1, 15-19],參照相關研究內容,本研究從生物量、植被類型、土壤、氣象、水文等因子考慮,進行相關數據指標的確定。通過走訪青海大學、青海省草原總站、青海省圖書館、青海省環境監測中心站、青海省水土保持局、中國科學院西北高原生物研究所、青海省測繪地理信息局、青海省氣象局等單位,最終完成數據的搜集。完成數據搜集后,通過三個標準(表 1)進行數據的篩選。

表 1 高寒草地數據搜集篩選標準 Table 1 Data collection and selection criteria for alpine grassland
1.3 整體架構設計

本系統的整體架構分為數據源、數據存儲模塊、數據分析模塊、數據應用。各模塊功能如圖 1所示。

圖 1 系統整體架構設計圖 Figure 1 The overall system design diagram

數據源: 系統搜集高寒草地海量科學數據,對高寒草地生態、基礎環境、社會經濟等各方面的信息進行記錄。數據源為整個系統中最為基礎的模塊。本研究的數據分為高寒草地的歷史數據與草地實時監測數據。歷史數據采用關系型數據庫進行管理,為本系統提供原始數據,這些原始數據通過草地普查資料、草地資源統計資料、草地工程項目資料等方式獲取,存儲于MySQL數據庫中;草地實時監測數據主要通過各草地監測站點、氣象監測站點、水文監測站點等監測站點網絡動態監測的數據匯總得到,主要包括監測站信息、草地類型、生物量、氣象、水文。

數據存儲模塊: 數據存儲模塊的功能主要由Hadoop平臺完成,主要為HDFS、MapReduce、Hive和Sqoop,各組件承擔起系統數據存儲的相應功能。通過拓展并合理應用以上組件,將海量數據導入Hive中,完成數據存儲。

數據分析模塊: 數據存儲是系統的基礎,對存儲于系統中的海量數據進行數據查詢和分析是本研究的重點之一。目前,已構建排序函數、聚集函數、數據過濾模型等,用于高寒草地海量數據精細與復雜分析,以進行決策輔助與狀態監測。并且提供相應易于控制與操作的用戶接口,使得非專業技術人員可以進行管理與訪問。

數據應用: 本系統的開發是為基于海量數據的高寒草地退化評價服務的,旨在為高寒草地植被生長狀況、植被生長力、土壤侵蝕等高寒草地退化綜合評價提供相應的技術支持,最終實現數據應用。

2 高寒草地海量數據分析系統具體實現 2.1 基于Hadoop的高寒草地海量數據處理平臺搭建

基于Hadoop的高寒草地海量數據處理平臺搭建過程主要包括以下三個方面: 單節點配置、集群配置、Hadoop組件配置。主要的技術流程如圖 2所示。

圖 2 基于Hadoop的高寒草地海量數據處理平臺搭建流程 Figure 2 The process of building a massive data processing platform for alpine grassland based on Hadoop

(1) 單節點配置

選擇一臺計算機節點作為名稱節點,其余的計算機節點作為數據節點。在每個節點上進行系統環境的配置,安裝SSH(Secure Shell)登陸、安裝JAVA并配置環境變量(本研究使用OpenJDK 1.7作為JAVA環境)、選擇穩定的Hadoop 2.7.3版本進行安裝,并通過命令行驗證單節點配置是否完成。

(2) 集群配置

集群配置的第一步是進行網絡配置,確保集群內所有節點處于同一局域網內。第二步是通過SSH配置無密碼登陸節點,使得名稱節點可以無密碼SSH登陸到各數據節點上。第三步是通過修改配置文件完成集群環境配置。第四步是集群Hadoop驗證,并通過命令行或訪問Hadoop的Web界面的方式驗證集群搭建是否成功。

(3) Hadoop組件配置

在完成Hadoop集群配置后,需進行Hive環境及Sqoop環境的部署。Hive環境部署步驟如下: 第一步是下載并解壓最新穩定版本的Hive源程序,本研究使用Hive 1.2.2;第二步是修改配置Hive的PATH環境變量;第三步是修改Hive的配置文件;第四步是選擇MySQL作為Hive的元數據庫而不是使用自帶的derby元數據庫;第五步是啟用Hive,并測試驗證是否安裝成功。Sqoop環境部署步驟如下: 第一步是下載并解壓最新穩定版本的Sqoop程序;第二步是修改Sqoop的配置文件;第三步是配置Sqoop的環境變量;第四步是將MySQL驅動包拷貝到SQOOP_HOME/lib;第五步是測試利用Sqoop將遠程數據導入Hive是否成功。

2.2 數據ETL

ETL是英文Extract-Transform-Load的縮寫,它定義為將數據從來源經過抽取(Extract)、轉換(Transform)、加載(Load)到數據庫的過程。其主要的步驟包括: 從數據源中獲取數據,數據清洗以提高數據質量,最終按照預先定義好的數據模型將數據加載到數據倉庫中。本研究從數據源獲取的草地實時監測數據經過數據預處理后,導入已設計完成的高寒草地生態數據表中,完成數據ETL處理。

(1) 數據預處理

通過對源數據的分析,對源數據進行基本的預處理,進行數據填充[20]的操作,將得到的數據從Excel格式轉換為文本文件格式進行存儲,每條高寒草地數據中的字段用制表符分隔,每條記錄用換行符分隔,以適應HDFS的存儲方式,方便導入Hive中。

本研究以2012—2014年部分草地監測統計數據中完整的生物量數據為例,進行數據填充預處理,具體數據如表 2所示,共8個字段,69條記錄。對該完整數據集中的紫花針茅和矮火絨草兩個字段各隨機去除6個數據,構建完全隨機缺失數據集(Missing completely at random,MCAR),數據缺失率略低于10%。由于樣方之間聯系緊密,且數據缺失率不高,因此,選用EM算法[21(] Expectation-Maximum,也稱期望最大化算法)對構建缺失數據集進行填充。

表 2 草地鮮草質量樣例預處理數據 Table 2 Sample data of fresh grass weight for data preprocessing

通過EM算法對缺失的草地生物量樣例數據進行填充,并對填充后數據集與完整數據集進行平均絕對誤差[22]、平均相對誤差[23]、最大絕對誤差[24]、均方根誤差[25-26]等四個指標的對比,填充結果見表 3表 4。

表 3 紫花針茅三組缺失數據填充結果(%) Table 3 Filling results of three groups of missing data of Stipa purpurea(%)
表 4 矮火絨草三組缺失數據填充結果(%) Table 4 Filling results of three groups of missing data of Edelweiss dwarf (%)

從紫花針茅字段的三組缺失數據填充結果(表 3)來看,三組填充結果的平均絕對誤差第一組最高,第三組次之,第二組最低,與之相對應的第一組平均相對誤差最高,達到了39.12%,第二組、第三組分別為16.53%、26.81%。在最大絕對誤差方面,第一組為25.91%,也遠高于第二組、第三組。從表 3可知,第一組的平均相對誤差較大,說明第一組填充值與真實值之間的偏差與真實值的比值較大,原因是所構建的缺失數據集的缺失率不高,當第一組出現最大絕對誤差達到25.91% 的數據時,對整個數據集的填充造成比較大的影響。在反映數據填充精密度的均方根誤差上,第一組最大,為12.34%,第二組最小,為2.30%,說明第一組的填充值與真實值之間的離散程度更高。

從矮火絨草字段的三組缺失數據填充結果(表 4)來看,三組填充結果的平均絕對誤差第二組、第三組較為接近,分別為11.72%、11.01%,第一組相對其他兩組更低,說明單個填充值與真實值之間的偏差不大。三組填充結果的平均相對誤差值都不高,說明三組數據填充整體效果較好,數據可信度較高。在最大絕對誤差方面,第二組、第三組均比第一組的值更高,這一特點同樣在均方根誤差上有所反映,第二組、第三組的均方根誤差比第一組的值高,這是由于均方根誤差對第一組值中較大或較小的誤差較為敏感。由于不同樣方、不同樣地的生長條件不同,紫花針茅和矮火絨草生物量的真實值間也存在差異,因此這三組數據填充的最大絕對誤差較大。

一般來說,平均相對誤差更能反映數據填充的可信程度,平均相對誤差的值越小,數據填充效果越好[23]??傮w而言,相較于孫華艷等[27]和熊秋芬等[28]研究中的數據精度,紫花針茅和矮火絨草字段數據填充結果的平均相對誤差都較低,說明數據填充效果較好,數據預處理可信度較高。

(2) 導入數據

把數據預處理之后得到的結構化數據映射為數據庫表,導入Hive數據倉庫內。21世紀以來,針對高寒草地生態變遷與退化的特性,我國在高寒區域廣泛、連續地開展草地生態系統的監測活動,形成了一系列完整的生態監測站網體系,在這個過程中也累積了海量的歷史數據,并產生了不斷更新的實時監測數據[5, 29]。

對于海量的歷史數據與實時監測數據,本研究采用不同的處理方式導入Hive中,完成數據的存儲。對于海量的歷史數據,使用Sqoop從MySQL關系型數據庫中導入到Hive。將海量歷史數據導入到Hive中的方法建立在已經搭建完成Sqoop的使用環境。首先通過Sqoop list database命令定位到在Hive中需要導入數據的數據庫;然后篩選所需要的表及其相關的字段、屬性;最后通過Sqoop import命令將數據導入到Hive中。而對于實時監測數據,導入Hive通常有兩種方法: ①直接從本地加載數據到Hive數據倉庫中,適用于數據量不大的情況;②數據文件導入Hadoop的分布式文件系統HDFS中,再利用Hive命令將數據從HDFS中加載至Hive,適用于數據量較大的情況。本研究使用方法②將結構化數據導入草地類型主題表中指定的分區內。

2.3 數據存儲

(1) 數據結構的設計

根據表 1的標準,最終確定高寒草地關注度較高的數據: 監測站信息、草地類型數據、生物量數據、氣象數據、水文數據。根據以上數據內容對數據存儲進行設計,歸納為以下5個表: site_information、grasstype_ data、biomass_data、meteorological_data、hydrological_ data,主要的數據類型為string、int、float、date。本文以水文數據表(表 5)為例進行數據結構設計。

表 5 水文數據表字段 Table 5 Hydrological data table fields

(2) 數據存儲分區設計

創建高寒草地數據庫,設計高寒草地生態數據表,本文以草地類型數據表為例進行描述。本研究使用分區的方法對高寒草地數據表進行設計,主要原因如下: ①由于Hive適合對數據進行批量處理,在處理單條數據時較慢,每一次數據查詢都要對數據倉庫中所有的數據進行檢索,因此,通過對數據表進行分區優化可以達到隔離數據和優化查詢的目的;②采用分區的方法可以建立多維度的數據模型,在分析數據時可以選擇不同的維度對數據進行處理。具體的分區如下。

時間: 對于任何數據源的任何數據,時間都是一個很重要的屬性,對于高寒草地的數據來說,時間是最必要、最基本的維度。本研究從歷史數據庫中導入日積月累的數據,同時也導入草地實時監測的更新數據,以保持系統的可靠性,因此,以時間為標準進行分區很有必要。

地域: 考慮高寒草地數據主要從監測站點或者草地樣方監測得到,本研究將高寒草地的數據以監測站點所在行政單位的行政區劃代碼為分區依據,同一行政區的所有草地監測數據被放在同一個分區之內,使得對于某個特定行政區內的數據進行查詢和分析時,只需掃描分區內的數據。

來源: 本系統的數據來源為青海省草原總站、青海省環境監測中心站、青海省氣象局等部門,為了區分數據來源,將數據來源作為分區的標準。

高寒草地的數據主要由科學實地考察或者監測站點定時監測獲得,因此,本研究通過以數據測定的監測站所在行政單位的行政區劃代碼為分區依據,使得對于某個特定行政區內的數據進行查詢和分析時,只需掃描分區內的數據,避免對所有數據進行檢索,從而大幅提升數據查詢與分析的效率。另外,可以根據實際工作的需求,調整“分區”的劃分,如以時間、來源、海拔等條件進行分區也是常用的選擇。

2.4 數據查詢分析

數據分析的目的是根據高寒草地數據的具體內容,通過本系統的數據處理過程,將處理結果進行保存并展示。根據高寒草地工作中的具體需求,本研究設計并實現以下幾類數據查詢與數據分析的函數。

(1) 數據查詢

數據查詢是通過設置某些查詢條件,從表或其他查詢中選取全部或者部分數據,以表的形式顯示數據供用戶瀏覽。系統主要提供精確查詢、模糊查詢、表關聯查詢等基本數據查詢方式,以從海量高寒草地數據中找到所需記錄。

(2) 數據分析

根據Hive的特性及高寒草地海量數據的特點,本研究設計以下數據分析的函數用于處理高寒草地海量數據,主要包括: 排序聚集函數、極限函數、嵌套函數、分片函數等。

嵌套函數: 本研究構建嵌套函數,通過設計相關的嵌套查詢語句查找每個水文監測站每年的最高徑流量的均值。

Hive> SELECT site_code,AVG(max_runoff)

>FROM(

??> SELECT site_code,year,MAX(runoff) AS

max_runoff

??> FROM hydrological_data

??> WHERE runoff!=9999

??> GROUP BY site_code,year)

??>GROUP BY site_code

??分片函數: 本研究通過構建分片函數進行數據分析,下文為水文數據分析示例。

??Hive > CREATE table hydrology_ntile AS

??>SELECT runoff,flow_rate,

??>water_level,water_temperature,

??>water_quality,precipitation,date

??>ntile(2)OVER(ORDER BY runoff desc)AS rn

??>FROM hydrological_data;

??Hive > SELECT‘avg_runoff’AS inf,

??>e1.avg_runoff_up_50 AS avg_runoff_up_50,

??>e2.avg_runoff_down_50 AS avg_runoff_down_50

??>FROM

??>(SELECT AVG(runoff)AS avg_runoff_up_50

??> FROM hydrology_ntile WHERE rn=1)e1

??>JOIN

??>(SELECT AVG(runoff)AS avg_runoff_down_50

??> FROM hydrology_ntile WHERE rn=2)e2

??>ON(e1. id=e2.id);

2.5 后置處理

(1) 查看系統執行計劃

在執行完成查詢分析處理后,可以通過explain關鍵字查看執行查詢計劃的詳細信息,包括抽象語法樹、Hive執行各階段之間的依賴圖、執行語句所對應的MapReduce代碼及每個階段的信息,以上信息有助于對查詢分析處理進行調優,更加高效地使用Hive。

(2) 數據分析結果保存

在完成數據查詢分析處理后,需要對分析結果進行保存以便日后調用。由于經過分析查詢得到的結果往往是經過篩選的數據或經計算得到的成果,因此數據量不會太大。為了方便使用,本系統使用insert overwrite local directory語句將得到的結果保存在本地系統,方便查看。在完成保存結果后,可以通過shell語句調用vim或者gedit文本編輯器對數據處理結果進行查看。

3 高寒草地海量數據分析系統性能測試

利用已經實現的基于Hive高寒草地海量數據分析系統,分析其整體運行的情況,并通過設計三組實驗的方式,對系統各項主要性能進行測試,了解本系統是否能滿足高寒草地海量生態數據存儲與分析的需求,得出本系統在處理海量數據方面的性能特點。本文對開展的三個實驗進行說明。

3.1 測試實驗

(1) 第一組實驗

為了驗證Hadoop平臺是否對海量數據的存儲有很好的適應性,本研究使用Hadoop的基準測試工具TestDFSIO測試Hadoop平臺的文件讀寫性能。通過TestDFSIO工具,改變系統存儲與讀取文件的文件大小、文件數量,獲取總運行時間和平均運行時間,以對集群的性能進行評價??刂莆募盗繛?0,文件大小從5 MB增加到500 MB,對系統的讀寫性能進行測試,獲取總運行時間和平均運行時間,對系統的大小、文件讀寫性能進行評價??紤]到單次實驗的偶然性,本研究進行了3次實驗取其平均值,實驗結果如圖 3圖 4所示。

圖 3 Hadoop平臺的存儲數據文件與運行時間之間的關系折線圖 Figure 3 The line graph of the relationship between the stored data files and the running time of the Hadoop platform
圖 4 Hadoop平臺的讀取數據文件大小與運行時間之間的關系折線圖 Figure 4 The line graph of the relationship between the size of the read data file and the running time of the Hadoop platform

圖 3是數據規模的變化對系統存儲數據文件與運行時間的影響。由圖 3可知,隨著文件大小的增加和總體數據規模的增大,系統的總運行時間一直呈增長的狀態,但是平均運行時間(平均寫1 MB數據所使用的時間)呈降低的趨勢??傔\行時間在文件大小高于100 MB后,有非常明顯的拐點且以更高的斜率上升,這與數據量的增加有關,說明系統對于大數據量的存儲具有良好的性能。

圖 4是數據規模的變化對系統讀取數據文件與運行時間的影響。由圖 4可知,隨著文件大小的增加和總體數據規模的增大,系統的總運行時間一直呈增長的狀態,但是平均運行時間呈降低的趨勢,說明隨著數據量的增加,系統讀取海量數據的能力也增強。

以上說明隨著數據量的增加,系統并行處理海量數據的能力得到體現。因此,Hadoop集群對高寒草地海量數據的存儲有很好的適應性。

(2) 第二組實驗

為了解Hive在分析海量高寒草地數據方面的效率,本研究對Hive以及關系型數據庫RDBMS對數據處理的性能進行對比。測試數據采用2014年青海省稱多縣草地樣方監測數據和部分虛擬數據,總數據量約為3 958萬條,7.56 GB。對此數據采用SQL Server 2008與Hive集群進行字段“植物種類”中的查詢處理,得到數據處理性能的對比??紤]到單次實驗的偶然性,每組實驗進行三次處理并取平均值得到最后結果。實驗結果如圖 5所示。

圖 5 高寒草地分析數據的數據量與運行時間關系折線圖 Figure 5 The line graph of the relationship between the data volume and the running time of the analysis of alpine grassland data

實驗結果表明,當數據量較小的時候,RDBMS的處理效率更高,本系統并行處理效率沒有體現,但隨著數據量的增大,當數據量超過350萬條后,本系統處理效率逐漸超過RDBMS,Hive處理海量數據的優勢十分明顯。這是由于本系統是建立在Hadoop平臺上的數據批處理技術,集群對環境的初始化、任務調度及數據傳輸耗時較長,但當數據規模逐漸增大時,這些額外耗時基本穩定,額外耗時所占比例減少,本系統對海量數據的分析優勢得以體現。實驗證明,本系統對高寒草地海量數據的分析效率較高。

(3) 第三組實驗

在創建基于Hive的高寒草地生態數據倉庫后,可以通過HiveQL對高寒草地生態數據進行分析處理,從海量數據中獲取有用信息。為了驗證本系統對海量數據的分析處理能力,開展第三組實驗,實驗采用2000—2015年青海省草地類型數據,從中統計青海省東南部三縣2007—2014年的主要草地類型及其營養枝與生殖枝高度,通過本系統分析處理之后得到的結果如圖 6所示。主要植物種類為: 早熟禾、火絨草、高山嵩草、蒲公英、龍膽、苔草、馬先蒿,其中早熟禾與蒲公英的營養枝、生殖枝高度較高,火絨草與高山嵩草高度較低。

圖 6 Hive系統數據分析處理結果 Figure 6 Data analysis and processing results of the Hive system

為了驗證以上數據分析結果的正確性,本研究開展相應的對照實驗。首先從2000—2015年青海省草地類型數據中篩選出2007—2014年數據,再從中篩選出研究區的數據。然后,通過多次使用計數函數的方法統計各草地類型出現的頻次,并對其進行排序,提取研究區最主要的草地類型。之后,分別計算每種草地類型的營養枝與生殖枝的高度,結果見圖 7。最后,將Hive數據分析技術得到的結果與對照實驗結果進行比對,發現兩組處理結果相同。因此,實驗證明,基于Hive的數據分析技術可以從海量高寒草地生態數據中提取有效信息,分析效率較高,分析結果對于草地退化評價和草地生態保護等工作都具有較好的指導意義。

圖 7 對照實驗數據分析處理結果 Figure 7 Data analysis and processing results of control experiments
3.2 實驗結果

為了測試本系統能否滿足高寒草地海量數據存儲與分析的需求,一共進行3組實驗,結果表明: ①基于Hadoop的集群面對數據量增加時,整體并行處理能力得到體現,集群對海量數據的存儲、讀取都有很好的適應性。②Hive系統對高寒草地海量數據進行處理時,相較RDBMS方法具有更高的分析效率。③對照試驗表明,Hive系統可以從海量高寒草地數據中提取有效信息。綜上,Hive系統在對海量高寒草地數據進行存儲和數據分析方面具有良好的性能,能夠有效滿足高寒草地海量數據的存儲與分析要求。

4 結論與展望 4.1 結論

根據高寒草地數據存儲的需要,本研究搭建基于Hadoop的高寒草地海量數據處理平臺。使用基于Hive的分布式數據倉庫技術進行結構化數據的存儲,使用HiveQL語句對數據進行分析。通過使用EM算法進行數據填充、數據導入、數據分區存儲等步驟完成數據ETL及存儲。之后,通過函數編碼實現系統內各查詢功能、分析功能,將數據分析結果進行后置處理,完成高寒草地海量數據分析。最后,進行系統性能測試。主要結論如下:

(1) Hadoop平臺具有較強的數據存儲和讀取性能。在文件數量為10個,每個文件大小增加時,總體數據規模增大,系統整體存儲、讀取時間一直處于增長的狀態,但是平均運行時間(平均處理1 MB數據所使用的時間)呈降低的趨勢。說明隨著數據量的增加,系統并行處理海量數據的能力得到體現。

(2) 基于Hive的高寒草地數據分析系統對不斷增長的海量數據具有較好的并行處理能力,并在查詢的數據量超過350萬條時,查詢效率比SQL Server更高。

研究結果對高寒草地海量數據的存儲和分析提供了新的思路及可行的方法,且能夠滿足實際應用的需求,對高寒草地海量數據的可靠存儲和高效分析具有重要意義。

4.2 展望

本研究初步設計完成基于Hive的高寒草地海量數據分析系統,主要的功能均已實現,相較于傳統的Oracal、Mysql技術具有拓展性能更強、計算效率更高的優勢。但還有許多工作需要進一步研究和探討,具體如下:

(1) 系統功能的拓展

本系統的數據查詢、數據分析功能是基于Hive進行設計實現的,通過對Hive的特性研究了解到,仍有許多拓展性的技術有待開發應用于高寒草地海量數據分析系統??梢酝ㄟ^編寫更多的用戶定義函數(UDF),并在數據查詢分析的時候調用,完成系統拓展,使得系統功能更豐富與強大。

(2) 可視化交互界面

本系統目前由專業程序員使用,考慮到成本及開發時間因素,暫時沒有提供可視化用戶交互界面。因為很多的系統功能仍可進行拓展,目前的主要工作目標仍放在完善系統功能上,在系統運行過程中并未提供用戶交互界面,因此,設計美觀大方的系統可視化界面將是未來研究的一個重點。

(3) 未來的研究方向

本系統是搭建在Hadoop分布式計算框架上,通過對Hive數據倉庫工具進行開發實現的,Hive只是本研究應用的所屬于Hadoop的其中一個工具,而在Hadoop生態系統中仍有許多工具有待研究以應用于高寒草地數據的存儲分析。HBase可以用于高寒草地多源異構海量數據的存儲,研究重點可放在基于HBase對矢量空間數據并行存儲和查詢或者基于HBase對遙感影像進行多維度并行存儲。

參考文獻
[1]
張騫, 馬麗, 張中華, 等. 青藏高寒區退化草地生態恢復: 退化現狀、恢復措施、效應與展望[J]. 生態學報, 2019, 39(20): 7441-7451.
ZHANG Q, MA L, ZHANG Z H, et al. Ecological restoration of degraded grassland in Qinghai-Tibet alpine region: Degradation status, restoration measures, effects and prospects[J]. Acta Ecologica Sinica, 2019, 39(20): 7441-7451.
[2]
張中華, 周華坤, 趙新全, 等. 青藏高原高寒草地生物多樣性與生態系統功能的關系[J]. 生物多樣性, 2018, 26(2): 111-129.
ZHANG Z H, ZHOU H K, ZHAO X Q, et al. Relationship between biodiversity and ecosystem functioning in alpine meadows of the Qinghai-Tibet Plateau[J]. Biodiversity Science, 2018, 26(2): 111-129.
[3]
孫鴻烈, 鄭度, 姚檀棟, 等. 青藏高原國家生態安全屏障保護與建設[J]. 地理學報, 2012, 67(1): 3-12.
SUN H L, ZHENG D, YAO T D, et al. Protection and construction of the national ecological security shelter zone on Tibetan Plateau[J]. Acta Geographica Sinica, 2012, 67(1): 3-12.
[4]
謝高地, 魯春霞, 冷允法, 等. 青藏高原生態資產的價值評估[J]. 自然資源學報, 2003(2): 189-196.
XIE G D, LU C X, LENG Y F, et al. Ecological assets valuation of the Tibetan Plateau[J]. Journal of Natural Resources, 2003(2): 189-196. DOI:10.3321/j.issn:1000-3037.2003.02.010
[5]
邵全琴, 樊江文, 劉紀遠, 等. 三江源生態保護和建設一期工程生態成效評估[J]. 地理學報, 2016(1): 3-20.
SHAO Q Q, FAN J W, LIU J Y, et al. Assessment on the effects of the first-stage ecological conservation and restoration project in Sanjiangyuan region[J]. Acta Geographica Sinica, 2016(1): 3-20.
[6]
邵景安, 邵全琴, 蘆清水, 等. 農牧民響應政府主導生態建設工程的外部不經濟性——以江西山江湖和青海三江源為例[J]. 自然資源學報, 2013, 28(11): 1879-1890.
SHAO J A, SHAO Q Q, LU Q S, et al. Negative external effect of farmers and herdsmen' response to government leading ecological construction projects: A comparative analysis of mountain-river-lake of Jiangxi and Three-River headwaters of Qinghai[J]. Journal of Natural Resources, 2013, 28(11): 1879-1890. DOI:10.11849/zrzyxb.2013.11.005
[7]
劉紀遠, 邵全琴, 樊江文. 三江源生態工程的生態成效評估與啟示[J]. 自然雜志, 2013, 35(1): 40-46.
LIU J Y, SHAO Q Q, FAN J W. Ecological construction achievements assessment and its revelation of ecological project in Three Rivers headwaters region[J]. Chinese Journal of Nature, 2013, 35(1): 40-46.
[8]
LI J, LIU D, WANG T, et al. Grassland restoration reduces water yield in the headstream region of Yangtze River[J]. Scientific Reports, 2017, 7(1): 2162. DOI:10.1038/s41598-017-02413-9
[9]
劉正佳, 邵全琴, 王絲絲. 21世紀以來青藏高寒草地的變化特征及其對氣候的響應[J]. 干旱區地理, 2015, 38(2): 275-282.
LIU Z Z, SHAO Q Q, WANG S S. Variation of alpine grasslands and its response to climate warming in the Tibetan Plateau since the 21st Century[J]. Arid Land Geography, 2015, 38(2): 275-282.
[10]
陳驥, 曹軍驥, 魏永林, 等. 青海湖北岸高寒草甸草原非生長季土壤呼吸對溫度和濕度的響應[J]. 草業學報, 2014, 23(6): 78-86.
CHEN J, CAO J J, WEI Y L, et al. Effect of grazing exclusion on soil respiration during the dormant season in alpine meadow grassland ecosystems on the northern shore of Qinghai Lake, China[J]. Acta Prataculturae Sinica, 2014, 23(6): 78-86.
[11]
劉憲鋒, 任志遠, 林志慧, 等. 2000-2011年三江源區植被覆蓋時空變化特征[J]. 地理學報, 2013, 68(7): 897-908.
LIU X F, REN Z Y, LIN Z H, et al. The spatial-temporal changes of vegetation coverage in the Three-River headwater region in recent 12 years[J]. Acta Geographica Sinica, 2013, 68(7): 897-908.
[12]
胡雷, 王長庭, 王根緒, 等. 三江源區不同退化演替階段高寒草甸土壤酶活性和微生物群落結構的變化[J]. 草業學報, 2014, 23(3): 8-19.
HU L, WANG C T, WANG G X, et al. Changes in the activities of soil enzymes and microbial community structure at different degradation successional stages of alpine meadows in the headwater region of Three Rivers, China[J]. Acta Prataculturae Sinica, 2014, 23(3): 8-19.
[13]
徐翠, 張林波, 杜加強, 等. 三江源區高寒草甸退化對土壤水源涵養功能的影響[J]. 生態學報, 2013, 33(8): 2388-2399.
XU C, ZHANG L B, DU J Q, et al. Impact of alpine meadow degradation on soil water conservation in the source region of Three Rivers[J]. Acta Ecologica Sinica, 2013, 33(8): 2388-2399.
[14]
ZHANG P F, LI S H, HE Z, et al. Collaborative mapping rice planting areas using multisource remote sensing data[C]. 2021 IEEE International Geoscience and Remote Sensing Symposium IGARSS, 2021, 5969-5972.
[15]
周華坤, 趙新全, 周立, 等. 青藏高原高寒草甸的植被退化與土壤退化特征研究[J]. 草業學報, 2005(3): 31-40.
ZHOU H K, ZHAO X Q, ZHOU L, et al. A study on correlations between vegetation degradation and soil degradation in the 'Alpine Meadow' of the QinghaiTibetan Plateau[J]. Acta Pratacultural Science, 2005(3): 31-40. DOI:10.3321/j.issn:1004-5759.2005.03.005
[16]
詹天宇, 侯閣, 劉苗, 等. 青藏高原不同退化梯度高寒草地植被與土壤屬性分異特征[J]. 草業科學, 2019, 36(4): 1010-1021.
ZHAN T Y, HOU G, LIU M, et al. Different characteristics of vegetation and soil properties along degraded gradients of alpine grasslands in the Qinghai-Tibet Plateau[J]. Pratacultural Science, 2019, 36(4): 1010-1021.
[17]
尚占環, 龍瑞軍, 馬玉壽. 江河源區"黑土灘"退化草地特征、危害及治理思路探討[J]. 中國草地學報, 2006(1): 69-74.
SHANG Z H, LONG R J, SHOU Y S. Discussion on restoration and rebuilding of 'Blackion Soil Patch' degraded meadow in the headwater area of Yangtze and Yellow Rivers[J]. Chinese Journal of Grassland, 2006(1): 69-74.
[18]
溫璐, 董世魁, 朱磊, 等. 環境因子和干擾強度對高寒草甸植物多樣性空間分異的影響[J]. 生態學報, 2011, 31(7): 1844-1854.
WEN L, DONG S K, ZHU L, et al. The effect of natural factors and disturbance intensity on spacial heterogeneity of plant diversity in alpine meadow[J]. Acta Ecologica Sinica, 2011, 31(7): 1844-1854.
[19]
周天陽, 高景, 賀俊東, 等. 高山草地環山樣帶異質坡向上3種植物的株高、葉片性狀與生物量分配[J]. 應用與環境生物學報, 2018, 24(3): 425-433.
ZHOU T Y, GAO J, HE J D, et al. Plant height, leaf traits, and biomass allocation of three species at heterogeneous slope aspects along a transect in an alpine meadow[J]. Chinese Journal of Applied and Environmental Biology, 2018, 24(3): 425-433.
[20]
馮麗紅. 調查數據缺失值常用插補方法比較的實證分析[D]. 石家莊: 河北經貿大學, 2014.
FENG L H. An empirical analysis of survey data imputation: Comparing of the missing[D]. Shijiazhuang: Hebei University of Economics and Business, 2014.
[21]
張宏東. EM算法及其應用[D]. 濟南: 山東大學, 2014.
ZHANG H D. EM algorithm and applications[D]. Jinan: Shandong University, 2014.
[22]
熊中敏, 郭懷宇, 吳月欣. 缺失數據處理方法研究綜述[J]. 計算機工程與應用, 2021, 57(14): 27-38.
XIONG Z M, GUO H Y, WU Y X. Review of missing data processing methods[J]. Computer Engineering and Applications, 2021, 57(14): 27-38. DOI:10.3778/j.issn.1002-8331.2101-0187
[23]
鄧銀燕. 缺失數據的填充方法研究及實證分析[D]. 西安: 西北大學, 2010.
DENG Y Y. Study on filling method of missing data and empirical analysis[D]. Xi' an: Northwest University, 2010.
[24]
薛帥, 王光霞, 郭建忠, 等. 顧及最大絕對誤差的頻率域矢量數據壓縮算法[J]. 武漢大學學報(信息科學版), 2018, 43(9): 1438-1444.
XUE S, WANG G X, GUO J Z, et al. Vector map data compression of frequency domain with consideration of maximum absolute error[J]. Geomatics & Information Science of Wuhan University, 2018, 43(9): 1438-1444.
[25]
喬雪麗, 鄭江華, 穆晨. 基于多源遙感數據的草地凈初級生產力質量評價[J]. 生態學報, 2020, 40(5): 1690-1698.
QIAO X L, ZHENG J H, MU C. Evaluation of grassland NPP quality based on multi-source remote sensing data[J]. Acta Ecologica Sinica, 2020, 40(5): 1690-1698.
[26]
孫東永, 王義民, 黃強, 等. 均方根誤差最小準則的水庫群典型年選取[J]. 西安理工大學學報, 2011, 27(3): 275-279.
SUN D Y, WANG Y M, HUANG Q, et al. The selection of typical years of reservoir group based on the smallest criterion of root-mean-square error[J]. Journal of Xi'an University of Technology, 2011, 27(3): 275-279. DOI:10.3969/j.issn.1006-4710.2011.03.005
[27]
孫華艷, 李業麗, 字云飛, 等. 基于分類的加速EM缺失數據填充算法[J]. 北京印刷學院學報, 2018, 26(9): 98-102.
SUN H Y, LI Y L, ZI Y F, et al. Accelerating EM missing data filling algorithm based on the clustering[J]. Journal of Beijing Institute of Graphic Communication, 2018, 26(9): 98-102. DOI:10.3969/j.issn.1004-8626.2018.09.024
[28]
熊秋芬, 黃玫, 熊敏詮, 等. 基于國家氣象觀測站逐日降水格點數據的交叉檢驗誤差分析[J]. 高原氣象, 2011, 30(6): 1615-1625.
XIONG Q F, HUANG M, XIONG M Q, et al. Cross-validation error analysis of daily gridded precipitation based on China meteorological observation[J]. Plateau Meteorology, 2011, 30(6): 1615-1625.
[29]
邵全琴, 樊江文, 劉紀遠, 等. 基于目標的三江源生態保護和建設一期工程生態成效評估及政策建議[J]. 中國科學院院刊, 2017(1): 35-44.
SHAO Q Q, FAN J W, LIU J Y, et al. Target-based assessment on effects of first-stage ecological conservation and restoration project in Three-River source region, China and policy recommendations[J]. Bulletin of the Chinese Academy of Sciences, 2017(1): 35-44.