What is Hadoop役听?
Hadoop是一個框架,允許在集群中使用簡單的編程模型對大規(guī)模數(shù)據(jù)集進(jìn)程分布式計算表窘。
1.hadoop包含許多功能模塊典予,它們各自負(fù)責(zé)了Hadoop的一部分功能,其中最主要的是Common乐严、HDFS和YARN瘤袖。HDFS負(fù)責(zé)數(shù)據(jù)的存儲,YARN負(fù)責(zé)統(tǒng)一資源調(diào)度和管理昂验,Common則提供遠(yuǎn)程過程調(diào)用RPC捂敌、序列化機(jī)制。
2.Hadoop適合處理大規(guī)模數(shù)據(jù)既琴,并且能夠?qū)崿F(xiàn)分布式存儲和分布式計算占婉。
3.Hadoop被部署在一個集群上。
Hadoop的生態(tài)圈
狹義的Hadoop僅僅代表了Common甫恩、HDFS逆济、YARN和MapReduce模塊。但是隨著圍繞Hadoop的越來越多的軟件出現(xiàn)磺箕,構(gòu)成了一個生機(jī)勃勃的Hadoop生態(tài)圈奖慌。
1.HDFS(Hadoop Distributed File System,Hadoop分布式文件系統(tǒng))是Hadoop的基石松靡。它是一個具有高度容錯性的文件系統(tǒng)简僧,適合部署在廉價的機(jī)器上。HDFS能提供高度的吞吐量的數(shù)據(jù)訪問雕欺,非常適合大規(guī)模數(shù)據(jù)集的應(yīng)用岛马。
2.YARN(Yet Another Resource Negotiator棉姐,另一種資源調(diào)度器)是統(tǒng)一的資源管理和調(diào)度平臺。
3.MapReduce是一種編程模型蛛枚,利用函數(shù)式的思想谅海,將對數(shù)據(jù)集處理的過程分為Map和Reduce兩個階段。MapReduce這種編程模型非常適合分布式計算蹦浦。
4.Spark是新一代的計算機(jī)框架,對迭代計算很有優(yōu)勢撞蜂,和MapReduce相比盲镶,性能提升明顯。并且可以和YARN進(jìn)行集成蝌诡,Spark也提供支持SQL的組件SparkSQL等溉贿。
5.Hbase是一個分布式的、面向列族的開源數(shù)據(jù)庫浦旱,擅長大規(guī)模數(shù)據(jù)的隨機(jī)宇色、實(shí)時讀寫訪問。
6.Hive是基于Hadoop的一個數(shù)據(jù)倉庫工具颁湖,可以將結(jié)構(gòu)化的數(shù)據(jù)文件映射為一張表宣蠕,提供簡單的SQL查詢功能,并將SQL語句轉(zhuǎn)換為MapReduce作業(yè)運(yùn)行甥捺。Hive對Hadoop來說是非常重要的模塊抢蚀,大大降低了Hadoop的使用門檻。
7.Pig和Hive類似镰禾,也是對大型數(shù)據(jù)集進(jìn)行分析和評估的工具皿曲,不過與Hive提供SQL接口不同的是,它提供一種高層的吴侦、面向領(lǐng)域的抽象語言:Pig Latin屋休,與HQL相比,Pig latin更加靈活备韧,但學(xué)習(xí)成本高劫樟。
8.Impala對存儲在HDFS、Hbase的海量數(shù)據(jù)提供交互式查詢的SQL接口盯蝴。Impala的特點(diǎn)是查詢非常迅速毅哗,大幅度領(lǐng)先Hive。
9.Mahout是一個機(jī)器學(xué)習(xí)和數(shù)據(jù)挖掘庫捧挺,它利用MapReduce實(shí)現(xiàn)了經(jīng)典的機(jī)器學(xué)習(xí)算法虑绵,并使其具有良好的可擴(kuò)展性。
10.Flume使一個高可用闽烙、高可靠翅睛、分布式的海量日志采集声搁、聚合和傳輸系統(tǒng),F(xiàn)lume支持在日志系統(tǒng)中定制各類數(shù)據(jù)發(fā)送方捕发,用于收集數(shù)據(jù)疏旨;同時,F(xiàn)lume提供對數(shù)據(jù)進(jìn)行簡單處理扎酷,并寫到各種數(shù)據(jù)接收方的能力檐涝。
11.Sqoop是SQL to Hadoop的縮寫,主要作用在于在結(jié)構(gòu)化的數(shù)據(jù)存儲(關(guān)系型數(shù)據(jù)庫)與hadoop之間進(jìn)行數(shù)據(jù)雙向交換法挨。也就是說谁榜,Sqoop可以將關(guān)系型數(shù)據(jù)庫的數(shù)據(jù)導(dǎo)入到Hadoop的HDFS、Hive凡纳,也可以將Hdfs窃植、Hive的數(shù)據(jù)導(dǎo)出到關(guān)系型數(shù)據(jù)庫中。Sqoop充分利用Hadoop的優(yōu)點(diǎn)荐糜,整個導(dǎo)入導(dǎo)出都是由MapReduce計算框架實(shí)現(xiàn)并行化巷怜,非常高效。
12.Kafka是一種高吞吐量的分布式發(fā)布訂閱消息系統(tǒng)暴氏,具有分布式延塑、高可用的特點(diǎn),在大數(shù)據(jù)系統(tǒng)里面被廣泛的應(yīng)用偏序,如果把大數(shù)據(jù)比作一臺機(jī)器的化页畦,那么Kafka這種消息中間件就類似于前端總線,它鏈接了平臺里面的各個組件研儒。