這篇文章不提原理,講講hadoop及其周邊項目的作用。
hadoop這個詞已經流行好多年了,一提到大資料就會想到hadoop,那麼hadoop的作用是什麼呢?
官方定義:hadoop是一個開發和運行處理大規模資料的軟體平台。核心詞語是平台,也就是說我們有大量的資料,又有好幾個電腦,我們知道應該把處理資料的任務分解到各個電腦上,但是不知道怎樣分配任務,怎樣回收結果,hadoop大概就協助我們做了這件事。
1HDFS我們首先應該考慮的是海量資料怎麼儲存,怎麼管理。這就有了Distributed File System,HDFS。2Map-Reduce資料儲存後,我們怎樣處理這些資料呢,如果我處理的方法複雜,而不僅僅是排序,尋找這樣的操作怎麼辦?需要有一個能夠提供編寫代碼的地方,讓我們自己寫出操作,它內部再進行分解,分配,回收資料等等。3Hive能編代碼是好的,但編代碼太麻煩,而且資料庫人員是熟悉SQL語句的,能用SQL語句處理,就不用Map-Reduce了吧,所以出現了Hive。而且大資料無論如何是離不開資料庫,離不開表,Hive就能講資料對應成資料表,然後再操作就方便了,它的缺點是速度較慢。4HBase既然Hive的速度較慢,那麼有沒有較快的資料庫呢?HBase就是,他為查詢而生的,查詢的速度很快。5Sqoop以前不是有很多有名的資料庫像MySQL,Oracle,我資料都是存在這裡面的,怎麼匯入到HDFS中呢?Sqoop提供了關係型資料庫和HDFS之間的相互轉換。6Flume在這麼多電腦上工作,如果其中一台有點問題,或者上面哪個服務有點問題,怎樣知道哪壞了呢?Flume提供了一個高可靠的日誌採集系統。7Mahout處理大資料很多是用來進行資料採礦,有那幾種常見的機器學習演算法,既然演算法都固定了而且就那幾種,那就開發個叫Mahout的東西實現各種演算法,開發人員就能更快捷的使用。8ZookeeperZooKeeper的目標是封裝好複雜易出錯的關鍵服務,將簡單易用的介面和效能高效、功能穩定的系統提供給使用者。說白了就是動物園管理員,他是用來來管大象(Hadoop) 、 蜜蜂(Hive)的。
以上是Hadoop家族的主要成員,還有幾個不常用的就不用介紹了,知道這些成員的作用後,對Hadoop整體能幹什麼就有了初步的認識,剩下的就是慢慢學習各個部分的原理和使用方法了。