Hadoop大數據分析實戰( 簡體 字) | |
作者:[美] 斯里達爾?奧拉 著 | 類別:1. -> 程式設計 -> 大數據 |
譯者:李垚 譯 | |
出版社:清華大學出版社 | 3dWoo書號: 51244 詢問書籍請說出此書號! 有庫存 NT售價: 645 元 |
出版日:5/1/2019 | |
頁數:361 | |
光碟數:0 | |
站長推薦: | |
印刷:黑白印刷 | 語系: ( 簡體 字 ) |
ISBN:9787302527893 | 加入購物車 │加到我的最愛 (請先登入會員) |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證, 繁體書的下載亦請直接連絡出版社) | |
第1章Hadoop簡介1
1.1Hadoop分布式文件系統1 1.1.1高可用性2 1.1.2內部DataNode均衡器4 1.1.3糾刪碼4 1.1.4端口號4 1.2MapReduce框架5 1.3YARN6 1.3.1機會型容器7 1.3.2YARN時間軸服務v.27 1.4其他變化內容9 1.4.1最低Java版本9 1.4.2Shell腳本重寫9 1.4.3覆蓋客戶端的JAR10 1.5安裝Hadoop310 1.5.1準備條件10 1.5.2下載10 1.5.3安裝12 1.5.4設置無密碼ssh12 1.5.5設置NameNode13 1.5.6啟動HDFS13 1.5.7設置YARN服務17 1.5.8糾刪碼18 1.5.9內部DataNode平衡器21 1.5.10安裝時間軸服務v.221 1.6本章小結27 第2章大數據分析概述29 2.1數據分析簡介29 2.2大數據簡介30 2.2.1數據的多樣性31 2.2.2數據的速度32 2.2.3數據的容量32 2.2.4數據的準確性32 2.2.5數據的可變性33 2.2.6可視化33 2.2.7數值33 2.2使用ApacheHadoop的分布式計算33 2.4MapReduce框架34 2.5Hive35 2.5.1下載并解壓Hive二進制文件37 2.5.2安裝Derby37 2.5.3使用Hive39 2.5.4SELECT語句的語法41 2.5.5INSET語句的語法44 2.4.6原始類型44 2.5.7復雜類型45 2.5.8內建運算符和函數45 2.5.9語言的功能50 2.6ApacheSpark51 2.7基于Tableau的可視化操作52 2.8本章小結54 第3章基于MapReduce的大數據處理55 3.1MapReduce框架55 3.1.1數據集57 3.1.2記錄讀取器58 3.1.3映射59 3.1.4組合器59 3.1.5分區器60 3.1.6混洗和排序60 3.1.7reducer任務60 3.1.8輸出格式61 3.2MapReduce作業類型61 3.2.1SingleMapper作業63 3.2.2SingleMapperReducer作業72 3.2.3MultipleMappersReducer作業77 3.2.4SingleMapperReducer作業83 3.2.5應用場景84 3.3MapReduce模式88 3.3.1聚合模式88 3.3.2過濾模式90 3.3.3連接模式91 3.4本章小結100 第4章Python-Hadoop科學計算和大數據分析101 4.1安裝操作101 4.1.1安裝Python101 4.1.2安裝Anaconda103 4.2數據分析110 4.3本章小結134 第5章R-Hadoop統計數據計算135 5.1概述135 5.1.1在工作站上安裝R并連接Hadoop中的數據135 5.1.2在共享服務器上安裝R并連接至Hadoop136 5.1.3利用RevolutionROpen136 5.1.4利用RMR2在MapReduce內執行R137 5.2R語言和Hadoop間的集成方法138 5.2.1RHadoop—在工作站上安裝R并將數據連接至Hadoop中139 5.2.2RHIPE—在HadoopMapReduce中執行R語言139 5.2.3R和Hadoop流139 5.2.4RHIVE—在工作站上安裝R并連接至Hadoop數據140 5.2.5ORCH—基于Hadoop的Oracle連接器140 5.3數據分析140 5.4本章小結165 第6章ApacheSpark批處理分析167 6.1SparkSQL和DataFrame167 6.2DataFrameAPI和SQLAPI171 6.2.1旋轉176 6.2.2過濾器177 6.2.3用戶定義的函數178 6.3模式—數據的結構178 6.3.1隱式模式179 6.3.2顯式模式179 6.3.3編碼器181 6.4加載數據集182 6.5保存數據集183 6.6聚合183 6.6.1聚合函數184 6.6.2窗口函數194 6.6.3ntiles195 6.7連接197 6.7.1連接的內部工作機制199 6.7.2混洗連接199 6.7.3廣播連接199 6.7.4連接類型200 6.7.5內部連接201 6.7.6左外連接202 6.7.7右外連接203 6.7.8全外連接204 6.7.9左反連接205 6.7.10左半連接206 6.7.11交叉連接206 6.7.12連接的操作性能207 6.8本章小結208 第7章ApacheSpark實時數據分析209 7.1數據流209 7.1.1“至少一次”處理211 7.1.2“最多一次”處理211 7.1.3“僅一次”處理212 7.2SparkStreaming214 7.2.1StreamingContext215 7.2.2創建StreamingContext215 7.2.3啟用StreamingContext216 7.2.4終止StreamingContext216 7.3fileStream217 7.3.1textFileStream217 7.3.2binaryRecordsStream217 7.3.3queueStream218 7.3.4離散流219 7.4轉換222 7.4.1窗口操作223 7.4.2有狀態/無狀態轉換226 7.5檢查點227 7.5.1元數據檢查點228 7.5.2數據檢查點228 7.6驅動程序故障恢復229 7.7與流平臺的互操作性(ApacheKafka)230 7.7.1基于接收器的方案230 7.7.2DirectStream232 7.7.3StructuredStreaming233 7.8處理事件時間和延遲日期236 7.9容錯示意圖237 7.10本章小結237 第8章ApacheFlink批處理分析239 8.1ApacheFlink簡介239 8.1.1無界數據集的連續處理240 8.1.2Flink、數據流模型和有界數據集241 8.2安裝Flink241 8.3使用Flink集群UI248 8.4批處理分析251 8.4.1讀取文件251 8.4.2轉換254 8.4.3groupBy258 8.4.4聚合260 8.4.5連接261 8.4.6寫入文件272 8.5本章小結274 第9章ApacheFlink流式處理275 9.1流式執行模型簡介275 9.2利用DataStreamAPI進行數據處理277 9.2.1執行環境278 9.2.2數據源278 9.2.3轉換282 9.3本章小結300 第10章大數據可視化技術301 10.1數據可視化簡介301 10.2Tableau302 10.3圖表類型313 10.3.1線狀圖314 10.3.2餅圖314 10.3.3柱狀圖315 10.3.4熱圖316 10.4基于Python的數據可視化317 10.5基于R的數據可視化319 10.6大數據可視化工具320 10.7本章小結321 第11章云計算簡介323 11.1概念和術語323 11.1.1云323 11.1.2IT資源324 11.1.3本地環境324 11.1.4云使用者和云供應商324 11.1.5擴展324 11.2目標和收益325 11.2.1可擴展性的提升326 11.2.2可用性和可靠性的提升326 11.3風險和挑戰327 11.3.1安全漏洞327 11.3.2減少運營治理控制328 11.3.3云提供商之間有限的可移植性328 11.4角色和邊界328 11.4.1云供應商328 11.4.2云使用者328 11.4.3云服務持有者328 11.4.4云資源管理員329 11.5云特征329 11.5.1按需使用330 11.5.2無處不在的訪問330 11.5.3多租戶機制(和資源池機制)330 11.5.4彈性330 11.5.5監測應用狀態330 11.5.6彈性計算331 11.6云交付模型331 11.6.1基礎設施即服務331 11.6.2平臺即服務331 11.6.3軟件即服務332 11.6.4整合云交付模型332 11.7云部署模型333 11.7.1公共云333 11.7.2社區云334 11.7.3私有云334 11.7.4混合云334 11.8本章小結335 第12章使用亞馬遜Web服務337 12.1AmazonElasticComputeCloud337 12.1.1彈性Web計算337 12.1.2對操作的完整控制338 12.1.3靈活的云托管服務338 12.1.4集成338 12.1.5高可靠性338 12.1.6安全性338 12.1.7經濟性338 12.1.8易于啟動339 12.1.9亞馬云及其鏡像339 12.2啟用多個AMI實例340 12.2.1實例340 12.2.2AMI340 12.2.3區域和可用區340 12.2.4區域和可用區概念341 12.2.5區域341 12.2.6可用區341 12.2.7可用區域342 12.2.8區域和端點342 12.2.9實例類型343 12.2.10AmazonEC2和亞馬遜虛擬私有云343 12.3AWSLambda344 12.4AmazonS3簡介345 12.4.1AmazonS3功能345 12.4.2全面的安全和協從能力346 12.4.3就地查詢346 12.4.4靈活的管理機制346 12.4.5最受支持的平臺以及最大的生態系統347 12.4.6簡單、方便的數據傳輸機制347 12.4.7備份和恢復347 12.4.8數據存檔347 12.4.9數據湖和數據分析348 12.4.10混合云存儲348 12.4.11原生云應用程序數據348 12.4.12災難恢復348 12.5AmazonDynamoDB349 12.6AmazonKinesisDataStreams349 12.6.1加速日志和數據提要的輸入和處理350 12.6.2實時度量和報告機制350 12.6.3實時數據分析350 12.6.4復雜的數據流處理350 12.6.5KinesisDataStreams的優點350 12.7AWSGlue351 12.8AmazonEMR352 12.9本章小結363 本書詳細闡述了與Hadoop 3大數據分析相關的基本解決方案,主要包括Hadoop簡介、大數據分析概述、基于MapReduce的大數據處理、Python-Hadoop科學計算和大數據分析、R-Hadoop統計數據計算、Apache Spark批處理分析、Apache Spark實時數據分析、Apache Flink批處理分析、Apache Flink流式處 理、大數據可視化技術、云計算簡介、使用亞馬遜Web服務等內容。此外,本書還提供了相應的示例、代碼,以幫助讀者進一步理解相關方案的實現過程。
本書適合作為高等院校計算機及相關專業的教材和教學參考書,也可作為相關開發人員的自學教材和參考手冊。 Apache Hadoop是一類流行的大數據處理平臺,并可與大多數大數據工具集成,以構建功能強大的數據分析方案。本書將圍繞這一點對相關軟件展開討論,同時輔以大量的操作實例。
在本書閱讀過程中,讀者將會系統學習HDFS、MapReduce、YARN方面的知識,以及如何實現快速、高效的大數據處理方案。此外,本書還將Hadoop與其他開源工具集成,例如Python和R語言,進而分析和可視化數據,同時針對大數據進行統計計算。一旦讀者掌握了這些內容,即可嘗試在Apache Spark和Apache Flink的基礎上應用Hadoop,最終實現實時數據分析和流式處理。除此之外,本書還將討論如何在云端和端到端管道上利用Hadoop構建數據分析方案,并通過操作實例執行大數據分析任務。 在閱讀完本書后,讀者將具備基于Hadoop生態系統的分析能力,同時可構建強大的解決方案執行大數據分析,并擁有自己的技術觀點。 適用讀者 如果讀者希望使用Hadoop 3的強大功能為企業或業務構建高性能的分析解決方案,或者您是一名大數據分析新手,那么本書將十分適合于您。另外,本書需要讀者具備Java編程方面的基礎知識。 本書內容 第1章將介紹Hadoop環境及其核心組件,包括HDFS和MapReduce。 第2章將討論大型數據集的檢測處理過程,從中發現數據的模式,生成相應的報告并采集有價值的內容。 第3章將討論MapReduce,這也是大多數計算/處理系統中的基本概念。 第4章探討Python語言,并在此基礎上通過Hadoop對大數據進行分析。 第5章介紹了R語言,同時闡述了如何使用R語言并借助于Hadoop執行大數據統計計算。 第6章將考查Apache Spark,同時根據批處理模型使用Spark進行大數據分析。 第7章將對Apache Spark的流式處理模型進行分析,以及如何打造基于流式的實時分析應用程序。 第8章主要介紹Apache Flink,及其基于批處理模型的、針對大數據分析的應用方式。 第9章討論DataStream API和基于Flink的流處理。其中,Flink用于接收和處理實時事件流,并在Hadoop集群中存儲聚合和結果。 第10章考查數據可視化問題,并通過各種工具和技術實現這一功能,例如Tableau。 第11章講述云計算以及各種概念,例如IaaS、PaaS和SaaS。除此之外,本章還將對云供應商加以簡要介紹。 第12章介紹AWS和AWS中的各種服務,這些服務使用Elastic MapReduce(EMR)在AWS云中建立Hadoop集群,這對執行大數據分析非常有用。 軟件和硬件環境 本書示例是在64位 Linux 上使用Scala、Java、R和Python語言實現的。另外,還應在機器上安裝下列內容(建議使用最新版本): ? Spark 2.3.0(或更高版本)。 ? Hadoop 3.1(或更高版本)。 ? Flink 1.4。 ? Java(JDK和JRE)1.8+。 ? Scala 2.11.x(或更高版本)。 ? Python 2.7+/3.4+。 ? R 3.1+和RStudio 1.0.143。 ? Eclipse Mars或Idea IntelliJ(最新版本)。 關于操作系統,最好使用Linux發行版(包括Debian、Ubuntu、Fedora、RHEL和CentOS)。具體來說,例如,對于Ubuntu,建議使用完整的14.04 (LTS) 64位安裝、VMWare player 12或Virtual box。此外,還可在Windows(XP/7/8/10)或者macOS X(10.4.7+)上運行代碼。 關于硬件配置,可采用Core i3、Core i5(推薦)~Core i7(獲得最佳效果)。然而,多核處理將提供更快的數據處理以及較好的可伸縮性。另外,對于單系統模式,至少使用8GB RAM(推薦);單個VM至少使用32GB RAM;對于集群,則至少使用32GB RAM。足夠的存儲空間可運行繁重的任務(取決于將要處理的數據集大小),最好至少包含50GB的空閑磁盤存儲空間(用于獨立系統和SQL倉庫)。 資源下載 讀者可訪問http://www.packtpub.com并通過個人賬戶下載示例代碼文件。另外,http://www.packtpub.com/support,注冊成功后,我們將以電子郵件的方式將相關文件發與讀者。 讀者可根據下列步驟下載代碼文件: (1)登錄www.packtpub.com并注冊我們的網站。 (2)選擇SUPPORT選項卡。 (3)單擊Code Downloads & Errata。 (4)在Search文本框中輸入書名并執行后續命令。 當文件下載完畢后,確保使用下列最新版本軟件解壓文件夾: ? Windows系統下的WinRAR/7-Zip。 ? Mac系統下的Zipeg/iZip/UnRarX。 ? Linux系統下的7-Zip/PeaZip。 另外,讀者還可訪問GitHub獲取本書的代碼包,對應網址為https://github.com/ PacktPublishing/Big-Data-Analytics-with-Hadoop-3。代碼與GitHub存儲庫將實現同步更新。 此外,讀者還可訪問https://github.com/PacktPublishing/以了解豐富的代碼和視頻資源。 除此之外,我們還提供了PDF文件,其中包含了本書所用截圖/圖表的彩色圖像。讀者訪問http://www.packtpub.com/sites/default/files/downloads/BigDataAnalyticswithHadoop3_ ColorImages.pdf進行下載。 本書約定 代碼塊則通過下列方式設置: hdfs dfs -copyFromLocal temperatures.csv /user/normal 代碼中的重點內容則采用黑體表示: Map-Reduce Framework -- output average temperature per city name Map input records=35 Map output records=33 Map output bytes=208 Map output materialized bytes=286 命令行輸入或輸出如下所示: $ ssh-keygen -t rsa -P -f ~/.ssh/id_rsa $ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys $ chmod 0600 ~/.ssh/authorized_keys 圖標表示較為重要的說明事項。 圖標則表示提示信息和操作技巧。 讀者反饋和客戶支持 歡迎讀者對本書的建議或意見予以反饋。 對此,讀者可向feedback@packtpub.com發送郵件,并以書名作為郵件標題。若讀者對本書有任何疑問,均可發送郵件至questions@packtpub.com,我們將竭誠為您服務。 勘誤表 盡管我們在最大程度上做到盡善盡美,但錯誤依然在所難免。如果讀者發現謬誤之處,無論是文字錯誤抑或是代碼錯誤,還望不吝賜教。對此,讀者可訪問http://www.packtpub. com/submit-errata,選取對應書籍,單擊Errata Submission Form超鏈接,并輸入相關問題的詳細內容。 版權須知 一直以來,互聯網上的版權問題從未間斷,Packt出版社對此類問題異常重視。若讀者在互聯網上發現本書任意形式的副本,請告知網絡地址或網站名稱,我們將對此予以處理。關于盜版問題,讀者可發送郵件至copyright@packtpub.com。 若讀者針對某項技術具有專家級的見解,抑或計劃撰寫書籍或完善某部著作的出版工作,則可訪問。 問題解答 若讀者對本書有任何疑問,均可發送郵件,我們將竭誠為您服務。 |