張衛
摘要:隨著信息技術的持續發展,大數據技術、AI技術成為時代的主流,大量數據的存儲成為當前技術分析面臨的第一個問題,存儲數據,分析數據,是IT技術的核心,那么如何迅速存儲海量數據,現在主要采用hadoop技術,該文在研究當下主要的hadoop技術的架構下,對技術原理做出論述。
關鍵詞:hadoop;分布式存儲;大數據;集群
中圖分類號:TP311 文獻標識碼:A
文章編號:1009-3044(2019)11-0071-02
隨著大數據時代的到來,各種大數據相關產業和技術也營運而生,那么什么是大數據呢?大數據歸根結底就是很多的數據,那么多少數據謂之多呢,本來沒有一個相對量化的概念,但是在如今各種個人電腦性能極大提高的近日,數據量很小如幾個G等似乎都很容易被個人電腦輕松應對。但是現在各種行業,各種設備都會產生數據,數據動輒多少T字節,甚至網Z字節動蕩。所以有人說,少于50T的數據都不能算是大數據。那50T是一個什么樣的概念呢,一般一本長篇電子書也就是3~4MB的容量的樣子,那么往大了說按5M算的話,1G就是200本以上的長篇小說,50T相當于10240000本長篇小說,試想如果在數千萬本《紅樓夢》或者《三國演義》這樣的小說中去查找信息,工作量可想而知。但是如果僅僅是查找的話人力不可為,或許你會說計算機對于這樣簡單性質的比對還是比較能勝任,不錯,計算機做簡單的數學或者邏輯判斷是擅長的快速的。但是如果這些信息是數千萬張照片或者視頻等形式的信息,近年來雖然智能識別如人臉識別等技術的發展,即使計算機的性能也有很大的提高,這些識別算法還是比較消耗性能的,何況是海量的數據那么難度和挑戰肯定還是并存的。
1 什么是大數據
大數據(Big Data),是指無法在一定的時間范圍內用常規軟件工具進行捕捉、管理和處理的數據集合,是需要新處理模式才能有更強的決策力、洞察發現力和流程優化能力的海量、高速增長的多樣化信息資產1。
在以往鑒于人的精力和設備的局限性,對一些數據處理都是抽樣處理,而大數據不是對數據進行抽樣處理,而是所有數據,處理要得到的結論是不再是簡單的精確匹配或者計算,而是在多個維度上進行復雜的相互關系的分析。IBM公司提出數據的5V特點, Volumn、Velocity、Varity、Value、Veracity分別指其在容量、速度、變化、價值、真實性等方面的要求。需要在快速的時間內手機大量的真實的信息,跟蹤數據的變化,得到有價值的建議。
2 大數據的工作意義及過程
數據如果放在哪里不用就沒有任何價值,甚至如果垃圾還占了大量的空間,大數據歸根結底還是要從數據中提取信息,通俗講,大數據就是處理大數據,其過程可以通過以下流程圖來描述:
大數據就是從海量數據中去除無用數據,經過各種算法給客戶提供決策信息的過程。
3 什么是Hadoop
Hadoop是一個由Apatch基金開發的分布式系統基礎架構。提供給用戶分布式程序,利用集群資源進行高速數據處理、運算、存儲的服務。Hadoop框架的核心有HDFS和MapReduce,HDFS(hadoop distributed file system),分布式文件系統,通過高容錯、低成本提供大數據集。而MapReduce為這些大數據集提供了處理能力。
總的來說,haddoop核心包括兩大塊,mapreduce提供任務分解和結果匯總,hdfs提供namenode文件管理和datanode文件存儲功能,由client進行文件的獲取。
3.1 HDFS 分布式文件系統
HDFS是hadoop框架中數據存儲和管理的支撐,它高度容錯,能檢測和應對硬件故障,在低成本的硬件上提供了高性價比的數據存儲和管理功能,通過流式數據訪問提高吞吐量等應用程序性能給一些大型數據集應用程序提供數據資源。
Client提供切片訪問,與HDFS和數據主節點DataNode交互,讀取或者寫入文件,在datanode中有一個主節點Masternode即NameNode,NameNode用來管理HDFS的名稱空間和數據集塊映射信息。
3.2 Mapreduce
MapReduce用以進行大數據量的計算2,通過Map對數據集上的獨立元素進行特定操作,將數據加工成K-V(Key-Value)對,reduce對這個K-V對進行規定約束以得到最終的結果。
其中TaskTracker作為從節點,主要運行Map任務和Reduce任務,將結果與主節點JobTracker交互,通信任務狀態。主節點JobTracker將作業任務分解成一系列的任務,并分派給TasckTracker,運行后負責管理監督所有作業,對作業發生的錯誤進行處理。
每個TasckTracker的Map Task完成每條數據記錄的解析傳遞給用戶編寫的Map函數執行,將結果寫入本地磁盤或者HDFS。而Reduce Task則從MapTask的執行結果中,遠程讀入數據,對數據進行排序并分組傳遞給用戶編寫的reduce函數執行。
4 Hadoop的應用與展望
國際上Yahoo是Hadoop的最大支持者,截至2012年,Yahoo的Hadoop機器總節點數目超過420000個,有超過10萬的核心CPU在運行Hadoop。Facebook使用Hadoop存儲內部日志與多維數據,并以此作為報告、分析和機器學習的數據源。目前Hadoop集群的機器節點超過1400臺,共計11?200個核心CPU,超過15PB原始存儲容量,每個商用機器節點配置了8核CPU,12TB數據存儲3。在國內,百度、360、阿里巴巴等軟件巨頭也在Hadoop應用領域做了深入研究和開發,主要應用與數據挖掘和分析,日志分析、數據倉儲、推薦引擎、用戶行為分析等。
Hadoop在有效利用現有資源,對其進行整合以達到高性能運行服務的框架為企業和各行業客戶提供了極大的便利,作為一種技術性方向作用非常重要,在后期必定會吸引更多的資源加入hadoop的研究和拓展。
注釋:
1.百度百科https://baike.baidu.com/item/%E5%A4%A7%E6%95%B0%E6%8D%AE/1356941?fr=aladdin#reference-[1]-13647476-wrap
2.http://lib.csdn.net/article/hadoop/50993
3.https://blog.csdn.net/lienen/article/details/50460243
參考文獻:
[1] Sanger F.Nicklen S. DNA sequencing with chain-terminating[P]. 1977,74:5463–5467.
[2] Struster SC.Next-generation sequencing transform todays biology[J].Nat Methods, 2008,5(1):16-18.
[3] 解增言,林俊華,譚軍,舒坤賢. DNA測序技術的發展歷史與最新進展[J].生物技術通報, 2010(08).
[4] Rusk N. Cheap third-generation sequecing[J]. Nature, 2011,6(4): 244-245.
[5] J. Craig Venter, Mark D. Adams, Eugene W. Myers. The Sequence of the Human Genome[J]. Science, 2001, 291(5507): 1304-1351.
[6] 于聘飛,王英,葛芹玉.高通量DNA測序技術及其應用進展[J].南京曉莊學院學報,2010(5).
【通聯編輯:代影】