(宿州學院信息工程學院 安徽 宿州 234000)
大數據作為一項技術發展已不再新奇,雖然現在淘汰也很迅速,但是基于大數據技術的應用早幾年就非常火熱,而且作為一項發展前景廣闊的技術,熱度目前還會持續上升還不會下降,所以做大數據處理是很有研究價值的。
此次研究目的是將大量的數據進行分析統計利用將該技術在功能上、精確性等方面還有待進一步完善,我們將Hadoop采取在Centos7下將分部式集群搭建完成。啟用hdfs來存儲數據,將要處理的數據存入hdfs中。在Centos7中安裝eclipse及搭建相關java環境,將Hadoop的包導入java項目中。在Hadoop中使用MapReduce類來處理數據。
數據量越來越大,在大量的數據中發掘有用的信息顯得越來越重要。人類的活動越來越依賴數據:(1)人類的日常生活已經與數據密不可分;(2)科學研究進入了“數據科學”時代;(3)各行各業開展工作也越來越依賴大數據手段。
MapReduce是一種分布式計算模型,而對于Hadoop來說,MapReduce是一個分布式計算框架。概括來說MapReduce的主要是想是把大的任務分解成很多小的任務,來并執行的這些小的任務,從而達到能能快速處理完這些任務的目的。
MapReduce的組成有兩個階段
map():任務分解。
reduce():結果匯總。
map、reduce這兩個函數的形參是key、value。
Map Reduce根據需要有兩種任務模式。一個是用Reducer實現的本地模式。另一個是用Runner實現的Yarn模式。其主要任務是在客戶端啟動一個作業,提交作業到資源管理任務調試請求一個Job ID,將運行所需資源文件復制到HDFS,用多個Map將數據分解處理,再到Reduce里整理處理的數據,存放到HDFS,每隔一段時間完成一次運行。
mapper中,定義的map通過處理hive中或者本地的數據解析成鍵/值對來產生多個鍵/值對結果。鍵/值的處理效率是很高的,選擇對MapReduce作業的完成效率來說非常重要。鍵是分組的依據,值是分析的數據。
reduce是將mapper處理的數據作為輸入,依次為每個鍵對應分組執行此函數。reduce函數的輸入是鍵以及此鍵對應的迭代器。
1.一個HDFS集群是由一個NameNode和若干個DataNode組成。
2.NameNode作為主服務器管理整個文件系統的命名空間和客戶端訪問操作。
3.DataNode管理存儲數據塊。
4.文件會按照固定的大小(blocksize)切成若干塊后分布式存儲在若干臺datanode上。
5.每一個文件塊可以有多個副本,并存放在不同的datanode上。
6.Datanode會定期向Namenode匯報自身所保存的文件block信息,而namenode則會負責保持文件的副本數量。
7.HDFS的內部工作機制對客戶端保持透明,客戶端請求訪問HDFS都是通過向namenode申請來。
查看文件
[root@hadoop11 ~]# cat /simple/words.txt
all at once
all but
all of a sudden
all over again
all over

運算結果
[root@hadoop11 ~]# hdfs dfs -cat /output14/part-r-0000
a 1
again 1
all 5
at 1
but 1
of 1
over 2
once 1
sudden 1
社會進步需要大數據、云計算的發展。在推動數據資源共享開放和開發應用上大數據處理技術都占著很大的地位。超大規模計算和海量數據的分析將可以在大數據開發過程中實現,復雜度較高、精密度較高的信息處理都可以在短時間內完成。下一步我們將繼續深度研究數據處理,而像分析、成功率計算等都將會更加準確。并且可以根據客戶需求高度自由的數據互動,通過分析數模預測進行推送。Hadoop技術雖然已經被廣泛應用,不管是在功能上還是穩定性等方面,此技術還有待進一步改進。因此我們不論是在開發的過程中還是升級維護中,都將有新的功能不斷地添加和引入。