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