關(guān)于Hadoop你需要知道的一些事項(xiàng)
除非你過去幾年一直隱居,遠(yuǎn)離這個(gè)計(jì)算機(jī)的世界,否則你不可能沒有聽過Hadoop。
全名Apache Hadoop,是一個(gè)在通用低成本的硬件上處理存儲(chǔ)和大規(guī)模并行計(jì)算的一個(gè)開源框架。從2011年他的面世,他已經(jīng)成為大數(shù)據(jù)領(lǐng)域最出名的平臺(tái)。
如何工作的?
Hadoop是從Google文件系統(tǒng)發(fā)源而來,并且他是一個(gè)用Java開發(fā)的跨平臺(tái)的應(yīng)用.核心組件有: Hadoop Common,擁有其他模塊所依賴的庫和基礎(chǔ)工具,Hadoop分布式文件系統(tǒng) (HDFS), 負(fù)責(zé)存儲(chǔ), Hadoop YARN, 管理計(jì)算資源, 和Hadoop MapReduce, 負(fù)責(zé)處理的過程。
Hadoop把文件拆成小塊并且把他們分發(fā)給集群中的節(jié)點(diǎn).然后,它使用打包的代碼分發(fā)到節(jié)點(diǎn)上并行處理數(shù)據(jù). 這意味著可以處理數(shù)據(jù)的速度會(huì)比使用傳統(tǒng)的體系結(jié)構(gòu)的更快.
一個(gè)典型的Hadoop集群都會(huì)有主節(jié)點(diǎn)和從節(jié)點(diǎn)或者叫工作節(jié)點(diǎn). 主節(jié)點(diǎn)有一個(gè)任務(wù)跟蹤器,任務(wù)調(diào)度,名字節(jié)點(diǎn)和數(shù)據(jù)節(jié)點(diǎn)組成.從節(jié)點(diǎn)通常作為一個(gè)數(shù)據(jù)節(jié)點(diǎn)和任務(wù)調(diào)度器,不過特殊的場(chǎng)景下程序可能只有數(shù)據(jù)節(jié)點(diǎn)然后在其他的從節(jié)點(diǎn)進(jìn)行處理計(jì)算。
在大的Hadoop集群中,通常會(huì)使用一個(gè)專用的名字節(jié)點(diǎn)來管理HDFS節(jié)點(diǎn)的文件系統(tǒng)索引信息。這防止了文件系統(tǒng)的數(shù)據(jù)丟失和損壞。
Hadoop文件系統(tǒng)
Hadoop分布式文件系統(tǒng)是Hadoop擴(kuò)展的核心. HDFS當(dāng)處理大數(shù)據(jù)的優(yōu)點(diǎn)是,它可以跨多臺(tái)機(jī)器存儲(chǔ)gb或tb大小的文件. 因?yàn)閿?shù)據(jù)的副本存在了多個(gè)機(jī)器上,而不是使用附加RAID來在單臺(tái)機(jī)器上保證. 不過RAID還是會(huì)被用來提升性能. 提供進(jìn)一步的保護(hù),允許主NameNode服務(wù)器自動(dòng)切換到備份失敗的事件。
HDFS被設(shè)計(jì)成可以直接掛載在Linux系統(tǒng)的用戶空間(FUSE)或者虛擬文件系統(tǒng). 通過一個(gè)Java API來處理文件的訪問權(quán)限.HDFS被設(shè)計(jì)為跨硬件平臺(tái)和操作系統(tǒng)的可移植性。
Hadoop也能配合其他的文件系統(tǒng)工作 ,包括FTP, Amazon S3 和Microsoft Azure, 然而,它需要一個(gè)特定的文件系統(tǒng)的橋梁,以確保沒有性能損失。
Hadoop 和他的云
相對(duì)傳統(tǒng)數(shù)據(jù)中心, Hadoop也經(jīng)常被部署在云上. 這樣做的好處是,公司可以很容易地部署Hadoop更迅速和較低的安裝費(fèi)用. 大多數(shù)云供應(yīng)商都提供某種形式的Hadoop部署方案。
Microsoft 提供Azure HDInsight, 允許用戶使用他們所需要的節(jié)點(diǎn)的數(shù)量,并收取他們使用的計(jì)算能力和存儲(chǔ)的費(fèi)用. HDInsight是基于 Hortonworks 并且可以很容易地在內(nèi)部系統(tǒng)和云備份,或開發(fā)和測(cè)試之間移動(dòng)數(shù)據(jù).
Amazon Elastic Compute Cloud (EC2) 和Amazon Simple Storage Service (S3) 也支持 Hadoop, 加上Amazon 提供了 Elastic MapReduce 產(chǎn)品,所以能自動(dòng)化Hadoop集群的配置,作業(yè)的運(yùn)行和終止以及處理EC2和S3存儲(chǔ)之間的數(shù)據(jù)傳輸。
Google提供一個(gè)管理Spark和Hadoop 服務(wù)叫做Cloud Dataproc,用一系列的Shell腳本來創(chuàng)建和管理 Spark和Hadoop 集群.他支持第三方的Hadoop 發(fā)行版像Cloudera, Hortonworks和MapR.Google Cloud Storage 也可以和 Hadoop 配合使用.
Hadoop 近況
Hadoop已經(jīng)有些初步的進(jìn)展. 2015年的 Gartner study只有18%的人表示會(huì)在接下來的兩年使用.不愿意采用這種技術(shù)的原因包括成本太高,相對(duì)于預(yù)期的利益, 和缺乏必要的技能。
仍然有一些高調(diào)的用戶。 雅虎的搜索引擎由Hadoop驅(qū)動(dòng),公司已經(jīng)通過開源社區(qū)向公眾提供了其使用的版本的源代碼。 Facebook也使用Hadoop,并且在2012年該公司宣布其集群具有100PB的數(shù)據(jù),并且每天增長約為一個(gè)PB。
盡管初始占有慢,Hadoop也在增長。 Allied Market Research在2016年初的一項(xiàng)調(diào)查估計(jì),到2021年Hadoop市場(chǎng)的收入將超過840億美元。
由于Hadoop工作的方式,看到了一些回歸到舊時(shí)代批處理信息的東西。 雖然從大量歷史數(shù)據(jù)中提取洞察力很有用,但對(duì)于實(shí)時(shí)應(yīng)用程序或連續(xù)傳入的數(shù)據(jù)流有效性較低。
特性
Hadoop一直與大數(shù)據(jù)密切相關(guān)。隨著物聯(lián)網(wǎng)設(shè)備的擴(kuò)展以及收集的數(shù)據(jù)量增加,因而Hadoop的處理能力需求也將增加。其快速處理大數(shù)據(jù)的能力意味著Hadoop系統(tǒng)對(duì)于做日常業(yè)務(wù)決定起著越來越重要的作用。
各種規(guī)模的組織都熱衷于使用大數(shù)據(jù)。Hadoop開源的特性以及其在商業(yè)硬件上運(yùn)行的能力意味著其處理能力不僅在大型公司可用,也可以幫助大眾使用大數(shù)據(jù)。
對(duì)于所有這些運(yùn)作成功的公司需要能夠利用Hadoop可以提供的優(yōu)勢(shì)。 這意味著需要解決技能差距,并且可能仍然需要那些掌握J(rèn)ava,Linux,文件系統(tǒng)和數(shù)據(jù)庫背景的員工,這些員工能夠快速獲得Hadoop技能。 這也意味著越來越多地使用云以一種不太復(fù)雜的方式提供Hadoop的優(yōu)勢(shì)。