Hadoop的理解
什么是Hadoop?
Hadoop是一個開源的框架,可編寫和運行分布式應用處理大規模數據,是專為離線和大規模數據分析而設計的,Hadoop=HDFS(文件系統,數據存儲技術相關)+ Mapreduce(數據處理),Hadoop的數據來源可以是任何形式,在處理半結構化和非結構化數據上與關系型數據庫相比有更好的性能,具有更靈活的處理能力,不管任何數據形式最終會轉化為key/value,key/value是基本數據單元。用函數式變成Mapreduce代替SQL,SQL是查詢語句,而Mapreduce則是使用腳本和代碼,而對于適用于關系型數據庫,習慣SQL的Hadoop有開源工具hive代替
1.1小故事:
小明接到一個任務:計算一個100M的文本文件中的單詞的個數,這個文本文件有若干行,每行有若干個單詞,每行的單詞與單詞之間都是以空格鍵分開的。對于處理這種100M量級數據的計算任務,小明感覺很輕松。他首先把這個100M的文件拷貝到自己的電腦上,然后寫了個計算程序在他的計算機上執行后順利輸出了結果。
后來,小明接到了另外一個任務,計算一個1T(1024G)的文本文件中的單詞的個數。再后來,小明又接到一個任務,計算一個1P(1024T)的文本文件中的單詞的個數……
面對這樣大規模的數據,小明的那一臺計算機已經存儲不下了,也計算不了這樣大的數據文件中到底有多少個單詞了。機智的小明上網百度了一下,他在百度的輸入框中寫下了:大數據存儲和計算怎么辦?按下回車鍵之后,出現了有關hadoop的網頁。
看了很多網頁之后,小明總結一句話:hadoop就是存儲海量數據和分析海量數據的工具。
1.2、稍專業點的解釋
Hadoop是由java語言編寫的,在分布式服務器集群上存儲海量數據并運行分布式分析應用的開源框架,其核心部件是HDFS與MapReduce。
HDFS是一個分布式文件系統:引入存放文件元數據信息的服務器Namenode和實際存放數據的服務器Datanode,對數據進行分布式儲存和讀取。
MapReduce是一個計算框架:MapReduce的核心思想是把計算任務分配給集群內的服務器里執行。通過對計算任務的拆分(Map計算/Reduce計算)再根據任務調度器(JobTracker)對任務進行分布式計算。
1.3、記住下面的話:
hadoop的框架最核心的設計就是:HDFS和MapReduce。HDFS為海量的數據提供了存儲,則MapReduce為海量的數據提供了計算。
把HDFS理解為一個分布式的,有冗余備份的,可以動態擴展的用來存儲大規模數據的大硬盤。
把MapReduce理解成為一個計算引擎,按照MapReduce的規則編寫Map計算/Reduce計算的程序,可以完成計算任務。
Hadoop能做什么?
Hadoop MapReduce
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。