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