Apache Hadoop 是用于開發(fā)在分布式計算環(huán)境中執(zhí)行的數(shù)據(jù)處理應用程序的框架。類似于在個人計算機系統(tǒng)的本地文件系統(tǒng)的數(shù)據(jù),在 Hadoop 數(shù)據(jù)保存在被稱為作為Hadoop分布式文件系統(tǒng)的分布式文件系統(tǒng)。處理模型是基于“數(shù)據(jù)局部性”的概念,其中的計算邏輯被發(fā)送到包含數(shù)據(jù)的集群節(jié)點(服務器)。這個計算邏輯不過是寫在編譯的高級語言程序,例如 Java. 這樣的程序來處理Hadoop 存儲 的 HDFS 數(shù)據(jù)。
Hadoop是一個開源軟件框架。使用Hadoop構建的應用程序都分布在集群計算機商業(yè)大型數(shù)據(jù)集上運行。商業(yè)電腦便宜并廣泛使用。這些主要是在低成本計算上實現(xiàn)更大的計算能力非常有用。你造嗎? 計算機集群由一組多個處理單元(存儲磁盤+處理器),其被連接到彼此,并作為一個單一的系統(tǒng)。
下圖顯示了 Hadoop 生態(tài)系統(tǒng)的各種組件
Apache Hadoop 由兩個子項目組成 -
雖然 Hadoop 是因為 MapReduce 和分布式文件系統(tǒng) - HDFS 而最出名的, 該術語也是在分布式計算和大規(guī)模數(shù)據(jù)處理的框架下的相關項目。 Apache Hadoop 的其他相關的項目包括有:Hive, HBase, Mahout, Sqoop , Flume 和 ZooKeeper.
• 適用于大數(shù)據(jù)分析
作為大數(shù)據(jù)在自然界中趨于分布和非結構化,Hadoop 集群最適合于大數(shù)據(jù)的分析。因為,它處理邏輯(未實際數(shù)據(jù))流向計算節(jié)點,更少的網絡帶寬消耗。這個概念被稱為數(shù)據(jù)區(qū)域性概念,它可以幫助提高基于 Hadoop 應用程序的效率。
• 可擴展性
HADOOP集群通過增加附加群集節(jié)點可以容易地擴展到任何程度,并允許大數(shù)據(jù)的增長。 另外,標度不要求修改到應用程序邏輯。
• 容錯
HADOOP生態(tài)系統(tǒng)有一個規(guī)定,來復制輸入數(shù)據(jù)到其他群集節(jié)點。這樣一來,在集群某一節(jié)點有故障的情況下,數(shù)據(jù)處理仍然可以繼續(xù),通過使用存儲另一個群集節(jié)點上的數(shù)據(jù)。
網絡拓撲結構(布局),當 Hadoop 集群的大小增長會影響到 Hadoop 集群的性能。除了性能,人們還需要關心故障的高可用性和處理。為了實現(xiàn)這個Hadoop集群構造,利用了網絡拓撲。
通常情況下,網絡帶寬是任何網絡要考慮的一個重要因素。然而,測量帶寬可能是比較困難的,在 Hadoop 中,網絡被表示為樹,在 Hadoop 集群節(jié)點之間樹(跳數(shù))的距離是一個重要因素。在這里,兩個節(jié)點之間的距離等于自己最近的公共祖先總距離。
Hadoop集群包括數(shù)據(jù)中心,機架和其實際執(zhí)行作業(yè)的節(jié)點。這里,數(shù)據(jù)中心包括機架,機架是由節(jié)點組成??捎镁W絡帶寬進程的變化取決于進程的位置。 也就是說,可用帶寬變得更小,因為 -