大數據開發者權威教程 大數據技術與編程基礎

大數據開發者權威教程 大數據技術與編程基礎

作者: WROX國際IT認證項目組
出版社: 人民郵電
出版在: 2018-12-01
ISBN-13: 9787115493507
ISBN-10: 7115493502
裝訂格式: 平裝
總頁數: 499 頁





內容描述


“大數據”近年成為IT領域的熱點話題,人們每天都會通過互聯網、移動設備等產生大量數據。如何管理大數據、掌握大數據的核心技術、理解大數據相關的生態系統等,是作為大數據開發者必須學習和熟練掌握的。本系列書以“大數據開發者”應掌握的技術為主線,共分兩捲,以7個模塊分別介紹如何管理大數據生態系統、如何存儲和處理數據、如何利用Hadoop工具、如何利用NoSQL與Hadoop協同工作,以及如何利用Hadoop商業發行版和管理工具。本系列書涵蓋了大數據開發工作的核心內容,全面且詳盡地涵蓋了大數據開發的各個領域。
本書為第1捲,共4個模塊,分別介紹大數據基礎知識、大數據生態系統的管理、HDFS和MapReduce以及Hadoop工具(如Hive、Pig和Oozie等)。本書適用於想成為大數據開發者以及所有對大數據開發感興趣的技術人員和決策者閱讀。


目錄大綱


模塊1大數據入門
第1講大數據簡介3 
1.1什麼是大數據4 
1.1.1大數據的優勢5 
1.1.2挖掘各種大數據源6 
1.2數據管理的歷史——大數據的演化7 
1.3大數據的結構化9 
1.4大數據要素13 
1.4.1數據量13 
1.4.2速度14 
1.4.3多樣性14 
1.5大數據在商務環境中的應用14 
1.6大數據行業中的職業機會16 
1.6.1職業機會17 
1.6.2所需技能17 
1.6.3大數據的未來19 
練習20 
備忘單22 
第2講大數據在商業上的應用23 
2.1社交網絡數據的重要性24 
2.2金融欺詐和大數據30 
2.3保險業的欺詐檢測32 
2.4在零售業中應用大數據36 
練習40 
備忘單42 
第3講處理大數據的技術43 
3.1大數據的分佈式和並行計算44 
3.1.1並行計算技術46 
3.1.2虛擬化及其對大數據的重要性47 
3.2 Hadoop簡介47
3.3雲計算和大數據50 
3.3.1大數據計算的特性50 
3.3.2雲部署模型51 
3.3.3雲交付模型52 
3.3.4大數據云52 
3.3.5大數據云市場中的供應商53 
3.3 .6使用雲服務所存在的問題54 
3.4大數據內存計算技術54 
練習56 
備忘單58 
第4講了解Hadoop生態系統59 
4.1 Hadoop生態系統60 
4.2用HDFS存儲數據61 
4.2.1 HDFS架構62 
4.2. 2 HDFS的一些特殊功能65 
4.3利用Hadoop MapReduce處理數據65 
4.3.1 MapReduce是如何工作的66 
4.3.2 MapReduce的優點和缺點66 
4.3.3利用Hadoop YARN管理資源和應用67 
4.4利用HBase存儲數據68 
4.5使用Hive查詢大型數據庫69 
4.6與Hadoop生態系統的交互70 
4.6.1 Pig和Pig Latin 70 
4.6.2 Sqoop 71 
4.6.3 Zookeeper 72 
4.6.4 Flume 72 
4.6.5 Oozie 73 
練習74
備忘單76 
第5講MapReduce基礎77 
5.1 MapReduce的起源78 
5.2 MapReduce是如何工作的79 
5.3 MapReduce作業的優化技術85 
5.3.1硬件/網絡拓撲85 
5.3.2同步86 
5.3.3文件系統86 
5.4 MapReduce的應用86 
5.5 HBase在大數據處理中的角色87 
5.6利用Hive挖掘大數據89 
練習91 
備忘單94 
模塊2管理大數據生態系統
第1講大數據技術基礎97 
1.1探索大數據棧98 
1.2冗餘物理基礎設施層99 
1.2.1物理冗餘網絡100 
1.2.2管理硬件:存儲和服務器101 
1.2.3基礎設施的操作101 
1.3安全基礎設施層101 
1.4接口層以及與應用程序和互聯網的雙向反饋102 
1.5可操作數據庫層103 
1.6組織數據服務層及工具104 
1.7分析數據倉庫層105 
1.8分析層105 
1.9大數據應用層106 
1.10虛擬化和大數據107 
1.11虛擬化方法108
1.11.1服務器虛擬化109 
1.11.2應用程序虛擬化109 
1.11.3網絡虛擬化110 
1.11.4處理器和內存虛擬化110 
1.11.5數據和存儲虛擬化111 
1.11.6用管理程序進行虛擬化管理111 
1.11.7抽象與虛擬化112 
1.11.8實施虛擬化來處理大數據112 
練習114 
備忘單116 
第2講大數據管理系統——數據庫和數據倉庫117 
2.1 RDBMS和大數據環境118 
2.2非關係型數據庫119 
2.2.1鍵值數據庫120 
2.2.2文檔數據庫122 
2.2.3列式數據庫124 
2.2.4圖數據庫125 
2.2.5空間數據庫127 
2.3混合持久化129 
2.4將大數據與傳統數據倉庫相集成130 
2.4.1優化數據倉庫130 
2.4.2大數據結構與數據倉庫的區別130 
2.5大數據分析和數據倉庫132 
2.6改變大數據時代的部署模式134 
2.6.1設備模型134 
2.6.2雲模型135 
練習136 
備忘單138 
第3講分析與大數據139
3.1使用大數據以獲取結果140 
3.1.1基本分析142 
3.1.2高級分析143 
3.1.3可操作性分析144 
3.1.4貨幣化分析145 
3.2是什麼構成了大數據145 
3.2.1構成大數據的數據145 
3.2.2大數據分析算法146 
3.2.3大數據基礎設施支持146 
3.3探索非結構化數據148 
3.4理解文本分析149 
3.4.1分析和提取技術150 
3.4.2理解提取的信息151 
3.4.3分類法152 
3.4.4將結果與結構化數據放在一起153 
3.5建立新的模式和方法以支持大數據156 
3.5.1大數據分析的特徵156 
3.5.2大數據分析的應用157 
3.5.3大數據分析框架的特性161 
練習163 
備忘單165 
第4講整合數據、實時數據和實施大數據168 
4.1大數據分析的各個階段169 
4.1.1探索階段170 
4.1.2編纂階段171 
4.1.3整合和合併階段171 
4.2大數據集成的基礎173 
4.2.1傳統ETL 174 
4.2.2 ELT——提取、加載和轉換175
4.2.3優先處理大數據質量175 
4.2.4數據性能分析工具176 
4.2.5將Hadoop用作ETL 177 
4.3流數據和復雜的事件處理177 
4.3.1流數據178 
4.3.2複雜事件處理181 
4.3. 3區分CEP和流182 
4.3.4流數據和CEP對業務的影響183 
4.4使大數據成為運營流程的一部分183 
4.5了解大數據的工作流186 
4.6確保大數據有效性、準確性和時效性187 
4.6 .1數據的有效性和準確性187 
4.6.2數據的時效性187 
練習189 
備忘單191 
第5講大數據解決方案和動態數據192 
5.1大數據作為企業戰略工具193 
5.1.1階段1:利用數據做計劃193 
5.1.2階段2:執行分析194 
5.1.3階段3:檢查結果194 
5.1.4階段4:根據計劃行事194 
5.2實時分析:把新的維度添加到週期194 
5.2.1階段5:實時監控195 
5.2.2階段6:調整影響195 
5.2.3階段7:實驗195 
5.3對動態數據的需求196 
5.4案例1:針對環境影響使用流數據198
5.4.1這是怎麼做到的198 
5.4.2利用傳感器提供實時信息198 
5.4.3利用實時數據進行研究199 
5.5案例2:為了公共政策使用大數據199 
5.5.1問題200 
5.5.2使用流數據200 
5.6案例3:在醫療保健行業使用流數據200 
5.6.1問題201 
5.6.2使用流數據201 
5.7案例4:在能源行業使用流數據201 
5.7.1利用流數據提高能源效率201 
5.7.2流數據的使用推進了可替代能源的生產202 
5.8案例5:用實時文本分析提高客戶體驗202 
5.9案例6:在金融業使用實時數據203 
5.9.1保險204 
5.9.2銀行204 
5.9.3信用卡公司204 
5.10案例7:使用實時數據防止保險欺詐205 
練習207 
備忘單210 
模塊3存儲和處理數據:HDFS和MapReduce 
第1講在Hadoop中存儲數據213 
1.1 HDFS 214 
1.1.1 HDFS的架構214 
1.1.2使用HDFS文件218 
1.1.3 Hadoop特有的文件類型220 
1.1.4 HDFS聯盟和高可用性224
1.2 HBase 226 
1.2.1 HBase的架構226 
1.2.2 HBase模式設計準則231 
1.3 HBase編程232 
1.4為有效的數據存儲結合HDFS和HBase 237 
1.5為應用程序選擇恰當的Hadoop數據組織237 
1.5.1數據被MapReduce獨占訪問時237 
1.5.2創建新數據時238 
1.5.3數據尺寸太大時238 
1.5.4數據用於實時訪問時238 
練習239 
備忘單241 
第2講利用MapReduce處理數據242 
2.1開始了解MapReduce 243 
2.1.1 MapReduce框架243 
2.1.2 MapReduce執行管道244 
2.1.3 MapReduce的運行協調和任務管理247 
2.2第一個MapReduce應用程序249 
2.3設計MapReduce的實現257 
2.3.1使用MapReduce作為並行處理的框架258 
2.3 .2 MapReduce的簡單數據處理259 
2.3.3構建與MapReduce的連接260 
2.3.4構建迭代的MapReduce應用程序264 
2.3.5用還是不用MapReduce 268
2.3.6常見的MapReduce設計提示269 
練習271 
備忘單274 
第3講自定義MapReduce執行275 
3.1用InputFormat控制MapReduce的執行276 
3.1.1為計算密集型應用程序實施InputFormat 277 
3.1.2實現InputFormat控制map的數量282 
3.1.3為多HBase表實現InputFormat 287 
3.2用你自定義RecordReader的方式讀取數據290 
3.3用自定義OutputFormat組織輸出數據292 
3.4自定義RecordWriter以你的方式寫數據293 
3.5利用結合器優化MapReduce執行295 
3.6用分區器來控制reducer的執行298 
練習299 
備忘單302 
第4講測試和調試MapReduce應用程序303 
4.1 MapReduce應用程序的單元測試304 
4.1.1測試mapper 306 
4.1.2測試reducer 307 
4.1 .3集成測試308 
4.2用Eclipse進行本地程序測試310 
4.3利用日誌文件做Hadoop測試312 
4.4利用工作計數器進行報表度量316 
4.5在MapReduce中的防禦式編程318
練習320 
備忘單322 
第5講實現MapReduce WordCount程序——案例學習323 
5.1背景324 
5.1.1句子層級的情感分析325 
5.1.2情感詞法採集325 
5.1.3文檔級別的情感分析325 
5.1.4比較情感分析325 
5.1.5基於外觀的情感分析326 
5.2場景326 
5.3數據解釋326 
5.4方法論326 
5.5方法327 
模塊4利用Hadoop工具Hive、Pig和Oozie提升效率
第1講探索Hive 343 
1.1介紹Hive 344 
1.1.1 Hive數據單元345 
1.1.2 Hive架構346 
1.1.3 Hive元數據存儲347 
1.2啟動Hive 347 
1.2.1 Hive命令行界面348 
1.2.2 Hive變量349 
1.2.3 Hive屬性349 
1.2.4 Hive一次性命令349 
1.3執行來自文件的Hive查詢350 
1.3.1 shell執行350 
1.3.2 Hadoop dfs命令350 
1.3.3 Hive中的註釋351 
1.4數據類型351
1.4.1基本數據類型352 
1.4.2複雜數據類型354 
1.4.3 Hive內置運算符355 
1.5 Hive內置函數356 
1.6壓縮的數據存儲358 
1.7 Hive數據定義語言359 
1.7.1管理Hive中的數據庫359 
1.7. 2管理Hive中的表360 
1.8 Hive中的數據操作364 
1.8.1將數據載入Hive表364 
1.8.2將數據插入表365 
1.8.3插入至本地文件367 
練習368 
備忘單370 
第2講高級Hive查詢371 
2.1 HiveQL查詢372 
2.1.1 SELECT查詢372 
2.1.2 LIMIT子句373 
2.1.3嵌入查詢373 
2.1.4 CASE…WHEN…THEN 373 
2.1.5 LIKE和RLIKE 373 
2.1.6 GROUP BY 374 
2.1. 7 HAVING 374 
2.2使用函數操作列值374 
2.2.1內置函數374 
2.2.2用戶定義函數375 
2.3 Hive中的連接376 
2.3.1內連接376 
2.3.2外連接377
2.3.3笛卡兒積連接378 
2.3.4 Map側的連接379 
2.3.5 ORDER BY 379 
2.3.6 UNION ALL 379 
2.4 Hive的最佳實踐380 
2.4.1使用分區380 
2.4.2規範化381 
2.4.3有效使用單次掃描381 
2.4.4桶的使用381 
2.5性能調優和查詢優化382 
2.5.1 EXPLAIN命令383 
2.5.2 LIMIT調優387 
2.6各種執行類型387 
2.6.1本地執行387 
2.6.2並行執行387 
2.6.3索引388 
2.6.4預測執行388 
2.7 Hive文件和記錄格式388 
2.7.1文本文件388 
2.7.2序列文件389 
2.7.3 RCFile 389 
2.7.4記錄格式(SerDe) 390 
2.7.5 Regex SerDe 390 
2.7.6 Avro SerDe 391 
2.7.7 JSON SerDe 392 
2.8 HiveThrift服務393 
2.8.1啟動HiveThrift服務器393 
2.8.2使用JDBC的樣例HiveThrift客戶端393
2.9 Hive中的安全395 
2.9.1認證395 
2.9.2授權395 
練習397 
備忘單400 
第3講用Pig分析數據402 
3.1介紹Pig 403 
3.1.1 Pig架構403 
3.1.2 Pig Latin的優勢404 
3.2安裝Pig 405 
3.2.1安裝Pig所需條件405 
3.2.2下載Pig 405 
3.2.3構建Pig庫406 
3.3 Pig的屬性406 
3.4運行Pig 407 
3.5 Pig Latin應用程序流408 
3.6開始利用Pig Latin 409 
3.6.1 Pig Latin結構410 
3.6.2 Pig數據類型411 
3.6.3 Pig語法412 
3.7 Pig腳本接口413 
3.8 Pig Latin的腳本415 
3.8.1用戶定義函數415 
3.8.2參數替代418 
3.9 Pig中的關係型操作419 
3.9. 1 FOREACH 419 
3.9.2 FILTER 420 
3.9.3 GROUP 421 
3.9.4 ORDER BY 422
3.9.5 DISTINCT 423 
3.9.6 JOIN 424 
3.9.7 LIMIT 425 
3.9.8 SAMPLE 426 
練習427 
備忘單430 
第4講Oozie對數據處理進行自動化431 
4.1開始了解Oozie 432 
4.2 Oozie工作流433 
4.2.1在Oozie工作流中執行異步活動436 
4.2.2實現Oozie工作流437 
4.3 Oozie協調器443 
4.4 Oozie套件448 
4.5利用EL的Oozie參數化451 
4.5.1工作流函數451 
4.5.2協調器函數452 
4.5.3套件函數452 
4.5.4其他EL函數452 
4.6 Oozie作業執行模型452 
4.7訪問Oozie 455 
4.8 Oozie SLA 456 
練習460 
備忘單462 
第5講使用Oozie 464 
5.1業務場景:使用探測包驗證關於位置的信息465 
5.2根據探測包設計位置驗證466 
5.3設計Oozie工作流467 
5.4實現Oozie工作流應用程序469 
5.4.1實現數據準備工作流469
5.4.2實現考勤指數和集群簇的工作流477 
5.5實現工作流的活動479 
5.5.1從java行為中填充執行上下文479 
5.5.2在Oozie工作流中使用MapReduce作業480 
5.6實現Oozie協調器應用程序483 
5.7實現Oozie套件應用程序488 
5.8部署、測試和執行Oozie應用程序489 
5.8.1使用Oozie CLI執行Oozie應用程序490 
5.8.2將參數傳遞給Oozie作業493 
5.8.3決定如何將參數傳遞給Oozie作業495 
練習497 
備忘單499


作者介紹


本書作者均為國際知名IT培訓機構的知名講師,他們通過對技術、IT市場需求以及當今就業培訓方面的全球行業標准進行了廣泛並嚴格的調研之後,集結成這套“大數據開發者權威教程”。作者們的目標是通過這套書為有志於在大數據開發領域取得事業成功的人技術人員和決策者提供必備的技術和技能。
譯者簡介
顧晨,男,碩士、PMP、信息系統項目管理師。畢業於上海交通大學。曾獲邀參加舊金山的Google I/O大會。喜歡所有與編程相關的事物,擁有14年的編程經驗。對於大數據、SAP HANA數據庫和思科技術有著極其濃厚的興趣,是國內較早從事HANA數據庫研究的人員之一。先後錄製了MCSE、CCNP等多種教學視頻,在多家知名網站發布。精通C#、Java編程,目前正致力於人臉識別、室內定位和門店人流統計方面的研究。




相關書籍

掌握分佈式跟蹤:微服務和復雜系統性能分析

作者 馮文輝

2018-12-01

Java 多線程與 Socket:實戰微服務框架

作者 龐永華

2018-12-01

Vue.js 從入門到實戰 (微課視頻版)

作者 孫鑫

2018-12-01