內(nèi)容簡介
本書全面地講述了Hadoop相關(guān)領(lǐng)域的重要知識和最新的技術(shù)及應(yīng)用。書中首先介紹了數(shù)據(jù)挖掘的基礎(chǔ)知識、Hadoop的基本框架和相關(guān)信息,然后系統(tǒng)地描述了如何在各類行業(yè)中用好Hadoop來做數(shù)據(jù)挖掘。
本書面向的主要讀者人群是想了解Hadoop與大數(shù)據(jù)的技術(shù)人員,無論他們是在互聯(lián)網(wǎng)企業(yè),還是在傳統(tǒng)企業(yè);無論他們從事的是技術(shù)或者運維工作,專業(yè)做數(shù)據(jù)分析,還是企業(yè)的策略官、市場官和運營官,都能從本書中找到各自所需要的內(nèi)容。
本書可以幫助讀者開闊眼界和找到方法,讓他們知道如何分析實際商業(yè)場景和業(yè)務(wù)問題,構(gòu)建基于Hadoop的大數(shù)據(jù)系統(tǒng),通過使用數(shù)據(jù)運營,對公司業(yè)務(wù)運營帶來直接的效益。當(dāng)然對于學(xué)生、教師和有志于從業(yè)大數(shù)據(jù)運營的人員來說,也是一本實用的教材。
前言,大數(shù)據(jù)的價值在于商業(yè)應(yīng)用
從2006 年雅虎等團隊開始研發(fā) Hadoop 技術(shù)至今已整整10 年。在這10 年中技術(shù)發(fā)展迅速,Hadoop 上的生態(tài)系統(tǒng)逐漸擴大,各個行業(yè)的用戶都在基于這一新的技術(shù)來開發(fā)各種應(yīng)用,還有很多企業(yè)將原先基于傳統(tǒng)IT 系統(tǒng)的應(yīng)用逐步向Hadoop 上遷移。
根據(jù)Interquest Group 作的2016 年報告,排名第一的技術(shù)工種就是Data Scientist(數(shù)據(jù)科學(xué)家)。今天有大數(shù)據(jù)技術(shù)能力的同學(xué)們在找工作的時候是炙手可熱的,而他們需要掌握的一項關(guān)鍵技能就是Hadoop。
我們相信, Hadoop 會成為企業(yè)數(shù)據(jù)中心的核心,而范磊和孫元浩同學(xué)的星環(huán)科技,其核心產(chǎn)品也逐漸定位成企業(yè)核心的Data Hub(數(shù)據(jù)集散地)。Hadoop 經(jīng)過這 10 年的發(fā)展,在2016 年開始進入一個戰(zhàn)略轉(zhuǎn)折點。這意味著新的技術(shù)開始逐漸取代和超越老的技術(shù),并在各個行業(yè)迅速發(fā)展。在未來的若干年之內(nèi),取代過程還會不斷加速。
我們認為,Hadoop 技術(shù)能成功的最根本原因在于它是把傳統(tǒng)的集中式運算有效地轉(zhuǎn)化成分布式計算的一種有效手段。集中計算演變成分布式是一個必然趨勢,當(dāng)然并不是說一定只有Hadoop 才是這個演進的唯一手段,不過它至少是可選的一個不錯的手段。
本書中有很多說法和內(nèi)容是由星環(huán)科技的CTO 孫元浩同學(xué)獨家贊助的。而在解釋一些實際場景中相對棘手的問題時,為了簡單起見,直接借用了星環(huán)科技之前的一些處理問題的方法和思路。
感謝我的好朋友金官丁同學(xué)(網(wǎng)上化名mysqlops)提供的幫助。感謝騰訊的邱躍鵬和趙建春同學(xué),感謝迅雷的劉智聰同學(xué),感謝金山的朱樺同學(xué)和楊亮同學(xué),感謝百度的朱觀胤同學(xué)。我們還要特別感謝蔡可可、胡一刀、張澤澄、唐繼瑞、李晶、譚彬同學(xué)為本書做的大量資料收集和整理工作以及唐繼瑞為本書設(shè)計的章徽。
講述大數(shù)據(jù)和Hadoop 相關(guān)概念的書已經(jīng)有很多了,本書更多想做的不是新聞和概念的堆砌、示例代碼的詳解,或者是某一項技術(shù)的再一次陳述,而是從實際場景出發(fā),為讀者們講述應(yīng)用中的Hadoop 應(yīng)該是怎樣的。
本書主要特點:
(1) 全面實用地論述了從實際應(yīng)用中提取出的數(shù)據(jù)挖掘和Hadoop 相關(guān)概念和技術(shù)。
(2) 用實際案例為用戶介紹Hadoop,而不只是停留在理論層面。
(3) 詳解Hadoop 相關(guān)領(lǐng)域最新的技術(shù)和商業(yè)應(yīng)用大數(shù)據(jù)應(yīng)用的動態(tài)變化。
按照劉智聰同學(xué)的說法,現(xiàn)在的Hadoop 系統(tǒng)已經(jīng)是基建了,幾乎所有非實時的系統(tǒng)都
可以在Hadoop 上實現(xiàn)。 而當(dāng)Hadoop 生態(tài)系統(tǒng)上出現(xiàn)Spark 和Storm 之后,就算是實時系統(tǒng),在很多時候也是可以輕松實現(xiàn)的。
作為在IT 和互聯(lián)網(wǎng)行業(yè)沉浮了20 年的老兵,我們覺得寫這樣一本書來講實戰(zhàn)應(yīng)用是
非常有必要的,因為我們一直在思考:
(1) 大數(shù)據(jù)服務(wù)應(yīng)該是怎樣的?
(2) 大數(shù)據(jù)究竟能夠為我們做什么?
(3) 大數(shù)據(jù)在做實際應(yīng)用的時候會碰到什么樣的問題?
(4) 大數(shù)據(jù)應(yīng)用的這些問題究竟應(yīng)該是怎樣解決的?
(5) 怎樣以最好的方式把最新的大數(shù)據(jù)技術(shù)應(yīng)用到商業(yè)系統(tǒng)上去?
(6) 大數(shù)據(jù)應(yīng)用做到極致的時候應(yīng)該是怎樣的?
Gartner 認為,到2020 年,信息將被用于重新創(chuàng)造、數(shù)字化或消除80%的業(yè)務(wù)流程和產(chǎn)品。而我們認為,技術(shù)終究是為商業(yè)來服務(wù)的,一項技術(shù)的生命力究竟如何,取決于它在真實社會和經(jīng)濟場景中所發(fā)揮出的價值。
隨著近年來大數(shù)據(jù)技術(shù)的高速演變,我們預(yù)計未來3 年數(shù)據(jù)庫以及數(shù)據(jù)倉庫技術(shù)會發(fā)生巨大的變化。正如Gartner 所預(yù)計的,我們的大部分企業(yè)客戶會把數(shù)據(jù)倉庫從以前的傳統(tǒng)數(shù)據(jù)倉庫轉(zhuǎn)移到邏輯數(shù)據(jù)倉庫中,Hadoop 在其中會扮演非常重要的角色,很多企業(yè)應(yīng)用也已經(jīng)開始把Hadoop 作為數(shù)據(jù)倉庫的重要組成部分。
數(shù)據(jù)平臺市場每年創(chuàng)造的價值巨大,但大部分都被Oracle、IBM、Teradata 等國外巨頭瓜分,星環(huán)科技算是唯一的可以與這些國外巨頭一爭高下的國內(nèi)大數(shù)據(jù)廠家,我們希望能夠有更多的國內(nèi)同行投入到基于Hadoop 的數(shù)據(jù)倉庫平臺的研發(fā)之中,打造出大數(shù)據(jù)時代的杰出數(shù)據(jù)庫和數(shù)據(jù)倉庫產(chǎn)品,擺脫國外巨頭們對這個行業(yè)的壟斷,幫助中國科技在企業(yè)服務(wù)領(lǐng)域?qū)崿F(xiàn)質(zhì)的突破。
本書不是為了講述教科書式的概念,而是為了告訴大家Hadoop 究竟能夠為我們的企業(yè)做些什么。我們會從一些真實靠譜的案例出發(fā),講述在各種場景下如何應(yīng)用Hadoop。
我們盡量把這本書寫得淺顯易懂,所以并不需要讀者有太多大數(shù)據(jù)的知識或者擁有編程語言的經(jīng)驗。當(dāng)然,如果讀者有過Java 或者類似編程語言的經(jīng)驗,對于深入理解本書的一些內(nèi)容是有幫助的。
因為我們的能力所限,而且本書所覆蓋的案例來自各個不同的領(lǐng)域,在陳述或者描述中可能出現(xiàn)一些錯誤或者遺漏,歡迎讀者指出,或者也可以把你想讀到的某些場景下的Hadoop 應(yīng)用反饋給我們。
本書中所有的案例均是實際案例,如果讀者覺得有虛構(gòu)成分,純屬偶然。
編 者
目錄
第1 章 大數(shù)據(jù)概念的老調(diào)重彈 ........ 11.1 互聯(lián)網(wǎng)和物聯(lián)網(wǎng)上的數(shù)據(jù) 21.1.1 互聯(lián)網(wǎng)上越來越多的數(shù)據(jù)被存儲 . 21.1.2 物聯(lián)網(wǎng)帶來更多的數(shù)據(jù) ................. 41.2 數(shù)據(jù)能為我們做的事 ........ 51.2.1 用戶畫像和任何企業(yè)都需要關(guān)注的數(shù)據(jù) ........................ 61.2.2 大數(shù)據(jù)的3V、4V 和N 個V ........ 71.2.3 從數(shù)據(jù)分析到數(shù)據(jù)挖掘 ................. 81.2.4 大數(shù)據(jù)處理的三個維度 ................. 91.3 數(shù)據(jù)挖掘中的一些基本概念 ................... 111.3.1 分類算法 .... 111.3.2 聚類算法 .... 121.3.3 關(guān)聯(lián)算法 .... 131.3.4 序列算法 .... 141.3.5 估測和預(yù)測 141.3.6 A/B Test ..... 151.4 數(shù)據(jù)倉庫 ................ 161.4.1 數(shù)據(jù)倉庫是解決大數(shù)據(jù)存儲的基礎(chǔ)設(shè)施 ...................... 171.4.2 4 種不同類型的數(shù)據(jù)倉庫 ............ 181.4.3 國內(nèi)外數(shù)據(jù)倉庫的不同使用方式 ......... 191.5 不包含在本書中的內(nèi)容 .. 211.6 這本書都講些啥 .... 22第2 章 Hadoop 的前世今生 ........... 252.1 Google 的計算框架 ......... 262.1.1 Google 公司的三篇論文 .............. 262.1.2 GFS 文件系統(tǒng) ..... 272.1.3 MapReduce 的模型和框架 .......... 282.1.4 BigTable 數(shù)據(jù)庫 .. 292.2 Hadoop 的誕生 ...... 302.2.1 從GFS 到HDFS . 302.2.2 Hadoop 的基礎(chǔ)計算框架MapReduce ... 312.2.3 從BigTable 到HBase .................. 332.3 Hadoop 的今天 ...... 332.4 Hadoop 大事記 ...... 35第3 章 等同于大數(shù)據(jù)的Hadoop ... 373.1 Hadoop 理念 .......... 383.2 Hadoop 核心基礎(chǔ)架構(gòu) .... 393.2.1 Namenode 和Datanode ................ 393.2.2 Hadoop 底層的文件系統(tǒng)HDFS .. 403.2.3 Hadoop 上的數(shù)據(jù)庫HBase ......... 423.3 Hadoop 上的各種其他組件 ..................... 443.3.1 資源分配系統(tǒng)YARN .................. 443.3.2 靈活的編程語言pig..................... 463.3.3 數(shù)據(jù)挖掘工具Mahout ................. 483.3.4 專注于數(shù)據(jù)挖掘的R 語言 .......... 483.3.5 數(shù)據(jù)倉庫工具Hive ...................... 493.3.6 數(shù)據(jù)采集系統(tǒng)Flume ................... 513.4 Spark 和Hadoop .... 513.4.1 閃電俠出現(xiàn)了 ...... 513.4.2 大數(shù)據(jù)領(lǐng)域的Taylor Swift ......... 523.4.3 Spark 的架構(gòu) ....... 533.4.4 Spark 和流處理 ... 54第4 章 Hadoop 的價值 .................. 574.1 大數(shù)據(jù)時代需要新的架構(gòu) ....................... 584.1.1 企業(yè)IT 面臨的挑戰(zhàn) ..................... 584.1.2 數(shù)據(jù)分析要考慮的問題 ............... 594.1.3 新的IT 架構(gòu)的需求 ..................... 604.2 Hadoop 能解決的問題 .... 614.2.1 Hadoop 適合做的事情 ................. 614.2.2 Hadoop 對系統(tǒng)數(shù)據(jù)安全性的保障 ....... 624.2.3 數(shù)據(jù)流與數(shù)據(jù)流處理 ................... 624.3 去IOE .................... 654.4 7 種最常見的Hadoop 和Spark 項目 ...... 71第5 章 Hadoop 系統(tǒng)速成 .............. 755.1 Hadoop 系統(tǒng)搭建速成 .... 765.1.1 Hadoop 系統(tǒng)的三種運行模式 ..... 765.1.2 單點搭建Hadoop 系統(tǒng) ................ 765.1.3 全分布式(多節(jié)點)搭建Hadoop 系統(tǒng) ... 805.1.4 在Hadoop 上編程 ........................ 835.1.5 Hadoop 系統(tǒng)的典型配置 ............. 835.2 在云上運行Hadoop ........ 855.2.1 在金山云上運行Hadoop ............. 865.2.2 微軟的HDInsight 895.3 Hadoop 信息大全 .. 90第6 章 數(shù)據(jù)倉庫和Hadoop........... 936.1 大數(shù)據(jù)時代的數(shù)據(jù)系統(tǒng)設(shè)計 ................... 946.1.1 分布式系統(tǒng)上的CAP 原理 ......... 946.1.2 ACID 和BASE 概念的區(qū)別 ........ 956.1.3 NoSQL ....... 966.1.4 各種數(shù)據(jù)源的整合 ..................... 1006.2 傳統(tǒng)數(shù)據(jù)倉庫的瓶頸 .... 1016.2.1 傳統(tǒng)數(shù)據(jù)倉庫的瓶頸之一:數(shù)據(jù)量的問題 ................ 1016.2.2 傳統(tǒng)數(shù)據(jù)倉庫的瓶頸之二:數(shù)據(jù)類型的問題 ............ 1026.2.3 傳統(tǒng)數(shù)據(jù)倉庫的瓶頸之三:數(shù)據(jù)處理的延時問題 .... 1026.2.4 傳統(tǒng)數(shù)據(jù)倉庫的瓶頸之四:數(shù)據(jù)模型的變化問題 .... 1036.3 Hadoop 是解決數(shù)據(jù)倉庫瓶頸的方法 .. 1046.3.1 解決數(shù)據(jù)量的問題 ..................... 1046.3.2 解決數(shù)據(jù)類型的問題 ................. 1056.3.3 數(shù)據(jù)處理的速度問題 ................. 1066.3.4 數(shù)據(jù)模型的變化問題 ................. 1076.4 基于Hadoop 和Spark 的數(shù)據(jù)倉庫解決方案 . 1086.4.1 基于Hadoop/Spark 結(jié)構(gòu)的數(shù)據(jù)倉庫系統(tǒng)架構(gòu)........... 1086.4.2 分布式計算引擎 1096.4.3 標準化的編程模型 ..................... 1106.4.4 數(shù)據(jù)操作方式的多樣性 ............. 1106.4.5 OLAP 交互式統(tǒng)計分析能力 ..... 1106.4.6 多類型數(shù)據(jù)的處理能力 ............. 1116.4.7 實時計算與企業(yè)數(shù)據(jù)總線 ......... 1116.4.8 數(shù)據(jù)探索與挖掘能力 ................. 1116.4.9 安全性和權(quán)限管理 ..................... 1126.4.10 混合負載管理 .. 112第7 章 在不同應(yīng)用環(huán)境下的Hadoop .... 1157.1 在存儲密集型環(huán)境中的Hadoop ........... 1167.2 在網(wǎng)絡(luò)密集型環(huán)境中的Hadoop ........... 1187.3 在運算密集型環(huán)境中的Hadoop ........... 1217.4 Hadoop 平臺的對比和選擇 ................... 1277.4.1 為什么會選擇商用的Hadoop 系統(tǒng) .... 1277.4.2 商用Hadoop 系統(tǒng)之間的選擇 .. 130第8 章 Hadoop 在互聯(lián)網(wǎng)公司的應(yīng)用 .... 1338.1 Hadoop 在騰訊 .... 1348.2 Hadoop 在Facebook 的應(yīng)用 ................. 1388.3 金山的Hadoop .... 1408.4 迅雷公司對Hadoop 的應(yīng)用 .................. 144第9 章 Hadoop 和行業(yè)應(yīng)用之一 . 1479.1 Hadoop 和運營商 1489.2 Hadoop 和公用事業(yè) ...... 1639.3 Hadoop 和“智慧工商” ....................... 1759.4 Hadoop 和政務(wù)云 183第10 章 Hadoop 與“衣食住行”中的“食”和“行” .... 19110.1 Hadoop 和“食” ........ 19210.2 Hadoop 和“行” ........ 201第11 章 Hadoop 和行業(yè)應(yīng)用之三 ......... 20911.1 Hadoop 和金融 .. 21011.1.1 金融的大數(shù)據(jù)屬性 ................... 21011.1.2 金融企業(yè)的風(fēng)險控制 ............... 21111.2 Hadoop 和醫(yī)療 .. 22111.3 Hadoop 和物流 .. 22611.4 Hadoop 和媒體 .. 229第12 章 特殊場景下的Hadoop 系統(tǒng) ..... 23712.1 Hadoop 和實時系統(tǒng) .... 23812.2 Hadoop 平臺的一些特殊場景實現(xiàn) ..... 243第13 章 Hadoop 系統(tǒng)的挑戰(zhàn)和應(yīng)對 ...... 24713.1 Hadoop 系統(tǒng)使用須知 24813.2 Hadoop 平臺風(fēng)險點預(yù)估 ..................... 25013.2.1 Namenode 的單點故障和系統(tǒng)的可用性 ................... 25013.2.2 集群硬件故障導(dǎo)致平臺可靠性與可用性大幅降低 25113.2.3 Hadoop 集群大數(shù)據(jù)安全和隱私問題 ........................ 25213.3 Hadoop 平臺硬件故障的應(yīng)對機制 ..... 25213.3.1 監(jiān)控軟硬件故障的應(yīng)對機制 ... 25313.3.2 斷電處理 25513.4 Hadoop 平臺如何真正做到高可用性 . 25513.4.1 Hadoop 系統(tǒng)的高可用性冗余性保障 ........................ 25613.4.2 Facebook 的Namenode HA 的方案 .. 25613.4.3 TDH 的Namenode 高可用性冗余解決方案 ............. 25713.5 Hadoop 平臺安全性和隱私性的應(yīng)對機制 ... 25913.5.1 關(guān)于安全和隱私問題的7 個事項 ..... 25913.5.2 星環(huán)的4A 級統(tǒng)一安全管理解決方案 ....................... 25913.5.3 Hadoop 系統(tǒng)安全Checklist ..... 262第14 章 Hadoop 的未來 .............. 26314.1 Hadoop 未來的發(fā)展趨勢 ..................... 26414.1.1 對數(shù)據(jù)系統(tǒng)的不斷升級 ........... 26414.1.2 機器學(xué)習(xí) 26414.2 Hadoop 和區(qū)塊鏈 ........ 265附錄A 專業(yè)詞匯表 ....................... 267附錄B 引用文獻 . 271附錄C 參考網(wǎng)站一覽 ................... 273附錄D HDFS 命令行列表 ............ 275附錄E 本書引用案例索引 ............ 278