999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

大數據Hadoop框架核心技術對比與實現

2021-03-23 10:41:08張國華王自然周婷婷
實驗室研究與探索 2021年2期
關鍵詞:數據處理實驗

張國華,葉 苗,王自然,周婷婷

(南京師范大學泰州學院信息工程學院,江蘇泰州 225300)

0 引言

Hadoop[1]是一個軟件框架模型,主要用于以高效和可擴展的方式對大數據進行分布式信息處理,具有可靠性高、容錯能力強、搭建成本低、跨平臺等特點。它在處理半結構化,非結構化的數據方面優勢明顯,目前得到了廣泛應用,社會對于這方面的技術人才需求量巨大,因其概念繁多,原理復雜,掌握其核心技術的人才較少。為將Hadoop生態系統理順,本文從整體框架(見圖1)分析,在整個生態系統中最為核心的兩個技術,一個是HDFS[2]實現的基礎數據的分布式存儲,它利用集群存儲數據的能力,擴展了計算機的存儲能力。這個技術對比單機版的文件系統,例如Windows的文件系統FAT32,NTFS等就能區分其區別。其次是實現分布式并行編程模型MapReduce[3],它是利用廉價的計算機集群的綜合處理能力來處理HDFS上的數據,相對于傳統并行計算框架,無須昂貴的服務器就可批處理非實時的海量數據。

圖1 Hadoop生態系統

仔細分析圖1 及查閱相關文獻,不難發現涉及對底層HDFS 數據處理的技術主要有MapReduce、Spark[4]、Hive、Pig等。為研究上述數據處理技術的區別及優勢。本文以最為經典的分布式程序WordCount為例,設計了不同技術方法下的實驗,對比其適用場景及優勢,幫助學生迅速理解并掌握相關技術原理及方法。

1 技術原理與對比

1.1 MapReduce

MapReduce 是一種分布式并行編程模型,是Hadoop 生態系統中的最為核心和最早出現的計算模型,MapReduce借助集群的力量解決大型數據處理問題,其基本理念是“計算向數據靠攏”,采用分而治之的辦法,首先數據分割Split,接著由集群中的計算節點進行本地Map 處理數據,Shuffle 分類數據,再Reduce匯總結果,該種模型可輕松解決TB 級別數據處理。基本流程如下圖2 所示。

圖2 MapReduce工作流程

這種技術也存在以下問題:①頻繁訪問HDFS,造成執行速度相對較慢;②過于低層化且笨重,所有的數據處理均需要編寫Map 和Reduce 函數,技術復雜且耗費時間,也并不是所有的數據邏輯均可編寫成這兩個關鍵性函數;③在實時數據處理方面相對于傳統技術無優勢。為解決上述問題,出現了第2 代的計算技術代表Spark。

1.2 Spark

Spark技術并不是完全摒棄MapReduce 技術,而是對于MapReduce 技術的優化,具體優化體現在:①計算性能[5],Spark 充分利用服務器內存,減少頻繁磁盤I/O讀寫來提升性能;②應用程序非常靈活,更容易實現。Spark核心代碼是非常輕量級的Scala 文件[6],同時它也可以在各種編程語言中使用,包括目前流行的Java 和Python 語言,也可在Shell中進行交互式查詢,更加精煉,易于掌握;③具備很強的處理實時數據能力。Spark通過Spark Streaming 技術進行數據的實時處理,包含了很多功能強大的應用程序接口,用戶可以快速開發相關應用程序。對于數據處理,無論是MapReduce還是Spark 都離不開Map 和Reduce 的思想束縛,因此Hadoop生態系統中出現了更容易掌握類似于輕量級腳本語言[7]的技術Pig,及類似于通用關系型數據庫語言Sql的技術Hive。

1.3 Hive

Hive是Hadoop 生態系統中的數據倉庫工具,可以把數據文件抽象成數據表,并能提供類似傳統關系型數據庫結構化查詢語言功能的專用語言HIVESQL(簡稱HQL),底層將HQL 語句轉換為對應邏輯的MapReduce任務進行運行。主要適用場景為數據報表、頻繁數據分析等領域,由于HQL 與SQL 類似,促使其成為Hadoop與其他智能工具進行結合的理想點,具備傳統數據庫基礎知識即可快速掌握。

1.4 Pig

Pig[8]是比Hive 更加輕量級技術,可不涉及數據表,在大數據領域信息處理具備更加靈活、通用等特性,其核心主要采用了非常簡潔的Pig Latin 腳本語言來轉換數據流嵌入到較大程序中,適用于數據管道、機器學習等領域。

2 實驗環境搭建與數據準備

WordCount程序[9]是分布式程序中的最經典和最簡單的案例,類似于單機入門級程序HelloWord,主要是統計HDFS上出現單詞的個數(區分單詞是根據單詞間空格),依次介紹在MapReduce、Spark、Hive、Pig的具體實現,并且易于還原,直觀感受技術細節和區別,幫助深刻領悟技術特點和優勢。

2.1 實驗環境搭建

Hadoop有單機、偽分布式、完全分布式3 種運行模式,單機模式無集群的思維,無太大研究意義,不選擇,完全分布式方式實現較為煩瑣暫不采用而偽分布式能夠使用一臺計算機模擬集群工作,具備分布式思維且易于還原實現,且流程基本等同完全分布式系統,本文使用偽分布式完成以下實驗,Hadoop 偽分布式及相關軟件快速搭建步驟如下:

步驟1Windows 操作系統下安裝虛擬機VirtualBox-5.2.16。

步驟2在虛擬機中導入互聯網提供的(安裝配置好Hadoop相關軟件)Ubuntu 版操作系統的鏡像文件。(下載URL:http://dblab.xmu.edu.cn/blog/),如有軟件報錯,根據虛擬機下方警告提示點擊更換硬件配置即可。

步驟3跨操作系統數據存儲解決辦法,在虛擬機VirtualBox中通過設置選擇USB設備,插入U盤,點擊圖3 紅圈內添加對應品牌外部存儲器至虛擬機中,可實現不同操作系統下文件的存儲(見圖3)。

圖3 虛擬機中共享外部存儲器

步驟4網絡使用問題解決方法,在虛擬機VirtualBox中通過設置網絡,選擇橋接網絡并全部允許,見圖4 紅圈,即可在Windows 和Ubuntu 操作系統中同時上網。

圖4 虛擬機中網絡配置

2.2 數據準備

在Ubuntu系統[10]隨機生成100 個含有單詞的txt文件,為了便于實現,采用了復制文件方式進行,并上傳至HDFS中。具體實驗步驟如下:

步驟1通過start-dfs.sh命令來啟動整個hadoop集群(JPS查看集群啟動結果)。

步驟2通過input 命令將本地系統的文件復制到集群HDFS 文件系統,將所有數據放入HDFS Myinput目錄中。

步驟3通過URL 查看數據準備結果(http://localhost:50070)。

Hadoop軟件安裝配置復雜,很多初學者僅僅因為自己安裝配置無法完成,購買相關大數據實驗設備昂貴,因而放棄學習,本文通過上述方法,無須額外軟硬件資本,即可完成基礎實驗平臺搭建及數據準備。

3 實驗核心代碼與結果

以下實驗均在偽分布式[11]下實現,使用單核Intel core i5-2450M CPU,內存8GB,SSD 硬盤,其中內存4GB分配給虛擬機。

3.1 WordCount—MapReduce版本

(1)核心代碼。

(2)實驗步驟與結果。將核心代碼Mywordcount.java編譯打包成Mywordcount.jar包。進入相關目錄通過執行./bin/Hadoop/jar Mywordcount.jar Myinput Myoutput。在Myoutput文件夾中會出現統計結果為兩個文件,最后通過dfs -cat Myoutput/*命令顯示詞頻,如圖5所示結果,分別標出了詞頻次數和對應的單詞,此實驗如果重復執行MapReduce,應注意初始化名稱節點并刪除臨時文件夾,否則統計結果無法覆蓋。MapReduce編寫的代碼量較長,時間復雜度也較高。通過實驗過程和結果證明了本文1.1所述的特點和問題。

圖5 MapReduce執行結果

3.2 WordCount—Spark版本

Spark實現的方式可以有多種,例如Scala 語言,Spark本地類庫,JAVA 語言等,本文采用了Scala 語言,統計與3.1 相同的數據集。

(1)核心代碼。

(2)實驗步驟與結果。創建一個SparkConf 對象[12],設置處理數據的地址等主要配置信息,接著創建SparkContext 對象,它是Spark 所有功能的入口,無論采用何種方式均需實現,最后啟動HDFS 和相關服務,編寫執行核心代碼,實驗結果類似圖5,時間復雜度降低。通過實驗過程和結果證明了本文1.2 所述的特點和問題。

3.3 WordCount—Hive版本

(1)核心代碼。

(2)實驗步驟與結果。在Hive[12]中創建一個臨時表Mytable,其次通過執行shell命令load data inpath'/1.txt'overwrite into table Mytable將數據導入到表中,最后通過執行Hivesql命令即可完成統計,統計類似圖5。通過實驗過程和結果證明了本文1.3 所述的特點和問題。

3.4 WordCount—Pig版本

(1)核心代碼

(2)實驗步驟與結果。該實驗直接使用簡潔的腳本語言Pig Latin[13],主要步驟為數據加載,區分單詞,單詞分組統計等,無論是書寫代碼的難度、通用性還是靈活性都大大提升。實驗結果類似圖5,通過實驗過程和結果證明了本文1.4 所述的特點和問題。

3.5 實驗結果對比

通過對上述4 個實驗實現,學生對比實驗步驟和核心代碼,可清楚了解分布式并行計算的MapReduce的工作原理及問題,但其Map 和Reduce 函數較難編寫和理解,通過Spark 優化了MapReduce 實時數據處理等問題,而Hive 使用了類似傳統關系型數據庫Sql的Hivesql語言[14]來解決分布式數據庫HIVE 表中數據處理問題,有數據庫基礎的學生易于適應和掌握,最后的腳本語言Pig Latin 通過腳本能自動生成底層MapReduce程序,并且無需考慮函數參數限制,具備更強的通用型[15],大大降低了程序開發難度。

4 結語

通過上述4 個對比實驗,使得學生理解分布式并行處理技術的核心框架,循序漸進掌握Hadoop核心處理技術,理順大數據關鍵技術之間的關系,通過對經典分布式程序WordCount案例的技術對比,直觀體會;領悟技術優化過程、適用場景,希望通過對比試驗不僅能給學生帶來一些技術和原理上的開拓性思考,而且也能給教師培養創新且務實的大數據人才提供一些啟示。

猜你喜歡
數據處理實驗
記一次有趣的實驗
認知診斷缺失數據處理方法的比較:零替換、多重插補與極大似然估計法*
心理學報(2022年4期)2022-04-12 07:38:02
微型實驗里看“燃燒”
ILWT-EEMD數據處理的ELM滾動軸承故障診斷
水泵技術(2021年3期)2021-08-14 02:09:20
做個怪怪長實驗
NO與NO2相互轉化實驗的改進
實踐十號上的19項實驗
太空探索(2016年5期)2016-07-12 15:17:55
MATLAB在化學工程與工藝實驗數據處理中的應用
Matlab在密立根油滴實驗數據處理中的應用
基于POS AV610與PPP的車輛導航數據處理
主站蜘蛛池模板: 久久黄色小视频| 久久黄色小视频| 国产美女91视频| 久久久久免费看成人影片| 国产主播喷水| 精品无码日韩国产不卡av | 国产亚洲第一页| 无码福利视频| 国产精品亚洲片在线va| 九九热视频在线免费观看| 91丝袜美腿高跟国产极品老师| 九色在线观看视频| 日本亚洲成高清一区二区三区| 亚洲欧洲日本在线| 91国内外精品自在线播放| 毛片a级毛片免费观看免下载| 欧洲成人免费视频| 直接黄91麻豆网站| 国产黄色片在线看| 国产亚洲欧美在线中文bt天堂| 国产成人精品一区二区| 国产成人精品三级| 国产噜噜噜视频在线观看| 国产成人三级| 国产激情无码一区二区三区免费| 国产高清无码第一十页在线观看| 国产精品香蕉在线观看不卡| 日韩精品高清自在线| 国产91色在线| 九九久久精品国产av片囯产区| 黄色网在线| 午夜小视频在线| 亚洲开心婷婷中文字幕| 丰满人妻中出白浆| 亚洲一级无毛片无码在线免费视频 | 国产全黄a一级毛片| 视频二区国产精品职场同事| 国产视频 第一页| 国产福利影院在线观看| 国产无遮挡猛进猛出免费软件| 国内精品自在自线视频香蕉| 国产精品第一区在线观看| 国产人碰人摸人爱免费视频| 亚洲精品少妇熟女| 国产成人凹凸视频在线| 国产91九色在线播放| 国产综合无码一区二区色蜜蜜| 在线视频97| 视频国产精品丝袜第一页| 亚洲中文字幕无码爆乳| 久久综合色视频| 狠狠久久综合伊人不卡| 亚洲第一在线播放| AV在线天堂进入| 精品国产网站| 色成人亚洲| 国产在线98福利播放视频免费| 极品av一区二区| 亚洲女人在线| 婷婷综合色| 久草中文网| 5555国产在线观看| 视频一本大道香蕉久在线播放| 日韩欧美在线观看| 97国产精品视频人人做人人爱| 91蝌蚪视频在线观看| 久久久91人妻无码精品蜜桃HD| 亚洲国产亚洲综合在线尤物| 亚洲无限乱码一二三四区| 人妻无码AⅤ中文字| 中文字幕一区二区人妻电影| 日韩黄色大片免费看| 2021亚洲精品不卡a| 欧美激情视频一区| 午夜一区二区三区| 免费人成视频在线观看网站| 超碰91免费人妻| 亚洲综合国产一区二区三区| 99视频有精品视频免费观看| 亚洲欧洲日产无码AV| 成人无码一区二区三区视频在线观看| 欧美精品高清|