一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

大數(shù)據(jù)和Hadoop生態(tài)圈

 株野 2016-01-07

一、前言:

  非常感謝Hadoop專業(yè)解決方案群:313702010,兄弟們的大力支持,在此說(shuō)一聲辛苦了,經(jīng)過(guò)兩周的努力,已經(jīng)有啦初步的成果,目前第1章 大數(shù)據(jù)和Hadoop生態(tài)圈小組已經(jīng)翻譯完成,在此對(duì):譯者:賈艷成 QQ:496830205 表示感謝。

二、意見(jiàn)征集:

  本章節(jié)由《Hadoop專業(yè)解決方案群:313702010》翻譯小組完成,為小組校驗(yàn)稿,已經(jīng)通過(guò)小組內(nèi)部校驗(yàn)通過(guò),特此面向網(wǎng)絡(luò)征集意見(jiàn),如果對(duì)本章節(jié)內(nèi)容有任何異議,請(qǐng)?jiān)谠u(píng)論中加以說(shuō)明,說(shuō)明時(shí),請(qǐng)標(biāo)明行號(hào),也可以以修訂的方式,發(fā)送給我。非常感謝。

三、原書(shū)說(shuō)明

  英文原書(shū)《Wrox.Professional.Hadoop.Solutions》第一章,請(qǐng)參照英文原文。

四、翻譯原稿

第一章     大數(shù)據(jù)和Hadoop生態(tài)圈

本章主要內(nèi)容:

  • 理解大數(shù)據(jù)的挑戰(zhàn)

  • 了解Hadoop生態(tài)圈

  • 了解Hadoop發(fā)行版

  • 使用基于Hadoop的企業(yè)級(jí)應(yīng)用

你可能聽(tīng)別人說(shuō)過(guò),我們生活在“大數(shù)據(jù)”的環(huán)境中。技術(shù)驅(qū)動(dòng)著當(dāng)今世界的發(fā)展,計(jì)算能力飛速增長(zhǎng),電子設(shè)備越來(lái)越普遍,因特網(wǎng)越來(lái)越容易接入,與此同時(shí),比以往任何時(shí)候都多的數(shù)據(jù)正在被傳輸和收集。

企業(yè)正在以驚人的速度產(chǎn)生數(shù)據(jù)。僅Facebook每天就會(huì)收集 250 TB 的數(shù)據(jù)。Thompson Reuters News Analytics (湯普森路透社新聞分析)顯示,現(xiàn)在數(shù)字?jǐn)?shù)據(jù)的總量比2009年的1ZB(1ZB等同于一百萬(wàn) PB)多了兩倍多,到 2015 年有可能將達(dá)到7.9ZB,到 2020 年則有可能會(huì)達(dá)到35ZB。其他調(diào)查機(jī)構(gòu)甚至做出了更高的預(yù)測(cè)。

隨著企業(yè)產(chǎn)生并收集的數(shù)據(jù)量增多,他們開(kāi)始認(rèn)識(shí)到數(shù)據(jù)分析的重要性。但是,他們必須先有效地管理好自己擁有的大量信息。這會(huì)產(chǎn)生新的挑戰(zhàn):怎樣才能存儲(chǔ)大量的數(shù)據(jù)?怎樣處理它們?怎樣高效地分析它們?既然數(shù)據(jù)會(huì)增加,又如何構(gòu)建一個(gè)可擴(kuò)展的解決方案?

不僅研究人員和數(shù)據(jù)科學(xué)家要面對(duì)大數(shù)據(jù)的挑戰(zhàn)。幾年前,在Google+ 大會(huì)上,計(jì)算機(jī)書(shū)籍出版者Tim O’Reilly引用過(guò)Alistair Croll的話,“這些產(chǎn)生了大量的無(wú)明顯規(guī)律數(shù)據(jù)的公司,正在被那些產(chǎn)生了相對(duì)較少的有規(guī)律數(shù)據(jù)的新創(chuàng)公司取代……”。簡(jiǎn)而言之,Croll想要說(shuō),除非你的企業(yè)“理解”你擁有的數(shù)據(jù),否則你的企業(yè)無(wú)法與那些“理解”自身數(shù)據(jù)的公司抗衡。

企業(yè)已經(jīng)意識(shí)到:大數(shù)據(jù)與商業(yè)競(jìng)爭(zhēng)、態(tài)勢(shì)感知、生產(chǎn)力、科學(xué)和創(chuàng)新等密切相關(guān),分析這些大數(shù)據(jù)能夠獲得巨大的效益。因?yàn)樯虡I(yè)競(jìng)爭(zhēng)正在驅(qū)動(dòng)大數(shù)據(jù)分析,所以大多數(shù)企業(yè)認(rèn)同O’Reilly和Croll的觀點(diǎn)。他們認(rèn)為當(dāng)今企業(yè)的生存依賴于存儲(chǔ)、處理和分析大量信息的能力,依賴于是否掌控了接受大數(shù)據(jù)挑戰(zhàn)的能力。

如果你閱讀這本書(shū),你將會(huì)熟悉這些挑戰(zhàn),熟悉Apache的Hadoop,并且知道Hadoop可以解決哪些問(wèn)題。本章主要介紹大數(shù)據(jù)的前景和挑戰(zhàn),并且概述Hadoop及其組件生態(tài)圈??梢岳眠@些組件構(gòu)建可擴(kuò)展、分布式的數(shù)據(jù)分析解決方案。

1.1 當(dāng)大數(shù)據(jù)遇到Hadoop

由于“人力資本”是一個(gè)無(wú)形的、對(duì)成功至關(guān)重要的因素,所以多數(shù)企業(yè)都認(rèn)為他們的員工才是他們最有價(jià)值的財(cái)產(chǎn)。其實(shí)還有另外一個(gè)關(guān)鍵因素——企業(yè)所擁有的“信息”。信息可信度、信息量和信息可訪問(wèn)性可以增強(qiáng)企業(yè)信息能力,從而使企業(yè)做出更好的決策。

要理解企業(yè)產(chǎn)生的大量的數(shù)字信息是非常困難的。IBM指出在過(guò)去僅僅兩年的時(shí)間里產(chǎn)生了世界90%的數(shù)據(jù)。企業(yè)正在收集、處理和存儲(chǔ)這些可能成為戰(zhàn)略資源的數(shù)據(jù)。十年前,Michael Daconta, Leo Obrst, and Kevin T.Smith (Indianapolis: Wiley, 2004)寫(xiě)的一本書(shū)《The Semantic Web: A Guide to the Future of XML, Web Services, and Knowledge Management》中有句格言“只有擁有最好的信息,知道怎樣發(fā)現(xiàn)信息,并能夠最快利用信息的企業(yè)才能立于不敗之地”。

知識(shí)就是力量。問(wèn)題是,隨著收集的數(shù)據(jù)越來(lái)越多,傳統(tǒng)的數(shù)據(jù)庫(kù)工具將不能管理,并且快速處理這些數(shù)據(jù)。這將導(dǎo)致企業(yè)“淹沒(méi)”在自己的數(shù)據(jù)中:不能有效利用數(shù)據(jù),不能理解數(shù)據(jù)之間的聯(lián)系,不能理解數(shù)據(jù)潛在的巨大力量。

人們用“大數(shù)據(jù)”來(lái)描述過(guò)于龐大的數(shù)據(jù)集,這些數(shù)據(jù)集一般無(wú)法使用傳統(tǒng)的用于存儲(chǔ)、管理、搜索和分析等過(guò)程的工具來(lái)處理。大數(shù)據(jù)有眾多來(lái)源,可以是結(jié)構(gòu)型的,也可以是非結(jié)構(gòu)型的;通過(guò)處理和分析大數(shù)據(jù),可以發(fā)現(xiàn)內(nèi)部規(guī)律和模式,從而做出明智選擇。

什么是大數(shù)據(jù)的挑戰(zhàn)?怎么存儲(chǔ)、處理和分析如此大的數(shù)據(jù)量,從而從海量數(shù)據(jù)中獲取有用信息?

分析大數(shù)據(jù),需要大量的存儲(chǔ)空間和超級(jí)計(jì)算處理能力。在過(guò)去的十年中,研究人員嘗試了各種的方法來(lái)解決數(shù)字信息增加帶來(lái)的問(wèn)題。首先,把重點(diǎn)放在了給單個(gè)計(jì)算機(jī)更多的存儲(chǔ)、處理能力和內(nèi)存等上面,卻發(fā)現(xiàn)單臺(tái)計(jì)算機(jī)的分析能力并不能解決問(wèn)題。隨著時(shí)間的推移,許多組織實(shí)現(xiàn)了分布式系統(tǒng)(通過(guò)多臺(tái)計(jì)算機(jī)分布任務(wù)),但是分布式系統(tǒng)的數(shù)據(jù)分析解決方案往往很復(fù)雜,并且容易出錯(cuò),甚至速度不夠快。

在2002年,Doug Cutting和Mike Cafarella開(kāi)發(fā)一個(gè)名為Nutch的項(xiàng)目(專注于解決網(wǎng)絡(luò)爬蟲(chóng)、建立索引和搜索網(wǎng)頁(yè)的搜索引擎項(xiàng)目),用于處理大量信息。在為Nutch項(xiàng)目解決存儲(chǔ)和處理問(wèn)題的過(guò)程中,他們意識(shí)到,需要一個(gè)可靠的、分布式計(jì)算方法,為Nutch收集大量網(wǎng)頁(yè)數(shù)據(jù)。

一年后,谷歌發(fā)表了關(guān)于谷歌文件系統(tǒng)(GFS)和MapReduce的論文,MapReduce是一個(gè)用來(lái)處理大型數(shù)據(jù)集的算法和分布式編程平臺(tái)。當(dāng)意識(shí)到集群的分布式處理和分布式存儲(chǔ)的前景后,Cutting和Cafarella把這些論文作為基礎(chǔ),為Nutch構(gòu)建分布式平臺(tái),開(kāi)發(fā)了我們所熟知的Hadoop分布式文件系統(tǒng)(HDFS)和MapReduce。

在2006年,Yahoo在為搜索引擎建立大量信息的索引的過(guò)程中,經(jīng)歷了“大數(shù)據(jù)”挑戰(zhàn)的掙扎之后,看到了Nutch項(xiàng)目的前景,聘請(qǐng)了Doug Cutting,并迅速?zèng)Q定采用Hadoop作為其分布式架構(gòu),用來(lái)解決搜索引擎方面的問(wèn)題。雅虎剝離出來(lái)Nutch項(xiàng)目的存儲(chǔ)和處理部分,形成Apache基金的一個(gè)開(kāi)源項(xiàng)目Hadoop,與此同時(shí)Nutch的網(wǎng)絡(luò)爬蟲(chóng)項(xiàng)目保持自己獨(dú)立性。此后不久,雅虎開(kāi)始使用Hadoop分析各種產(chǎn)品應(yīng)用。該平臺(tái)非常有效,以至于雅虎把搜索業(yè)務(wù)和廣告業(yè)務(wù)合并成一個(gè)單元,從而更好地利用Hadoop技術(shù)。

在過(guò)去的10年中,Hadoop已經(jīng)從搜索引擎相關(guān)的平臺(tái),演變?yōu)樽盍餍型ㄓ玫挠?jì)算平臺(tái),用于解決大數(shù)據(jù)帶來(lái)的挑戰(zhàn)。它正在快速成為下一代基于數(shù)據(jù)的應(yīng)用程序的基礎(chǔ)。市場(chǎng)研究公司IDC預(yù)計(jì),到2016年,Hadoop驅(qū)動(dòng)的大數(shù)據(jù)市場(chǎng)將超過(guò)23億美元。自從2008年建立第一家以Hadoop為中心的公司Cloudera之后,幾十家基于Hadoop的創(chuàng)業(yè)公司吸引了數(shù)億美元的風(fēng)險(xiǎn)投資。簡(jiǎn)而言之,Hadoop為企業(yè)提供了一個(gè)行之有效的方法,來(lái)進(jìn)行大數(shù)據(jù)分析。

1.1.1 Hadoop:迎接大數(shù)據(jù)挑戰(zhàn)

Apache的Hadoop通過(guò)簡(jiǎn)化數(shù)據(jù)密集型、高度并行的分布式應(yīng)用的實(shí)現(xiàn),以此迎接大數(shù)據(jù)的挑戰(zhàn)。世界各地的企業(yè)、大學(xué)和其它組織都在使用Hadoop,Hadoop把任務(wù)分成任務(wù)片,分布在數(shù)千臺(tái)計(jì)算機(jī)上,從而進(jìn)行快速分析,并分布式存儲(chǔ)大量的數(shù)據(jù)。Hadoop利用大量廉價(jià)的計(jì)算機(jī),提供了一個(gè)可擴(kuò)展強(qiáng),可靠性高的機(jī)制;并利用廉價(jià)的方式來(lái)存儲(chǔ)大量數(shù)據(jù)。Hadoop還提供了新的和改進(jìn)的分析技術(shù),從而使大量結(jié)構(gòu)化數(shù)據(jù)的復(fù)雜分析變?yōu)榭赡堋?/p>

Hadoop與以前的分布式方法的區(qū)別:

  • 數(shù)據(jù)先進(jìn)行分布式存儲(chǔ)。

  • 在集群上備份多份數(shù)據(jù),從而來(lái)提高可靠性和實(shí)用性。數(shù)據(jù)在哪存儲(chǔ)就在哪處理,從而消除了帶寬瓶頸問(wèn)題。

此外,Hadoop隱藏了復(fù)雜的分布式實(shí)現(xiàn)過(guò)程,提供了一種簡(jiǎn)單的編程方法。從而,Hadoop得以提供強(qiáng)大的數(shù)據(jù)分析機(jī)制,包括以下內(nèi)容:

  • 存儲(chǔ)量大——Hadoop能夠使應(yīng)用程序運(yùn)行在成千上萬(wàn)的計(jì)算機(jī)和PB級(jí)數(shù)據(jù)上。在過(guò)去的十年中,計(jì)算機(jī)專家認(rèn)識(shí)到,那些曾經(jīng)只能由超級(jí)計(jì)算機(jī)來(lái)處理的高性能應(yīng)用,可以由大量廉價(jià)的計(jì)算機(jī)一起處理。在集群中,數(shù)百臺(tái)“小”的電腦的聚合計(jì)算能力,可以超過(guò)一臺(tái)超級(jí)計(jì)算機(jī)的計(jì)算能力,并且價(jià)格便宜。Hadoop利用超過(guò)數(shù)千臺(tái)機(jī)器的集群,在企業(yè)可以承受的價(jià)格范圍內(nèi),提供了巨大的存儲(chǔ)空間和處理能力。

  • 分布式處理與快速的數(shù)據(jù)訪問(wèn)——Hadoop集群在提供高效數(shù)據(jù)存儲(chǔ)能力的同時(shí),也提供了快速的數(shù)據(jù)訪問(wèn)能力。在Hadoop出現(xiàn)之前,應(yīng)用程序很難并行運(yùn)行在計(jì)算機(jī)集群之間。這是因?yàn)榧耗P驮趧?chuàng)建共享存儲(chǔ)數(shù)據(jù)時(shí),對(duì)I/O性能要求很高。用Hadoop來(lái)處理數(shù)據(jù),減輕了許多高性能的挑戰(zhàn)。此外,Hadoop應(yīng)用程序處理數(shù)據(jù)通常都是有序進(jìn)行的,這就避免了隨機(jī)的數(shù)據(jù)訪問(wèn)(磁盤(pán)尋道操作),進(jìn)一步減輕了I/O負(fù)載。

  • 可靠性,故障轉(zhuǎn)移和可擴(kuò)展性——在過(guò)去,并行應(yīng)用程序很難解決集群上機(jī)器的可靠性問(wèn)題。雖然單臺(tái)機(jī)器的可靠性相當(dāng)高,但是隨著群集增加,出故障的概率也隨之增加。在數(shù)千個(gè)節(jié)點(diǎn)的集群上,這種日常故障經(jīng)常發(fā)生。由于Hadoop有獨(dú)特的設(shè)計(jì)和實(shí)施方式,相同的故障將會(huì)產(chǎn)生相似的結(jié)果。從而,Hadoop可以監(jiān)測(cè)到這些故障,并利用不同的節(jié)點(diǎn)重新執(zhí)行任務(wù)。此外,Hadoop有很好的可擴(kuò)展性,實(shí)現(xiàn)無(wú)縫地將多個(gè)服務(wù)器整合到一個(gè)集群,并利用它們來(lái)存儲(chǔ)數(shù)據(jù)、執(zhí)行程序。

對(duì)于大多數(shù)Hadoop用戶而言,Hadoop最重要的特征是,將業(yè)務(wù)規(guī)劃和基礎(chǔ)設(shè)施維護(hù)進(jìn)行了清晰的劃分。為那些專注于商業(yè)業(yè)務(wù)的用戶,隱藏了Hadoop的基礎(chǔ)設(shè)施的復(fù)雜性,并提供了一個(gè)易于使用的平臺(tái),從而使復(fù)雜的分布式計(jì)算的問(wèn)題簡(jiǎn)單化。

1.1.2 商業(yè)界的數(shù)據(jù)科學(xué)

Hadoop的存儲(chǔ)和處理大數(shù)據(jù)的能力經(jīng)常與“數(shù)據(jù)科學(xué)”掛鉤。雖然該詞是由彼得·諾爾在20世紀(jì)60年代提出的,但是直到最近才引起人們廣泛關(guān)注。美國(guó)雪域大學(xué)杰弗里·斯坦頓德教授把“數(shù)據(jù)科學(xué)”定義為“一個(gè)專注于搜集、分析、可視化、管理和大量信息保存的新興領(lǐng)域”。

通常將“數(shù)據(jù)科學(xué)”這一術(shù)語(yǔ)用在商業(yè)業(yè)務(wù)分析中,與實(shí)際中的“大數(shù)據(jù)”學(xué)科有很大的不同。在數(shù)據(jù)科學(xué)中,業(yè)務(wù)分析師通過(guò)研究現(xiàn)有商業(yè)運(yùn)作模式,來(lái)提升業(yè)務(wù)。

數(shù)據(jù)科學(xué)的目標(biāo)是從數(shù)據(jù)提取出數(shù)據(jù)的真正含義。數(shù)據(jù)科學(xué)家基于數(shù)學(xué)、統(tǒng)計(jì)分析、模式識(shí)別、機(jī)器學(xué)習(xí)、高性能計(jì)算和數(shù)據(jù)倉(cāng)庫(kù)等來(lái)工作,通過(guò)分析數(shù)據(jù)來(lái)發(fā)現(xiàn)事物發(fā)展趨勢(shì),并基于收集到的信息開(kāi)發(fā)新業(yè)務(wù)。

在過(guò)去的幾年中,許多數(shù)據(jù)庫(kù)和編程方面的業(yè)務(wù)分析師成為了數(shù)據(jù)科學(xué)家。他們?cè)贖adoop生態(tài)圈中,使用高級(jí)的SQL工具(比如:Hive或者實(shí)時(shí)Hadoop查詢工具)進(jìn)行數(shù)據(jù)分析,以做出明智的業(yè)務(wù)決策。

不只是一個(gè)大數(shù)據(jù)庫(kù)

在本書(shū)后面會(huì)深入講解Hadoop,但在此之前,讓我們先消除這樣的誤區(qū)——Hadoop僅僅是數(shù)據(jù)分析師使用的工具。因?yàn)閷?duì)于那些熟悉數(shù)據(jù)庫(kù)查詢的人,Hadoop工具(如Hive和實(shí)時(shí)Hadoop查詢)提供了較低的門檻,所以一些人認(rèn)為Hadoop僅僅是以數(shù)據(jù)庫(kù)為中心的工具。

此外,如果你正在試圖解決的問(wèn)題超出了數(shù)據(jù)分析的范疇,并涉及到真正的“科學(xué)數(shù)據(jù)”的問(wèn)題,這時(shí),SQL數(shù)據(jù)挖掘技術(shù)將明顯變得不再實(shí)用。例如,大多數(shù)問(wèn)題的解決,需要用到線性代數(shù)和其它復(fù)雜的數(shù)學(xué)應(yīng)用程序,然而,這些問(wèn)題都不能用SQL很好地解決。

這意味著,使用Hadoop工具是解決這類問(wèn)題的最好辦法。利用Hadoop的MapReduce編程模型,不但解決了數(shù)據(jù)科學(xué)的問(wèn)題,而且明顯簡(jiǎn)化了企業(yè)級(jí)應(yīng)用創(chuàng)建和部署的過(guò)程??梢酝ㄟ^(guò)多種方式做到這一點(diǎn)——可以使用一些工具,這些工具往往要求開(kāi)發(fā)者具備軟件開(kāi)發(fā)技能。例如,通過(guò)使用基于Oozie的應(yīng)用程序進(jìn)行協(xié)調(diào)(在本書(shū)后面將詳細(xì)介紹Oozie),可以簡(jiǎn)化多個(gè)應(yīng)用程序的匯集過(guò)程,并非常靈活地鏈接來(lái)自多個(gè)工具的任務(wù)。在本書(shū)中,你會(huì)看到Hadoop在企業(yè)中的實(shí)際應(yīng)用,以及什么時(shí)候使用這些工具。

目前Hadoop的開(kāi)發(fā),主要是為了更好地支持?jǐn)?shù)據(jù)科學(xué)家。Hadoop提供了一個(gè)強(qiáng)大的計(jì)算平臺(tái),擁有高擴(kuò)展性和并行執(zhí)行能力,非常適合應(yīng)用于新一代功能強(qiáng)大的數(shù)據(jù)科學(xué)和企業(yè)級(jí)應(yīng)用。并且,Hadoop還提供了可伸縮的分布式存儲(chǔ)和MapReduce編程模式。企業(yè)正在使用Hadoop解決相關(guān)業(yè)務(wù)問(wèn)題,主要集中在以下幾個(gè)方面:

  • 為銀行和信用卡公司增強(qiáng)欺詐性檢測(cè)——公司正在利用Hadoop檢測(cè)交易過(guò)程中的欺詐行為。銀行通過(guò)使用Hadoop,建立大型集群,進(jìn)行數(shù)據(jù)分析;并將分析模型應(yīng)用于銀行交易過(guò)程,從而提供實(shí)時(shí)的欺詐行為檢測(cè)。

  • 社交媒體市場(chǎng)分析——公司目前正在使用Hadoop進(jìn)行品牌管理、市場(chǎng)推廣活動(dòng)和品牌保護(hù)?;ヂ?lián)網(wǎng)充滿了各種資源,例如博客、版面、新聞、推特和社會(huì)媒體數(shù)據(jù)等。公司利用Hadoop監(jiān)測(cè)、收集、匯聚這些信息,并提取、匯總自身的產(chǎn)品和服務(wù)信息,以及競(jìng)爭(zhēng)對(duì)手的相關(guān)信息,發(fā)掘內(nèi)在商業(yè)模式,或者預(yù)測(cè)未來(lái)的可能趨勢(shì),從而更加了解自身的業(yè)務(wù)。

  • 零售行業(yè)購(gòu)物模式分析——在零售行業(yè),通過(guò)使用Hadoop分析商店的位置和它周圍人口的購(gòu)物模式,來(lái)確定商店里哪些產(chǎn)品最暢銷。

  • 城市發(fā)展的交通模式識(shí)別——城市發(fā)展往往需要依賴交通模式,來(lái)確定道路網(wǎng)絡(luò)擴(kuò)展的需求。通過(guò)監(jiān)控在一天內(nèi)不同時(shí)間的交通狀況,發(fā)掘交通模型,城市規(guī)劃人員就可以確定交通瓶頸。從而決定是否需要增加街道或者車道,來(lái)避免在高峰時(shí)段的交通擁堵。

  • 內(nèi)容優(yōu)化和內(nèi)容參與——企業(yè)越來(lái)越專注于優(yōu)化內(nèi)容,將其呈現(xiàn)在不同的設(shè)備上,并支持不同格式。因此,許多媒體公司需要處理大量的不同的格式的內(nèi)容。所以,必須規(guī)劃內(nèi)容參與模式,才能進(jìn)行反饋和改進(jìn)。

  • 網(wǎng)絡(luò)分析和調(diào)解——針對(duì)交易數(shù)據(jù)、網(wǎng)絡(luò)性能數(shù)據(jù)、基站數(shù)據(jù)、設(shè)備數(shù)據(jù)以及其他形式的后臺(tái)數(shù)據(jù)等,進(jìn)行大數(shù)據(jù)實(shí)時(shí)分析,能夠降低公司運(yùn)營(yíng)成本,增強(qiáng)用戶體驗(yàn)。

  • 大數(shù)據(jù)轉(zhuǎn)換——紐約時(shí)報(bào)要將1100萬(wàn)篇文章(1851至1980年)轉(zhuǎn)換成PDF文件,這些文章都是從報(bào)紙上掃描得到的圖片。利用Hadoop技術(shù),這家報(bào)社能夠在24小時(shí)內(nèi),將4TB的掃描文章轉(zhuǎn)換為1.5TB的PDF文檔。

類似的例子數(shù)不勝數(shù)。企業(yè)正在逐步使用Hadoop進(jìn)行數(shù)據(jù)分析,從而作出更好的戰(zhàn)略決策??偠灾?,數(shù)據(jù)科學(xué)已經(jīng)進(jìn)入了商界。

不僅僅是針對(duì)商業(yè)的大數(shù)據(jù)工具

雖然這里的大多數(shù)例子針對(duì)于商業(yè),但是Hadoop也被廣泛應(yīng)用在科學(xué)界和公有企業(yè)。

最近一項(xiàng)由美國(guó)科技基金會(huì)進(jìn)行的研究指出,醫(yī)療研究人員已經(jīng)證明,大數(shù)據(jù)分析可以被用于分析癌癥患者的信息,以提高治療效果(比如,蘋(píng)果創(chuàng)始人喬布斯的治療過(guò)程)。警察部門正在使用大數(shù)據(jù)工具,來(lái)預(yù)測(cè)犯罪可能的發(fā)生時(shí)間和地點(diǎn),從而降低了犯罪率。同樣的調(diào)查也表明,能源方面的官員正在利用大數(shù)據(jù)工具,分析相關(guān)的能量損耗和潛在的電網(wǎng)故障問(wèn)題。

通過(guò)分析大數(shù)據(jù)可以發(fā)現(xiàn)模型和趨勢(shì),提高效率,從而用新方法來(lái)作出更好的決策。

1.2 Hadoop生態(tài)圈

架構(gòu)師和開(kāi)發(fā)人員通常會(huì)使用一種軟件工具,用于其特定的用途軟件開(kāi)發(fā)。例如,他們可能會(huì)說(shuō),Tomcat是Apache Web服務(wù)器,MySQL是一個(gè)數(shù)據(jù)庫(kù)工具。

然而,當(dāng)提到Hadoop的時(shí)候,事情變得有點(diǎn)復(fù)雜。Hadoop包括大量的工具,用來(lái)協(xié)同工作。因此,Hadoop可用于完成許多事情,以至于,人們常常根據(jù)他們使用的方式來(lái)定義它。

對(duì)于一些人來(lái)說(shuō),Hadoop是一個(gè)數(shù)據(jù)管理系統(tǒng)。他們認(rèn)為Hadoop是數(shù)據(jù)分析的核心,匯集了結(jié)構(gòu)化和非結(jié)構(gòu)化的數(shù)據(jù),這些數(shù)據(jù)分布在傳統(tǒng)的企業(yè)數(shù)據(jù)棧的每一層。對(duì)于其他人,Hadoop是一個(gè)大規(guī)模并行處理框架,擁有超級(jí)計(jì)算能力,定位于推動(dòng)企業(yè)級(jí)應(yīng)用的執(zhí)行。還有一些人認(rèn)為Hadoop作為一個(gè)開(kāi)源社區(qū),主要為解決大數(shù)據(jù)的問(wèn)題提供工具和軟件。因?yàn)镠adoop可以用來(lái)解決很多問(wèn)題,所以很多人認(rèn)為Hadoop是一個(gè)基本框架。

雖然Hadoop提供了這么多的功能,但是仍然應(yīng)該把它歸類為多個(gè)組件組成的Hadoop生態(tài)圈,這些組件包括數(shù)據(jù)存儲(chǔ)、數(shù)據(jù)集成、數(shù)據(jù)處理和其它進(jìn)行數(shù)據(jù)分析的專門工具。

1.3  HADOOP核心部件

隨著時(shí)間的推移,Hadoop生態(tài)圈越來(lái)越大,圖1-1給出了Hadoop核心組件。

 

1Hadoop生態(tài)圈的核心組成組件

從圖1-1的底部開(kāi)始,Hadoop生態(tài)圈由以下內(nèi)容組成:

  • HDFS—— Hadoop生態(tài)圈的基本組成部分是Hadoop分布式文件系統(tǒng)(HDFS)。HDFS是一種數(shù)據(jù)分布式保存機(jī)制,數(shù)據(jù)被保存在計(jì)算機(jī)集群上。數(shù)據(jù)寫(xiě)入一次,讀取多次。HDFS為HBase等工具提供了基礎(chǔ)。

  • MapReduce——Hadoop的主要執(zhí)行框架是MapReduce,它是一個(gè)分布式、并行處理的編程模型。MapReduce把任務(wù)分為map(映射)階段和reduce(化簡(jiǎn))。開(kāi)發(fā)人員使用存儲(chǔ)在HDFS中數(shù)據(jù)(可實(shí)現(xiàn)快速存儲(chǔ)),編寫(xiě)Hadoop的MapReduce任務(wù)。由于MapReduce工作原理的特性, Hadoop能以并行的方式訪問(wèn)數(shù)據(jù),從而實(shí)現(xiàn)快速訪問(wèn)數(shù)據(jù)。

  • Hbase——HBase是一個(gè)建立在HDFS之上,面向列的NoSQL數(shù)據(jù)庫(kù),用于快速讀/寫(xiě)大量數(shù)據(jù)。HBase使用Zookeeper進(jìn)行管理,確保所有組件都正常運(yùn)行。

  • Zookeeper ——用于Hadoop的分布式協(xié)調(diào)服務(wù)。Hadoop的許多組件依賴于Zookeeper,它運(yùn)行在計(jì)算機(jī)集群上面,用于管理Hadoop操作。

  • Oozie——Oozie是一個(gè)可擴(kuò)展的工作體系,集成于Hadoop的堆棧,用于協(xié)調(diào)多個(gè)MapReduce作業(yè)的執(zhí)行。它能夠管理一個(gè)復(fù)雜的系統(tǒng),基于外部事件來(lái)執(zhí)行,外部事件包括數(shù)據(jù)的定時(shí)和數(shù)據(jù)的出現(xiàn)。

  • Pig——它是MapReduce編程的復(fù)雜性的抽象。Pig平臺(tái)包括運(yùn)行環(huán)境和用于分析Hadoop數(shù)據(jù)集的腳本語(yǔ)言(Pig Latin)。其編譯器將Pig Latin翻譯成MapReduce程序序列。

  • Hive ——Hive類似于SQL高級(jí)語(yǔ)言,用于運(yùn)行存儲(chǔ)在Hadoop上的查詢語(yǔ)句,Hive讓不熟悉MapReduce開(kāi)發(fā)人員也能編寫(xiě)數(shù)據(jù)查詢語(yǔ)句,然后這些語(yǔ)句被翻譯為Hadoop上面的MapReduce任務(wù)。像Pig一樣,Hive作為一個(gè)抽象層工具,吸引了很多熟悉SQL而不是Java編程的數(shù)據(jù)分析師。

Hadoop的生態(tài)圈還包括以下幾個(gè)框架,用來(lái)與其它企業(yè)融合:

  • Sqoop是一個(gè)連接工具,用于在關(guān)系數(shù)據(jù)庫(kù)、數(shù)據(jù)倉(cāng)庫(kù)和Hadoop之間轉(zhuǎn)移數(shù)據(jù)。Sqoop利用數(shù)據(jù)庫(kù)技術(shù)描述架構(gòu),進(jìn)行數(shù)據(jù)的導(dǎo)入/導(dǎo)出;利用MapReduce實(shí)現(xiàn)并行化運(yùn)行和容錯(cuò)技術(shù)。

  • Flume提供了分布式、可靠、高效的服務(wù),用于收集、匯總大數(shù)據(jù),并將單臺(tái)計(jì)算機(jī)的大量數(shù)據(jù)轉(zhuǎn)移到HDFS。它基于一個(gè)簡(jiǎn)單而靈活的架構(gòu),并提供了數(shù)據(jù)流的流。它利用簡(jiǎn)單的可擴(kuò)展的數(shù)據(jù)模型,將企業(yè)中多臺(tái)計(jì)算機(jī)上的數(shù)據(jù)轉(zhuǎn)移到Hadoop。

除了在圖1-1所示的核心部件外,Hadoop生態(tài)圈正在不斷增長(zhǎng),以提供更新功能和組件,如以下內(nèi)容:

  • Whirr——Whirr是一組用來(lái)運(yùn)行云服務(wù)的Java類庫(kù),使用戶能夠輕松地將Hadoop集群運(yùn)行于Amazon EC2、Rackspace等虛擬云計(jì)算平臺(tái)。

  • Mahout——Mahout是一個(gè)機(jī)器學(xué)習(xí)和數(shù)據(jù)挖掘庫(kù),它提供的MapReduce包含很多實(shí)現(xiàn),包括聚類算法、回歸測(cè)試、統(tǒng)計(jì)建模。通過(guò)使用 Apache Hadoop 庫(kù),可以將Mahout有效地?cái)U(kuò)展到云中。

  • BigTop —— BigTop作為Hadoop子項(xiàng)目和相關(guān)組件,是一個(gè)用于打包和互用性測(cè)試的程序和框架。

  • Ambari——?Ambar通過(guò)為配置、管理和監(jiān)控Hadoop集群提供支持,簡(jiǎn)化了Hadoop的管理。

Hadoop家族成員正在逐步增加。在本書(shū)中,主要涉及到了三個(gè)新的Apache Hadoop孵化項(xiàng)目。

孵化項(xiàng)目演變到Apach項(xiàng)目的過(guò)程

下面將會(huì)簡(jiǎn)要介紹Apache基金會(huì)的運(yùn)作方式,以及Apache各種項(xiàng)目及其彼此之間的聯(lián)系。Apache的個(gè)人會(huì)員共同治理整個(gè)組織,Apache提供項(xiàng)目的創(chuàng)建、成熟和回收。

新的項(xiàng)目開(kāi)始于“孵化器”。建立Apache孵化器,是為了幫助新項(xiàng)目加入Apache。Apache提供管理和檢驗(yàn),經(jīng)過(guò)篩選后,再建立新的項(xiàng)目或者子項(xiàng)目。在創(chuàng)建孵化項(xiàng)目后,Apache會(huì)評(píng)估項(xiàng)目的成熟度,并負(fù)責(zé)將孵化器中的項(xiàng)目“畢業(yè)”到Apache項(xiàng)目或子項(xiàng)目。孵化器也會(huì)由于各種原因而終止一些項(xiàng)目。

要查看孵化器中項(xiàng)目(當(dāng)前的、孵化成功的、暫時(shí)停止的和回收的)的完整列表,可以通過(guò)此網(wǎng)址:http://incubator./projects/index.html。

當(dāng)今大多數(shù)的Hadoop方面的書(shū)籍,要么專注于Hadoop生態(tài)圈中某個(gè)獨(dú)立組件的描述,要么介紹如何使用Hadoop業(yè)務(wù)分析工具(如Pig和Hive)。盡管這些方面也很重要,但是這些書(shū)籍通常沒(méi)有進(jìn)行深入的描述,并不能幫助架構(gòu)師建立基于Hadoop的企業(yè)級(jí)應(yīng)用或復(fù)雜應(yīng)用。

1.4 Hadoop發(fā)行版本

雖然Hadoop是開(kāi)源的Apache(和現(xiàn)在GitHub)項(xiàng)目,但是在Hadoop行業(yè),仍然出現(xiàn)了大量的新興公司,以幫助人們更方便地使用Hadoop為目標(biāo)。這些企業(yè)大多將Hadoop發(fā)行版進(jìn)行打包、改進(jìn),以確保所有的軟件一起工作,并提供技術(shù)支持。現(xiàn)在,Apache自己也在開(kāi)發(fā)更多的工具來(lái)簡(jiǎn)化Hadoop的使用,并擴(kuò)展其功能。這些工具是專有的,并有所差異。有的工具成為了Apache Hadoop家族中新項(xiàng)目的基礎(chǔ)。其中,有些是經(jīng)過(guò)Apache2許可的開(kāi)源GitHub項(xiàng)目。盡管所有這些公司都基于Apache Hadoop發(fā)行版,但是他們都與Hadoop的愿景有了細(xì)微的不同——應(yīng)該選取哪個(gè)方向,怎樣完成它。

這些公司之間最大的區(qū)別是:Apache源代碼的使用。除了MapR公司之外,都認(rèn)為Hadoop應(yīng)該由Apache項(xiàng)目的代碼定義。相反,MapR認(rèn)為Apache的代碼只是實(shí)施參考,可以基于Apache提供的API來(lái)實(shí)現(xiàn)自己的需求。這種方法使得MapR做出了很大的創(chuàng)新,特別是在HDFS和HBase方面,MapR讓這兩個(gè)基本Hadoop的存儲(chǔ)機(jī)制更加可靠、更加高性能。MapR還推出了高速網(wǎng)絡(luò)文件系統(tǒng)(NFS),可以訪問(wèn)HDFS,從而大大簡(jiǎn)化了一些企業(yè)級(jí)應(yīng)用的集成。

有兩個(gè)關(guān)注度較高的Hadoop發(fā)行版,分別由亞馬遜和微軟發(fā)布。兩者都提供Hadoop的預(yù)安裝版本,運(yùn)行于相應(yīng)的云服務(wù)平臺(tái)(Amazon or Azure),提供PaaS服務(wù)。它們都提供了擴(kuò)展服務(wù),允許開(kāi)發(fā)人員不僅能夠利用Hadoop的本地HDFS,也可以通過(guò)HDFS映射利用微軟和雅虎的數(shù)據(jù)存儲(chǔ)機(jī)制(Amazon的S3,和Azure的Windows Azure存儲(chǔ)機(jī)制)。亞馬遜還提供了,在S3上面保存和恢復(fù)HBase內(nèi)容的功能。

表1-1展示了主要的Hadoop發(fā)行版的主要特點(diǎn)。

表1: 不同的Hadoop供應(yīng)商

供應(yīng)商

HADOOP特性

Cloudera CDH,個(gè)人版和企業(yè)版

CDH基于Hadoop2,(撰寫(xiě)本文時(shí)為4.1.2版本)包括HDFS,YARN,HBas,MapReduce,Hive, Pig, Zookeeper, Oozie, Mahout, Hue以及其他開(kāi)源工具(包括實(shí)時(shí)查詢引擎Impala)。Cloudera的個(gè)人免費(fèi)版包括所有CDH工具,和支持高達(dá)50個(gè)節(jié)點(diǎn)的集群管理器。Cloudera企業(yè)版提供了更復(fù)雜的管理器,支持無(wú)限數(shù)量的集群節(jié)點(diǎn),能夠主動(dòng)監(jiān)控,并額外提供了數(shù)據(jù)分析工具。

Hortonworks數(shù)據(jù)平臺(tái)

發(fā)行版(Alpha 2.0版)基于Hadoop2,包括HDFS,YARN, HBase, MapReduce, Hive, Pig, HCatalog, Zookeeper, Oozie, Mahout, Hue, Ambari, Tez,實(shí)時(shí)版Hive(Stinger)和其他開(kāi)源工具。Hortonworks提供了高可用性支持、高性能的Hive ODBC驅(qū)動(dòng)和針對(duì)大數(shù)據(jù)的Talend Open Studio。

MapR

基于Hadoop1,發(fā)行版(撰寫(xiě)本文時(shí)為版本M7)包括HDFS, HBase, MapReduce, Hive, Mahout, Oozie, Pig, ZooKeeper, Hue以及其他開(kāi)源工具。它還包括直接NFS訪問(wèn)、快照、“高實(shí)用性”鏡像、專有的HBase實(shí)現(xiàn),與Apache完全兼容的API和一個(gè)MapR管理控制臺(tái)。

IBM InfoSphere BigInsights

基于Hadoop1,提供了兩個(gè)版本?;景姘℉DFS, Hbase, MapReduce, Hive, Mahout, Oozie, Pig, ZooKeeper, Hue以及其他一些開(kāi)源工具。并提供IBM的安裝程序和數(shù)據(jù)訪問(wèn)工具的基本版本。企業(yè)版增加了復(fù)雜的作業(yè)管理工具、集成了數(shù)據(jù)源的數(shù)據(jù)訪問(wèn)層和BigSheets(類似電子表格的界面,用來(lái)操作集群中的數(shù)據(jù))。

GreenPlum的Pivotal HD

在撰寫(xiě)本文時(shí),最新版基于Hadoop2,包括HDFS, MapReduce, Hive, Pig, HBase, Zookeeper, Sqoop, Flume和其他開(kāi)源工具。Pivotal HD企業(yè)級(jí)還增加了先進(jìn)的HAWQ數(shù)據(jù)庫(kù)服務(wù)(ADS),和豐富、成熟、并行的SQL處理工具。

亞馬遜彈性MapReduce(EMR)

在撰寫(xiě)本文時(shí),最新版基于Hadoop1。亞馬遜EMR是一個(gè)web服務(wù),能夠使用戶方便且經(jīng)濟(jì)高效地處理海量的數(shù)據(jù)。它采用Hadoop框架,運(yùn)行在亞馬遜彈性計(jì)算云EC2和簡(jiǎn)單存儲(chǔ)服務(wù)S3之上。包括HDFS(S3支持),HBase(專有的備份恢復(fù)),MapReduce,, Hive (Dynamo的補(bǔ)充支持), Pig, and Zookeeper.

Windows Azure的HDlnsight

HDlnsight基于Hortonworks數(shù)據(jù)平臺(tái)(Hadoop1),運(yùn)行在Azure云。它集成了微軟管理控制臺(tái),易于部署,易于System Center的集成。通過(guò)使用Excel插件,可以整合Excel數(shù)據(jù)。通過(guò)Hive開(kāi)放式數(shù)據(jù)庫(kù)連接(ODBC)驅(qū)動(dòng)程序,可以集成Microsoft SQL Server分析服務(wù)(SSAS)、PowerPivot和Power View。Azure Marketplace授權(quán)客戶連接數(shù)據(jù)、智能挖掘算法以及防火墻之外的人。Windows Azure Marketplace從受信任的第三方供應(yīng)商中,提供了數(shù)百個(gè)數(shù)據(jù)集。

當(dāng)然,大量的發(fā)行版讓你疑惑“我應(yīng)該使用哪個(gè)發(fā)行版?”當(dāng)公司/部門決定采用一個(gè)具體的版本時(shí),應(yīng)該考慮以下幾點(diǎn):

技術(shù)細(xì)節(jié)——包括Hadoop的版本、組件、專有功能部件等等。

易于部署——使用工具箱來(lái)實(shí)現(xiàn)管理的部署、版本升級(jí)、打補(bǔ)丁等等。

易于維護(hù)——主要包括集群管理、多中心的支持、災(zāi)難恢復(fù)支持等等。

成本——包括針發(fā)行版的實(shí)施成本、計(jì)費(fèi)模式和許可證。

企業(yè)集成的支持——Hadoop應(yīng)用程序與企業(yè)中其他部分的集成。

版本的選擇依賴于,你打算利用Hadoop來(lái)解決哪些問(wèn)題。本書(shū)中的討論與版本無(wú)關(guān),因?yàn)楣P者看中的是每個(gè)發(fā)行版提供的價(jià)值。

1.5 用Hadoop開(kāi)發(fā)企業(yè)級(jí)應(yīng)用

為了滿足大數(shù)據(jù)帶來(lái)的新挑戰(zhàn),需要重新思考構(gòu)建數(shù)據(jù)分析的程序的方式。傳統(tǒng)的在數(shù)據(jù)庫(kù)中存儲(chǔ)數(shù)據(jù),構(gòu)建應(yīng)用程序的方法,對(duì)于大數(shù)據(jù)處理將不再有效。主要因?yàn)椋?/p>

  • 傳統(tǒng)的應(yīng)用程序基于事務(wù)處理型數(shù)據(jù)庫(kù),這種數(shù)據(jù)庫(kù)將不再被Hadoop支持。

  • 隨著存儲(chǔ)在Hadoop上的數(shù)據(jù)量增大,實(shí)時(shí)訪問(wèn)僅僅能夠訪問(wèn)到集群上的一部分?jǐn)?shù)據(jù)。

  • Hadoop的海量數(shù)據(jù)存儲(chǔ)功能可以存儲(chǔ)更多的數(shù)據(jù)集版本,不會(huì)像傳統(tǒng)方法一樣覆蓋原始數(shù)據(jù)。

因此,一個(gè)典型的基于Hadoop的企業(yè)級(jí)應(yīng)用如圖1-2所示。在這些應(yīng)用中,包括數(shù)據(jù)存儲(chǔ)層、數(shù)據(jù)處理層、實(shí)時(shí)訪問(wèn)層和安全層。要實(shí)現(xiàn)這種體系結(jié)構(gòu),不僅需要理解Hadoop組件所涉及的API,而且需要理解他們的功能和局限性,以及每個(gè)組件在整體架構(gòu)中的作用。

如圖1-2所示,數(shù)據(jù)存儲(chǔ)層包括源數(shù)據(jù)和中間數(shù)據(jù)。源數(shù)據(jù)主要來(lái)自這些外部數(shù)據(jù)源,外部數(shù)據(jù)源包括企業(yè)應(yīng)用程序、外部數(shù)據(jù)庫(kù)、執(zhí)行日志和其它數(shù)據(jù)源。中間數(shù)據(jù)結(jié)果來(lái)自Hadoop的執(zhí)行過(guò)程,它們被Hadoop的實(shí)時(shí)應(yīng)用程序使用,并交付給其他應(yīng)用程序和終端用戶。

1-2 Hadoop企業(yè)級(jí)應(yīng)用

可以使用不同的機(jī)制將源數(shù)據(jù)轉(zhuǎn)移到Hadoop,包括:Sqoop,F(xiàn)lume,直接安裝HDFS作為一個(gè)網(wǎng)絡(luò)文件系統(tǒng)(NFS),或者利用Hadoop的實(shí)時(shí)服務(wù)和應(yīng)用程序。在HDFS中,新的數(shù)據(jù)不會(huì)覆蓋現(xiàn)有數(shù)據(jù),而是新建一個(gè)數(shù)據(jù)版本。這一點(diǎn)很重要,因?yàn)镠DFS是一個(gè)“寫(xiě)一次”的文件系統(tǒng)。

對(duì)于數(shù)據(jù)處理層,Oozie預(yù)處理源數(shù)據(jù),并將其轉(zhuǎn)換為中間數(shù)據(jù)。不同于源數(shù)據(jù),中間數(shù)據(jù)會(huì)被覆蓋,沒(méi)有多個(gè)版本,所以中間數(shù)據(jù)量不會(huì)很大。

對(duì)于實(shí)時(shí)訪問(wèn)層,Hadoop的實(shí)時(shí)應(yīng)用程序既支持直接數(shù)據(jù)訪問(wèn),也支持基于數(shù)據(jù)集的訪問(wèn)。這些應(yīng)用程序讀取基于Hadoop的中間數(shù)據(jù),并將源數(shù)據(jù)存儲(chǔ)在Hadoop。該應(yīng)用程序也可以用于服務(wù)用戶,或者用于其它企業(yè)的Hadoop集成。

源數(shù)據(jù)用來(lái)存儲(chǔ)和初步處理數(shù)據(jù),中間數(shù)據(jù)用于傳遞和整合數(shù)據(jù)。因?yàn)椴捎昧嗽磾?shù)據(jù)和中間數(shù)據(jù)完全分離的結(jié)構(gòu),所以允許開(kāi)發(fā)人員在沒(méi)有任何事務(wù)處理需求的情況下,構(gòu)建任何虛擬和復(fù)雜的應(yīng)用程序。通過(guò)中間預(yù)處理過(guò)程,明顯減少了服務(wù)數(shù)據(jù)量,使得實(shí)時(shí)數(shù)據(jù)訪問(wèn)更加靈活。

HADOOP擴(kuò)充性

雖然許多文章認(rèn)為,對(duì)于開(kāi)發(fā)人員來(lái)講,Hadoop隱藏了底層的復(fù)雜性。但是,其實(shí)是這些文章沒(méi)有充分認(rèn)識(shí)到Hadoop的可擴(kuò)展。

通過(guò)設(shè)計(jì)Hadoop的實(shí)現(xiàn)方式,可以使開(kāi)發(fā)人員輕松、無(wú)縫地集成新的功能到Hadoop中執(zhí)行。Hadoop明確指定一些類庫(kù)來(lái)負(fù)責(zé)MapReduce執(zhí)行的不同階段。通過(guò)這種方式,滿足了開(kāi)發(fā)者執(zhí)行特定問(wèn)題的要求,從而確保每一個(gè)作業(yè)以最低成本、最高性能性能來(lái)執(zhí)行。

可以自定義Hadoop執(zhí)行的以下內(nèi)容:

  • 自定義Hadoop并行執(zhí)行問(wèn)題的方式,包括被分割的方式和執(zhí)行的位置

  • 支持新的輸入數(shù)據(jù)類型和數(shù)據(jù)定位

  • 支持新的輸出數(shù)據(jù)類型

  • 自定義輸出數(shù)據(jù)的位置

本書(shū)有一部分內(nèi)容,在他人工作成果的基礎(chǔ)上,對(duì)自定義方法,以及實(shí)現(xiàn)方式進(jìn)行了專門的描述。

本書(shū)涵蓋了Hadoop企業(yè)級(jí)應(yīng)用的所有主要層,如圖1-2所示。

第2章介紹了構(gòu)建數(shù)據(jù)層的方法,包括HDFS和HBase(架構(gòu)和API)。然后,對(duì)兩者進(jìn)行對(duì)比分析,以及如何將HDFS和HBase相結(jié)合。本章還介紹了Avro(Hadoop的新的序列化框架),以及它在存儲(chǔ)或訪問(wèn)數(shù)據(jù)中的作用。最后,你將了解HCatalog,以及用它來(lái)做廣告和訪問(wèn)數(shù)據(jù)的方式。

本書(shū)將對(duì)數(shù)據(jù)處理進(jìn)行了大量的描述。對(duì)于應(yīng)用程序的數(shù)據(jù)處理部分,筆者建議使用MapReduce和Oozie。

在本書(shū)中,為什么以MapReduce源碼為核心?

你可能會(huì)問(wèn),為什么本書(shū)將重點(diǎn)放在MapReduce源碼上,而不是可以讓MapReduce編程變得更簡(jiǎn)單的高級(jí)語(yǔ)言上面。你可以在網(wǎng)上或者Hadoop社區(qū)內(nèi),找到很多關(guān)于這方面的討論。在這些討論中給出的解釋是,MapReduce源碼量(就代碼行數(shù)而言)比提供相同的功能的Pig源碼量通常要多很多。盡管這是一個(gè)不爭(zhēng)的事實(shí),不過(guò)還有一些其他因素:

  • 并不是什么都可以描述為一種高級(jí)語(yǔ)言。有些任務(wù),更適合使用傳統(tǒng)的Java代碼來(lái)執(zhí)行。

  • 如果你寫(xiě)的代碼僅需要執(zhí)行一次,那么代碼的行數(shù)可能對(duì)你很重要。但是,如果你正在編寫(xiě)企業(yè)級(jí)應(yīng)用,那么你應(yīng)該考慮其他標(biāo)準(zhǔn),包括性能、可靠性和安全性。通常情況下,MapReduce源碼提供了更多的途徑,從而更容易實(shí)現(xiàn)這些特質(zhì)。

  • MapReduce通過(guò)自定義方式,為用戶提供的更多功能,以進(jìn)一步提高應(yīng)用程序的性能、可靠性和安全性。

在第3章中,您將了解MapReduce的架構(gòu)、主要構(gòu)成和編程模型。本章介紹了MapReduce的應(yīng)用程序設(shè)計(jì)、設(shè)計(jì)模式和MapReduce注意事項(xiàng)。本章還講介紹MapReduce的執(zhí)行是如何實(shí)現(xiàn)的。正如所提到的,MapReduce最強(qiáng)的特征之一是它可以自定義執(zhí)行。第4章會(huì)介紹自定義選項(xiàng)的詳細(xì)信息,并舉例說(shuō)明。第5章通過(guò)演示實(shí)例,對(duì)MapReduce進(jìn)一步討論,構(gòu)建可靠的MapReduce應(yīng)用。

盡管MapReduce功能很強(qiáng)大,但是對(duì)于一個(gè)切實(shí)可行的解決方案,通常需要將多個(gè)MapReduce應(yīng)用集合到在一起。這個(gè)過(guò)程非常復(fù)雜,通過(guò)使用Hadoop的Workflow/Coordinator(工作流/協(xié)調(diào)員)引擎,可以被大大簡(jiǎn)化MapReduce應(yīng)用的集成。

Oozie的價(jià)值

Oozie是Hadoop中最容易被低估的組件。很少有人(甚至沒(méi)有)在Hadoop書(shū)籍討論這個(gè)極其重要的組件。本書(shū)不但彰顯了Oozie什么可以做,而且還提供了一個(gè)端到端的例子,用來(lái)展示如何利用Oozie功能來(lái)解決實(shí)際問(wèn)題。類似于Hadoop的其余部分,Oozie的功能也具有很好的擴(kuò)展性。開(kāi)發(fā)者可以通過(guò)不同的方法來(lái)擴(kuò)展Oozie的功能。

在Hadoop中,最容易被低估的挑戰(zhàn)是:將Hadoop執(zhí)行與企業(yè)處理的其余部分進(jìn)行整合。使用Oozie來(lái)協(xié)調(diào)MapReduce應(yīng)用,并通過(guò)公開(kāi)Oozie API的方式公開(kāi)了Hadoop進(jìn)程。通過(guò)這種方式,你會(huì)很容易就找到更好的集成方法,對(duì)Hadoop處理和企業(yè)處理部分進(jìn)行集成。

第6章描述了Oozie是什么,Oozie的體系結(jié)構(gòu)、主要組成、編程語(yǔ)言和執(zhí)行模型。為了更好地解釋每個(gè)Oozie組件的功能和角色,第7章通過(guò)使用Oozie應(yīng)用解決端到端的實(shí)際問(wèn)題。第8章中,通過(guò)展示Oozie的一些高級(jí)功能,對(duì)Oozie進(jìn)一步描述。這些高級(jí)功能包括自定義Workflow活動(dòng)、動(dòng)態(tài)生成Workflow和支持超級(jí)JAR文件(一個(gè)包含了所有的包及其依賴關(guān)系的JAR文件)。

第9章主要講解實(shí)時(shí)訪問(wèn)層。該章首先介紹了一個(gè)工業(yè)中實(shí)時(shí)Hadoop應(yīng)用實(shí)例,然后針對(duì)實(shí)現(xiàn)方式提出了整體架構(gòu)。接著,介紹了建立這種實(shí)現(xiàn)的三種主要方法——基于HBase的應(yīng)用程序、實(shí)時(shí)查詢以及基于流的處理。本章介紹了總體架構(gòu),并提供了基于HBase實(shí)時(shí)應(yīng)用的兩個(gè)例子。然后,描述了一個(gè)實(shí)時(shí)查詢體系結(jié)構(gòu),并討論了兩個(gè)具體的實(shí)現(xiàn)——Apache Drill 和 Cloudera’s Impala。還介紹了實(shí)時(shí)查詢和MapReduce的對(duì)比。最后,您將了解基于Hadoop的復(fù)雜事件處理,以及兩個(gè)具體的實(shí)現(xiàn)——Strom和HFlame。

開(kāi)發(fā)企業(yè)級(jí)應(yīng)用需要大量的規(guī)劃,以及信息安全方面的策略。第10章將重點(diǎn)講解Hadoop的安全模型。

隨著云計(jì)算的發(fā)展,許多企業(yè)嘗試將他們的Hadoop運(yùn)行在云上。第11章的重點(diǎn)是,通過(guò)使用EMR實(shí)現(xiàn),在亞馬遜的云上運(yùn)行Hadoop應(yīng)用;并且介紹了其它AWS服務(wù)(如S3),用來(lái)補(bǔ)充Hadoop的功能。本章還介紹了,通過(guò)使用不同的方法來(lái)運(yùn)行云上的Hadoop,并討論了最佳實(shí)踐方案。

除了Hadoop自身的安全問(wèn)題外,通常Hadoop還需要集成其他企業(yè)的組件,來(lái)實(shí)現(xiàn)數(shù)據(jù)的導(dǎo)入和導(dǎo)出。第12章將重點(diǎn)介紹,如何才能維護(hù)好那些使用了Hadoop的企業(yè)級(jí)應(yīng)用,并提供了示例和最佳安全實(shí)踐,來(lái)確保所有Hadoop企業(yè)級(jí)應(yīng)用的安全運(yùn)行。

1.6 總結(jié)

本章高度概括了大數(shù)據(jù)和Hadoop之間的關(guān)系。并介紹了大數(shù)據(jù)及其價(jià)值,還介紹了企業(yè)面臨的大數(shù)據(jù)挑戰(zhàn),包括數(shù)據(jù)存儲(chǔ)和處理的挑戰(zhàn)。通過(guò)本章,你還了解了Hadoop及其歷史。

通過(guò)本章,你了解了Hadoop特點(diǎn),并知道了為什么Hadoop如此適合大數(shù)據(jù)處理。本章還概述了Hadoop的主要組件,并介紹了一些例子,用來(lái)展示Hadoop如何簡(jiǎn)化數(shù)據(jù)科學(xué),簡(jiǎn)化創(chuàng)建企業(yè)應(yīng)用程序的過(guò)程。

本章介紹了關(guān)于Hadoop發(fā)行版本的基礎(chǔ)知識(shí),以及為什么許多企業(yè)傾向于選擇特定供應(yīng)商的發(fā)行版。因?yàn)樗麄儾幌M幚鞟pache項(xiàng)目中的兼容問(wèn)題,或者他們需要供應(yīng)商的技術(shù)支持。

最后,本章討論了一種分層的方法和模型,用于開(kāi)發(fā)基于Hadoop的企業(yè)級(jí)應(yīng)用。

第2章開(kāi)始將深入講解Hadoop的細(xì)節(jié),以及如何存儲(chǔ)你的數(shù)據(jù)。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多

    亚洲精品黄色片中文字幕| 四十女人口红哪个色好看| 国产一级一片内射视频在线| 日本人妻丰满熟妇久久| 亚洲在线观看福利视频| 国产一级一片内射视频在线| 国产精品一区二区高潮| 亚洲色图欧美另类人妻| 国产综合一区二区三区av| 高清亚洲精品中文字幕乱码| 老司机亚洲精品一区二区| 欧美日韩有码一二三区| 国产精品免费福利在线| 国产又粗又深又猛又爽又黄| 邻居人妻人公侵犯人妻视频| 暴力性生活在线免费视频| 色婷婷在线视频免费播放| 亚洲综合天堂一二三区| 太香蕉久久国产精品视频| 日本91在线观看视频| 日韩午夜老司机免费视频| 大香蕉再在线大香蕉再在线| 韩日黄片在线免费观看| 亚洲第一区二区三区女厕偷拍| 千仞雪下面好爽好紧好湿全文| 国产又粗又深又猛又爽又黄| 国产农村妇女成人精品| 亚洲高清中文字幕一区二三区| 好吊妞视频只有这里有精品| 中文字幕日韩欧美亚洲午夜| 丁香七月啪啪激情综合| 国产丝袜极品黑色高跟鞋| 国产一区二区精品高清免费| 国产精品一区二区传媒蜜臀| 欧美乱妇日本乱码特黄大片| 中字幕一区二区三区久久蜜桃| 日韩一区二区三区四区乱码视频| 国产精品乱子伦一区二区三区| 午夜精品一区二区av| 日韩欧美三级中文字幕| 欧美极品欧美精品欧美|