本書(shū)主題包括: 用HDFS存儲(chǔ)大數(shù)據(jù)集, 用MapReduce做分布式計(jì)算, 使用Hadoop的數(shù)據(jù)和I/O構(gòu)件來(lái)做壓縮、數(shù)據(jù)集成、序列化和持久化, 發(fā)現(xiàn)常見(jiàn)的陷阱和實(shí)用性MapReduce程序設(shè)計(jì)的高級(jí)特性, 設(shè)計(jì)、構(gòu)建和管理專用Hadoop數(shù)據(jù)中心或者在云端運(yùn)行Hadoop, 使用Sqoop把關(guān)系型數(shù)據(jù)庫(kù)中的數(shù)據(jù)加載到HDFS, 用Hadoop的數(shù)據(jù)倉(cāng)儲(chǔ)系統(tǒng)Hive來(lái)分析大數(shù)據(jù), 將HBase充分用于結(jié)構(gòu)化和半結(jié)構(gòu)化數(shù)據(jù), 將ZooKeeper用于構(gòu)建分布式系統(tǒng)。
本書(shū)結(jié)合理論和實(shí)踐,由淺入深,全方位介紹了Hadoop 這一高性能的海量數(shù)據(jù)處理和分析平臺(tái)。全書(shū)5部分24 章,第Ⅰ部分介紹Hadoop 基礎(chǔ)知識(shí),第Ⅱ部分介紹MapReduce,第Ⅲ部分介紹Hadoop 的運(yùn)維,第Ⅳ部分介紹Hadoop 相關(guān)開(kāi)源項(xiàng)目,第Ⅴ部分提供了三個(gè)案例,分別來(lái)自醫(yī)療衛(wèi)生信息技術(shù)服務(wù)商塞納(Cerner)、微軟的人工智能項(xiàng)目ADAM(一種大規(guī)模分布式深度學(xué)習(xí)框架)和開(kāi)源項(xiàng)目Cascading(一個(gè)新的針對(duì)MapReduce 的數(shù)據(jù)處理API)。本書(shū)是一本專業(yè)、全面的Hadoop 參考書(shū)和工具書(shū),闡述了Hadoop 生態(tài)圈的新發(fā)展和應(yīng)用,程序員可以從中探索海量數(shù)據(jù)集的存儲(chǔ)和分析,管理員可以從中了解Hadoop 集群的安裝和運(yùn)維。
TomWhite是杰出的Hadoop專家之一。自2007年2月以來(lái),TomWhite一直是ApacheHadoop的提交者(committer),也是Apache軟件基金會(huì)的成員。Tom是Cloudera的軟件工程師,他是Cloudera的首批員工,對(duì)Apache和Cloudera做出了舉足輕重的貢獻(xiàn)。在此之前,他是一名獨(dú)立的Hadoop顧問(wèn),幫助公司搭建、使用和擴(kuò)展Hadoop。他是很多行業(yè)大會(huì)的專題演講人,比如ApacheCon、OSCON和Strata。Tom在英國(guó)劍橋大學(xué)獲得數(shù)學(xué)學(xué)士學(xué)位,在利茲大學(xué)獲得科學(xué)哲學(xué)碩士學(xué)位。他目前與家人居住在威爾士。
譯者簡(jiǎn)介
王海博士,解放軍理工大學(xué)通信工程學(xué)院教授,博導(dǎo),教研中心主任,長(zhǎng)期從事無(wú)線自組網(wǎng)網(wǎng)絡(luò)的設(shè)計(jì)與研發(fā)工作,主持國(guó)家自然科學(xué)基金、國(guó)家863計(jì)劃課題等多項(xiàng)課題,近5年獲軍隊(duì)科技進(jìn)步二等獎(jiǎng)1項(xiàng),三等獎(jiǎng)6項(xiàng),作為di一發(fā)明人申請(qǐng)國(guó)家發(fā)明專利十余項(xiàng),發(fā)表學(xué)術(shù)論文50余篇。
華東博士,現(xiàn)任南京醫(yī)科大學(xué)計(jì)算機(jī)教研室教師,一直致力于計(jì)算機(jī)輔助教學(xué)的相關(guān)技術(shù)研究,陸續(xù)開(kāi)發(fā)了人體解剖學(xué)網(wǎng)絡(luò)自主學(xué)習(xí)考試平臺(tái)、診斷學(xué)自主學(xué)習(xí)平臺(tái)和面向執(zhí)業(yè)醫(yī)師考試的預(yù)約化考試平臺(tái)等系統(tǒng),并在各個(gè)學(xué)科得到廣泛的使用,獲得全國(guó)高等學(xué)校計(jì)算機(jī)課件評(píng)比一等獎(jiǎng)和三等獎(jiǎng)各一項(xiàng)。主編、副主編教材兩部,獲發(fā)明專利一項(xiàng)、軟件著作權(quán)多項(xiàng)。
劉喻博士,長(zhǎng)期從事軟件開(kāi)發(fā)、軟件測(cè)試和軟件工程化管理工作,目前任教于清華大學(xué)軟件所。
呂粵海,長(zhǎng)期從事軍事通信網(wǎng)絡(luò)技術(shù)研究與軟件開(kāi)發(fā)工作,先后通過(guò)華為光網(wǎng)絡(luò)高級(jí)工程師認(rèn)證、思科網(wǎng)絡(luò)工程師認(rèn)證。
第Ⅰ部分Hadoop基礎(chǔ)知識(shí)
第1章初識(shí)Hadoop3
1.1數(shù)據(jù)!數(shù)據(jù)!3
1.2數(shù)據(jù)的存儲(chǔ)與分析5
1.3查詢所有數(shù)據(jù)6
1.4不僅僅是批處理7
1.5相較于其他系統(tǒng)的優(yōu)勢(shì)8
1.6ApacheHadoop發(fā)展簡(jiǎn)史12
1.7本書(shū)包含的內(nèi)容16
第2章關(guān)于MapReduce19
2.1氣象數(shù)據(jù)集19
2.2使用Unix工具來(lái)分析數(shù)據(jù)21
2.3使用Hadoop來(lái)分析數(shù)據(jù)22
2.4橫向擴(kuò)展31
2.5HadoopStreaming37
第3章Hadoop分布式文件系統(tǒng)42
3.1HDFS的設(shè)計(jì)42
3.2HDFS的概念44
3.3命令行接口50
3.4Hadoop文件系統(tǒng)52
3.5Java接口56
3.6數(shù)據(jù)流68
3.7通過(guò)distcp并行復(fù)制76
第4章關(guān)于YARN78
4.1剖析YARN應(yīng)用運(yùn)行機(jī)制79
4.2YARN與MapReduce1相比82
4.3YARN中的調(diào)度85
4.4延伸閱讀95
第5章Hadoop的I/O操作96
5.1數(shù)據(jù)完整性96
5.2壓縮99
5.3序列化109
5.4基于文件的數(shù)據(jù)結(jié)構(gòu)127
第Ⅱ部分關(guān)于MapReduce
第6章MapReduce應(yīng)用開(kāi)發(fā)141
6.1用于配置的API142
6.2配置開(kāi)發(fā)環(huán)境144
6.3用MRUnit來(lái)寫(xiě)單元測(cè)試152
6.4本地運(yùn)行測(cè)試數(shù)據(jù)156
6.5在集群上運(yùn)行160
6.6作業(yè)調(diào)優(yōu)174
6.7MapReduce的工作流176
第7章MapReduce的工作機(jī)制184
7.1剖析MapReduce作業(yè)運(yùn)行
機(jī)制184
7.2失敗191
7.3shuffle和排序195
7.4任務(wù)的執(zhí)行201
第8章MapReduce的
類型與格式207
8.1MapReduce的類型207
8.2輸入格式218
8.3輸出格式236
第9章MapReduce的特性243
9.1計(jì)數(shù)器243
9.2排序252
9.3連接264
9.4邊數(shù)據(jù)分布270
9.5MapReduce庫(kù)類276
第Ⅲ部分Hadoop的操作
第10章構(gòu)建Hadoop集群279
10.1集群規(guī)范280
10.2集群的構(gòu)建和安裝284
10.3Hadoop配置288
10.4安全性305
10.5利用基準(zhǔn)評(píng)測(cè)程序測(cè)試
Hadoop集群311
第11章管理Hadoop314
11.1HDFS314
11.2監(jiān)控327
11.3維護(hù)329
第Ⅳ部分Hadoop相關(guān)開(kāi)源項(xiàng)目
第12章關(guān)于Avro341
12.1Avro數(shù)據(jù)類型和模式342
12.2內(nèi)存中的序列化和
反序列化特定API347
12.3Avro數(shù)據(jù)文件349
12.4互操作性351
12.5模式解析352
12.6排列順序354
12.7關(guān)于AvroMapReduce356
12.8使用AvroMapReduce
進(jìn)行排序359
12.9其他語(yǔ)言的Avro362
第13章關(guān)于Parquet363
13.1數(shù)據(jù)模型364
13.2Parquet文件格式367
13.3Parquet的配置368
13.4Parquet文件的讀/寫(xiě)369
13.5ParquetMapReduce374
第14章關(guān)于Flume377
14.1安裝Flume378
14.2示例378
14.3事務(wù)和可靠性380
14.4HDFSSink382
14.5扇出385
14.6通過(guò)代理層分發(fā)387
14.7Sink組391
14.8Flume與應(yīng)用程序的集成395
14.9組件編目395
14.10延伸閱讀397
第15章關(guān)于Sqoop398
15.1獲取Sqoop398
15.2Sqoop連接器400
15.3一個(gè)導(dǎo)入的例子401
15.4生成代碼404
15.5深入了解數(shù)據(jù)庫(kù)導(dǎo)入405
15.6使用導(dǎo)入的數(shù)據(jù)409
15.7導(dǎo)入大對(duì)象412
15.8執(zhí)行導(dǎo)出414
15.9深入了解導(dǎo)出功能416
15.10延伸閱讀419
第16章關(guān)于Pig420
16.1安裝與運(yùn)行Pig421
16.2示例425
16.3與數(shù)據(jù)庫(kù)進(jìn)行比較428
16.4PigLatin429
16.5用戶自定義函數(shù)446
16.6數(shù)據(jù)處理操作455
16.7Pig實(shí)戰(zhàn)465
16.8延伸閱讀468
第17章關(guān)于Hive469
17.1安裝Hive470
17.2示例472
17.3運(yùn)行Hive473
17.4Hive與傳統(tǒng)數(shù)據(jù)庫(kù)相比480
17.5HiveQL483
17.6表488
17.7查詢數(shù)據(jù)501
17.8用戶定義函數(shù)508
17.9延伸閱讀516
第18章關(guān)于Crunch517
18.1示例518
18.2Crunch核心API521
18.3管線執(zhí)行537
18.4Crunch庫(kù)545
18.5延伸閱讀547
第19章關(guān)于Spark548
19.1安裝Spark549
19.2示例549
19.3彈性分布式數(shù)據(jù)集555
19.4共享變量564
19.5剖析Spark作業(yè)運(yùn)行機(jī)制565
19.6執(zhí)行器和集群管理器570
19.7延伸閱讀574
第20章關(guān)于HBase575
20.1HBase基礎(chǔ)575
20.2概念576
20.3安裝581
20.4客戶端584
20.5創(chuàng)建在線查詢應(yīng)用589
20.6HBase和RDBMS的比較598
20.7Praxis601
20.8延伸閱讀602
第21章關(guān)于ZooKeeper604
21.1安裝和運(yùn)行ZooKeeper605
21.2示例607
21.3ZooKeeper服務(wù)615
21.4使用ZooKeeper來(lái)構(gòu)建
應(yīng)用629
21.5生產(chǎn)環(huán)境中的ZooKeeper640
21.6延伸閱讀643
第Ⅴ部分案例學(xué)習(xí)
第22章醫(yī)療公司塞納(Cerner)
的可聚合數(shù)據(jù)647
22.1從多CPU到語(yǔ)義集成647
22.2進(jìn)入ApacheCrunch648
22.3建立全貌649
22.4集成健康醫(yī)療數(shù)據(jù)651
22.5框架之上的可組合性654
22.6下一步655
第23章生物數(shù)據(jù)科學(xué):
用軟件拯救生命657
23.1DNA的結(jié)構(gòu)659
23.2遺傳密碼:將DNA字符
轉(zhuǎn)譯為蛋白質(zhì)660
22.3將DNA想象成源代碼661
23.4人類基因組計(jì)劃和參考
基因組663
22.5DNA測(cè)序和比對(duì)664
23.6ADAM,一個(gè)可擴(kuò)展的
基因組分析平臺(tái)666
23.7使用Avro接口描述語(yǔ)言進(jìn)行
自然語(yǔ)言編程666
23.8使用Parquet進(jìn)行面向列的
存取668
23.9一個(gè)簡(jiǎn)單例子:用Spark和
ADAM做k-mer計(jì)數(shù)669
23.10從個(gè)性化廣告到個(gè)性化
醫(yī)療672
23.11聯(lián)系我們673
第24章開(kāi)源項(xiàng)目Cascading674
24.1字段、元組和管道675
24.2操作678
24.3Taps,Schemes和Flows680
24.4Cascading實(shí)踐應(yīng)用681
24.5靈活性684
24.6ShareThis中的Hadoop和
Cascading685
24.7總結(jié)689
附錄A安裝ApacheHadoop691
附錄B關(guān)于CDH697
附錄C準(zhǔn)備NCDC氣象數(shù)據(jù)699
附錄D新版和舊版Java
MapReduceAPI702