Hadoop+Spark+Python大數(shù)據(jù)處理從算法到實戰(zhàn)
定 價:99 元
本書圍繞新基建的云計算、大數(shù)據(jù)及人工智能進行介紹,分為以下五個部分。 第一部分介紹大數(shù)據(jù)的概念與特點,以及典型的產(chǎn)業(yè)應(yīng)用場景;第二部分介紹目前云計算中的一個重要的研究與應(yīng)用領(lǐng)域—容器云,包含應(yīng)用容器引擎Docker與容器編排工具Kubernetes;第三部分是大數(shù)據(jù)分析的基礎(chǔ),也是大數(shù)據(jù)分析技術(shù)的重點,包含Hadoop、HBase、Hive、Spark的環(huán)境搭建及開發(fā)流程;第四部分是機器學(xué)習(xí)相關(guān)算法的應(yīng)用,包含scikit-learn、SparkML、TensorFlow工具的使用;第五部分,以實例介紹如何使用Spark機器學(xué)習(xí)庫中的協(xié)同過濾算法,來實現(xiàn)一個基于Web的推薦系,以及介紹如何使用OpenCV與TensorFlow構(gòu)建卷積神經(jīng)網(wǎng)絡(luò)來實現(xiàn)基于Web的人臉識別。 本書輕理論,重實踐,適合有一定編程基礎(chǔ),且對云計算、大數(shù)據(jù)、機器學(xué)習(xí)、人工智能感興趣,希望投身到新基建這一偉大事業(yè)的讀者學(xué)習(xí)。同時,本書還可作為廣大院校相關(guān)專業(yè)的教材和培訓(xùn)參考用書。
1.書力求簡單、實用,堅持以實例為主,理論為輔。 從應(yīng)用場景切入,圍繞新基建的云計算、大數(shù)據(jù)及人工智能,介紹大數(shù)據(jù)的概念與特點及典型的產(chǎn)業(yè)應(yīng)用場景,使讀者了解大數(shù)據(jù)項目和機器學(xué)習(xí)開發(fā)過程,能設(shè)計不同場景下的項目架構(gòu),并做好不同業(yè)務(wù)下的數(shù)據(jù)建模。 2.Hadoop+spark+Python三合一,內(nèi)容講解重點分明,細節(jié)具體。本書解析了每個領(lǐng)域內(nèi)的復(fù)雜邏輯和豐富內(nèi)涵,盡可能讓讀者用更低的成本,盡快掌握相關(guān)技術(shù),緊跟時代步伐。本書大多數(shù)章節(jié)都包含實訓(xùn)模塊,讓讀者在學(xué)完該章節(jié)的知識后能夠舉一反三,學(xué)以致用,早日投身新基建。 3.布局合理,循序漸進,自有章法。本書先介紹了入門級的容器化工具Docker 與 Kubernetes,然后介紹大數(shù)據(jù)的常用組件,為讀者的后續(xù)實踐打好基礎(chǔ)后,開始講解機器學(xué)習(xí)庫的相關(guān)用法;隨著人工智能的快速發(fā)展,神經(jīng)網(wǎng)絡(luò)及相關(guān)的開發(fā)工具也愈發(fā)強大,因此引入了能解決更復(fù)雜問題,但操作又比較簡單的深度學(xué)習(xí)框架 TensorFlow。掌握TensorFlow,既彌補了 Spark、scikit-learn 的不足,又能應(yīng)對更困難的場景。
前 言 用新技術(shù)、新思維,投身新基建 為什么寫這本書? 2020 年 3 月,國家提出要加快 5G 網(wǎng)絡(luò)和數(shù)據(jù)中心等新型基礎(chǔ)設(shè)施建設(shè)(簡稱新基建)的進度。 其中,信息化新型基礎(chǔ)設(shè)施包含云計算、大數(shù)據(jù)、人工智能、區(qū)塊鏈、5G 等內(nèi)容。 云計算、大數(shù)據(jù)、人工智能,這三者從表面上看似乎是三個獨立的技術(shù)方向,實則一脈相承。 筆者在南京大學(xué)參加人工智能峰會的時候,曾向?qū)<艺埥塘艘粋問題:云計算、大數(shù)據(jù)、人工智能之間有什么關(guān)系?專家解釋:從整體上看,云計算就是高速公路,大數(shù)據(jù)就是路上滿載貨物、飛速奔馳的車輛,人工智能則通過觀察道路利用情況、車輛運行情況,發(fā)現(xiàn)其中的規(guī)律,合理規(guī)劃道路、合理調(diào)度車輛,讓整個系統(tǒng)運行得更高效。 簡單來說,云計算技術(shù)提供了算力,大數(shù)據(jù)技術(shù)提供了數(shù)據(jù)支撐,人工智能技術(shù)提供了強大算法,這三者之間存在著不可分割的“親緣”關(guān)系。 從細節(jié)來看,每一個領(lǐng)域都有復(fù)雜的邏輯和豐富的內(nèi)涵。如果要將這三門技術(shù)融合在一起,需要有比較扎實的技術(shù)功底和充裕的時間。因此本書的目標(biāo)是盡可能讓讀者用最低的成本,盡快掌握相關(guān)技術(shù),緊跟時代步伐,早日投身新基建。 這本書的特點是什么? 本書力求簡單、實用,堅持以實例為主,理論為輔。 全書分為五篇,從大數(shù)據(jù)的基本概念與產(chǎn)業(yè)應(yīng)用入手,然后介紹將大數(shù)據(jù)平臺容器化的工具Docker 與 Kubernetes,之后講解大數(shù)據(jù)常用的組件:Hadoop、HBase、Hive、Spark,最后引入了對數(shù)據(jù)進行挖掘的機器學(xué)習(xí)庫 scikit-learn 和 Spark MLlib。 隨著人工智能的快速發(fā)展,神經(jīng)網(wǎng)絡(luò)及相關(guān)的開發(fā)工具也愈發(fā)強大,因此在了解機器學(xué)習(xí)后,本書又引入了能解決更復(fù)雜問題,但操作又比較簡單的深度學(xué)習(xí)框架 TensorFlow。掌握TensorFlow,既彌補了 Spark、scikit-learn 的不足,又能應(yīng)對更困難的場景。 本書沒有高深的理論,每一章都以實例為主,讀者通過參考源代碼,修改實例,就能得到自己想要的結(jié)果,讓讀者看得懂、學(xué)得會、做得出。 本書大多數(shù)章節(jié)都包含實訓(xùn)模塊,讓讀者在學(xué)完該章節(jié)的知識后能夠舉一反三,學(xué)以致用。 通過這本書能學(xué)到什么? 1. 數(shù)據(jù)分析理論基礎(chǔ):了解大數(shù)據(jù)的特征、大數(shù)據(jù)分析目標(biāo)如何確立、大數(shù)據(jù)項目開發(fā)流程、機器學(xué)習(xí)開發(fā)過程。 2. 大數(shù)據(jù)平臺容器化:掌握 Docker、Kubernetes 的安裝方法;掌握基于 Docker 容器的集群部署方法;掌握 Kubernetes 的集群部署方法。 3. 數(shù)據(jù)分析:理解分布式存儲原理、分布式計算原理及分布式資源調(diào)度原理,掌握 Hadoop、HBase、Hive、Spark、scikit-learn、TensorFlow 數(shù)據(jù)分析技術(shù)。 4. 掌握架構(gòu)設(shè)計與實施技能:能設(shè)計不同場景下的項目架構(gòu),并做好不同業(yè)務(wù)下的數(shù)據(jù)建模。 5. 項目開發(fā):熟練使用 Python 語言,綜合運用各類組件,獨立完成項目開發(fā)。掌握基本的機器學(xué)習(xí)、人工智能開發(fā)技術(shù)。 2 本書的核心組件版本和閱讀時的注意事項 1. 核心組件版本 Python:Anaconda 3 Python 3.7 版本 CentOS:7.5 Hadoop:3.1.3 HBase:2.2.2 Hive:3.1.1 Spark:2.4.4 scikit-learn:0.22 TensorFlow:2.1.0 其中,Hadoop、HBase、Hive、Spark 安裝過程相對復(fù)雜,版本不匹配容易出錯,建議讀者使用與本書一致的版本,待精通大數(shù)據(jù)平臺知識之后,再選擇其他版本。另外 TensorFlow 1.x 與TensorFlow 2.x 版本存在巨大差異,使用 TensorFlow 2.x 將會成為流行趨勢,建議讀者使用 2.x 版本。 2. 注意事項 在實訓(xùn)板塊,建議讀者根據(jù)主題回顧小節(jié)內(nèi)容,思考后再設(shè)計自己的實現(xiàn)方案,并與書中的實現(xiàn)方式進行對比,以便取得更好的學(xué)習(xí)效果。 除了書,您還能得到什么? 1. 贈送案例源代碼。提供書中相關(guān)案例的源代碼,方便讀者學(xué)習(xí)參考。 2. 贈送 50 道 Python 面試題及答案,幫助讀者提高面試成功率。 3. 贈送職場高效學(xué)習(xí)資源大禮包,包括《微信高手技巧隨身查》《QQ 高手技巧隨身查》《手機辦公 10 招就夠》等電子書,以及“5 分鐘學(xué)會番茄工作法”“10 招精通超級時間整理術(shù)”視頻教程,讓您輕松應(yīng)對職場那些事兒。 感謝胡子平老師及北京大學(xué)出版社的各位編輯在本書的內(nèi)容策劃、設(shè)計和審核上給我的幫助。在本書的編寫過程中,我竭盡所能地為讀者呈現(xiàn)最好、最全面、最實用的內(nèi)容,但仍難免有疏漏之處,敬請廣大讀者不吝指正。
朱春旭,高級軟件工程師,長期為軟件開發(fā)公司、政府機構(gòu)培訓(xùn)大數(shù)據(jù)開發(fā)與應(yīng)用課程,提供大數(shù)據(jù)技術(shù)咨詢與問題解決方案,對Python、大數(shù)據(jù)分析相關(guān)領(lǐng)域有深入研究。著有《Python編程完全自學(xué)教程》《Python數(shù)據(jù)分析與大數(shù)據(jù)處理從入門到精通》,培訓(xùn)學(xué)員10000+。
第1篇 入門篇 第 1 章 初識大數(shù)據(jù) 002 1.2 如何處理與分析大數(shù)據(jù) 004 1.3 大數(shù)據(jù)的產(chǎn)業(yè)應(yīng)用 008 第2篇 準(zhǔn)備篇 第 2 章 萬丈高樓平地起,使用 Docker 作地基 011 2.1 初識 Docker 011 2.2 搭建 Docker 運行環(huán)境 016 2.3 Docker 操作鏡像 029 2.4 Docker 操作容器 036 2.5 Docker 私有倉庫 045 2.6 Docker Compose 編排容器046 2.7 Portainer 可視化工具 053 2.8 實訓(xùn):構(gòu)建 Nginx 鏡像并創(chuàng)建容器 055 第 3 章 團隊合作好,使用 Kubernetes 來協(xié)調(diào) 057 3.1 初識 Kubernetes057 3.2 搭建集群 063 3.4 Kubernetes Dashboard 管理工具 079 3.5 實訓(xùn):在集群中部署 Nginx 服務(wù)器集群 084 第3篇 技法篇 第 4 章 筑高樓,需利器,使用 Hadoop 做核心 088 4.1 Hadoop 簡介 088 4.2 HDFS 分布式文件系統(tǒng) 092 4.3 任務(wù)調(diào)度與資源管理器 YARN 097 4.4 MapReduce 分布式計算框架104 4.5 Hadoop 環(huán)境搭建 113 4.6 Hadoop 常用操作命令 127 4.7 實訓(xùn):在容器中部署 Hadoop集群 130 第 5 章 空間要靈活,使用 HBase 來管理 136 5.1 初識 HBase 136 5.2 HBase 環(huán)境搭建144 5.3 HBase Shell 操作 152 5.4 HBase Thrift 編程接口 160 5.5 Region 的拆分與合并 162 5.6 實訓(xùn):構(gòu)建訂單管理表 165 第 6 章 數(shù)據(jù)需要規(guī)劃,使用 Hive 建倉庫169 6.1 初識 Hive 169 6.2 Hive 環(huán)境搭建 171 6.3 Hive 數(shù)據(jù)庫與表 176 6.4 表的類型 183 6.5 分桶查詢與排序 188 6.6 Sqoop 數(shù)據(jù)的導(dǎo)入導(dǎo)出 190 6.7 Hive Thrift 編程接口192 6.8 實訓(xùn):構(gòu)建訂單分析數(shù)據(jù)倉庫 193 第 7 章 處理要夠快,使用 Spark 196 7.1 Spark 概述 196 7.2 Spark 核心原理 199 7.3 Spark 環(huán)境搭建 202 7.4 提交 Spark 應(yīng)用 206 7.5 實訓(xùn):在容器中部署 Spark集群 209 第 8 章 數(shù)據(jù)無結(jié)構(gòu),使用 RDD 212 8.1 RDD 設(shè)計原理 212 8.2 RDD 編程 216 8.3 鍵值對 RDD 224 8.4 讀寫文件 230 8.5 集成 HBase 232 8.6 編程進階 234 8.7 實訓(xùn):分析商品銷售情況 240 第 9 章 數(shù)據(jù)有結(jié)構(gòu),使用 SQL 語句 245 9.1 Spark SQL 概述 245 9.2 創(chuàng)建 DataFrame 對象 249 9.3 DataFrame 常用的 API 254 9.4 保存 DataFrame 262 9.5 實訓(xùn):分析公司銷售業(yè)績 264 第 10 章 Spark 流式計算編程 268 10.1 流計算簡介 268 10.2 Discretized Stream 271 10.3 Structured Streaming 278 10.4 實訓(xùn):實時統(tǒng)計貸款金額 293 第4篇 算法篇 第 11 章 發(fā)掘數(shù)據(jù)價值,使用機器學(xué)習(xí)技術(shù)297 11.1 什么是機器學(xué)習(xí) 297 11.2 scikit-learn 機器學(xué)習(xí)庫303 11.3 Spark 機器學(xué)習(xí)庫 308 11.4 實訓(xùn):簡單的情感分析 310 第 12 章 處理分類問題313 12.1 分類問題概述 313 12.2 決策樹 .315 12.3 隨機森林 320 12.4 Logistic 回歸 325 12.5 支持向量機 329 12.6 貝葉斯 334 12.7 實訓(xùn):判斷用戶是否購買該商品 337 第 13 章 處理回歸問題 340 13.1 回歸問題概述 340 13.2 線性回歸與多項式回歸 342 13.3 決策樹回歸 347 13.4 實訓(xùn):預(yù)測房價 352 第 14 章 處理聚類問題 355 14.1 聚類問題概述 355 14.2 基于劃分聚類 356 14.3 基于模型聚類 359 14.4 實訓(xùn):對客戶進行聚類 363 第 15 章 關(guān)聯(lián)規(guī)則與協(xié)同過濾 365 15.1 關(guān)聯(lián)規(guī)則數(shù)據(jù)挖掘 365 15.2 協(xié)同過濾 368 15.3 實訓(xùn):使用 Spark ALS 推薦菜單 371 第 16 章 建立智能應(yīng)用 374 16.1 構(gòu)建簡單模型 374 16.2 自定義模型和自定義層 384 16.3 回調(diào) 386 16.4 保存與恢復(fù)模型 388 16.5 識別手寫字 391 16.6 實訓(xùn):貓狗識別 394 第5篇 實戰(zhàn)篇 第 17 章 綜合實戰(zhàn):猜你喜歡401 17.1 項目背景與解決方案介紹 401 17.2 數(shù)據(jù)庫設(shè)計 403 17.3 推薦模型 404 17.4 前端網(wǎng)站 406 第 18 章 綜合實戰(zhàn):人臉識別416 18.1 項目背景與解決方案介紹 416 18.2 圖像采集 418 18.3 訓(xùn)練模型與識別人臉 422