Hadoop+Spark+Python大数据处理从算法到实战
定 价:99 元
本书围绕新基建的云计算、大数据及人工智能进行介绍,分为以下五个部分。 第一部分介绍大数据的概念与特点,以及典型的产业应用场景;第二部分介绍目前云计算中的一个重要的研究与应用领域—容器云,包含应用容器引擎Docker与容器编排工具Kubernetes;第三部分是大数据分析的基础,也是大数据分析技术的重点,包含Hadoop、HBase、Hive、Spark的环境搭建及开发流程;第四部分是机器学习相关算法的应用,包含scikit-learn、SparkML、TensorFlow工具的使用;第五部分,以实例介绍如何使用Spark机器学习库中的协同过滤算法,来实现一个基于Web的推荐系,以及介绍如何使用OpenCV与TensorFlow构建卷积神经网络来实现基于Web的人脸识别。 本书轻理论,重实践,适合有一定编程基础,且对云计算、大数据、机器学习、人工智能感兴趣,希望投身到新基建这一伟大事业的读者学习。同时,本书还可作为广大院校相关专业的教材和培训参考用书。
1.书力求简单、实用,坚持以实例为主,理论为辅。 从应用场景切入,围绕新基建的云计算、大数据及人工智能,介绍大数据的概念与特点及典型的产业应用场景,使读者了解大数据项目和机器学习开发过程,能设计不同场景下的项目架构,并做好不同业务下的数据建模。 2.Hadoop+spark+Python三合一,内容讲解重点分明,细节具体。本书解析了每个领域内的复杂逻辑和丰富内涵,尽可能让读者用更低的成本,尽快掌握相关技术,紧跟时代步伐。本书大多数章节都包含实训模块,让读者在学完该章节的知识后能够举一反三,学以致用,早日投身新基建。 3.布局合理,循序渐进,自有章法。本书先介绍了入门级的容器化工具Docker 与 Kubernetes,然后介绍大数据的常用组件,为读者的后续实践打好基础后,开始讲解机器学习库的相关用法;随着人工智能的快速发展,神经网络及相关的开发工具也愈发强大,因此引入了能解决更复杂问题,但操作又比较简单的深度学习框架 TensorFlow。掌握TensorFlow,既弥补了 Spark、scikit-learn 的不足,又能应对更困难的场景。
前 言 用新技术、新思维,投身新基建 为什么写这本书? 2020 年 3 月,国家提出要加快 5G 网络和数据中心等新型基础设施建设(简称新基建)的进度。 其中,信息化新型基础设施包含云计算、大数据、人工智能、区块链、5G 等内容。 云计算、大数据、人工智能,这三者从表面上看似乎是三个独立的技术方向,实则一脉相承。 笔者在南京大学参加人工智能峰会的时候,曾向专家请教了一个问题:云计算、大数据、人工智能之间有什么关系?专家解释:从整体上看,云计算就是高速公路,大数据就是路上满载货物、飞速奔驰的车辆,人工智能则通过观察道路利用情况、车辆运行情况,发现其中的规律,合理规划道路、合理调度车辆,让整个系统运行得更高效。 简单来说,云计算技术提供了算力,大数据技术提供了数据支撑,人工智能技术提供了强大算法,这三者之间存在着不可分割的“亲缘”关系。 从细节来看,每一个领域都有复杂的逻辑和丰富的内涵。如果要将这三门技术融合在一起,需要有比较扎实的技术功底和充裕的时间。因此本书的目标是尽可能让读者用最低的成本,尽快掌握相关技术,紧跟时代步伐,早日投身新基建。 这本书的特点是什么? 本书力求简单、实用,坚持以实例为主,理论为辅。 全书分为五篇,从大数据的基本概念与产业应用入手,然后介绍将大数据平台容器化的工具Docker 与 Kubernetes,之后讲解大数据常用的组件:Hadoop、HBase、Hive、Spark,最后引入了对数据进行挖掘的机器学习库 scikit-learn 和 Spark MLlib。 随着人工智能的快速发展,神经网络及相关的开发工具也愈发强大,因此在了解机器学习后,本书又引入了能解决更复杂问题,但操作又比较简单的深度学习框架 TensorFlow。掌握TensorFlow,既弥补了 Spark、scikit-learn 的不足,又能应对更困难的场景。 本书没有高深的理论,每一章都以实例为主,读者通过参考源代码,修改实例,就能得到自己想要的结果,让读者看得懂、学得会、做得出。 本书大多数章节都包含实训模块,让读者在学完该章节的知识后能够举一反三,学以致用。 通过这本书能学到什么? 1. 数据分析理论基础:了解大数据的特征、大数据分析目标如何确立、大数据项目开发流程、机器学习开发过程。 2. 大数据平台容器化:掌握 Docker、Kubernetes 的安装方法;掌握基于 Docker 容器的集群部署方法;掌握 Kubernetes 的集群部署方法。 3. 数据分析:理解分布式存储原理、分布式计算原理及分布式资源调度原理,掌握 Hadoop、HBase、Hive、Spark、scikit-learn、TensorFlow 数据分析技术。 4. 掌握架构设计与实施技能:能设计不同场景下的项目架构,并做好不同业务下的数据建模。 5. 项目开发:熟练使用 Python 语言,综合运用各类组件,独立完成项目开发。掌握基本的机器学习、人工智能开发技术。 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 安装过程相对复杂,版本不匹配容易出错,建议读者使用与本书一致的版本,待精通大数据平台知识之后,再选择其他版本。另外 TensorFlow 1.x 与TensorFlow 2.x 版本存在巨大差异,使用 TensorFlow 2.x 将会成为流行趋势,建议读者使用 2.x 版本。 2. 注意事项 在实训板块,建议读者根据主题回顾小节内容,思考后再设计自己的实现方案,并与书中的实现方式进行对比,以便取得更好的学习效果。 除了书,您还能得到什么? 1. 赠送案例源代码。提供书中相关案例的源代码,方便读者学习参考。 2. 赠送 50 道 Python 面试题及答案,帮助读者提高面试成功率。 3. 赠送职场高效学习资源大礼包,包括《微信高手技巧随身查》《QQ 高手技巧随身查》《手机办公 10 招就够》等电子书,以及“5 分钟学会番茄工作法”“10 招精通超级时间整理术”视频教程,让您轻松应对职场那些事儿。 感谢胡子平老师及北京大学出版社的各位编辑在本书的内容策划、设计和审核上给我的帮助。在本书的编写过程中,我竭尽所能地为读者呈现最好、最全面、最实用的内容,但仍难免有疏漏之处,敬请广大读者不吝指正。
朱春旭,高级软件工程师,长期为软件开发公司、政府机构培训大数据开发与应用课程,提供大数据技术咨询与问题解决方案,对Python、大数据分析相关领域有深入研究。著有《Python编程完全自学教程》《Python数据分析与大数据处理从入门到精通》,培训学员10000+。
第1篇 入门篇 第 1 章 初识大数据 002 1.2 如何处理与分析大数据 004 1.3 大数据的产业应用 008 第2篇 准备篇 第 2 章 万丈高楼平地起,使用 Docker 作地基 011 2.1 初识 Docker 011 2.2 搭建 Docker 运行环境 016 2.3 Docker 操作镜像 029 2.4 Docker 操作容器 036 2.5 Docker 私有仓库 045 2.6 Docker Compose 编排容器046 2.7 Portainer 可视化工具 053 2.8 实训:构建 Nginx 镜像并创建容器 055 第 3 章 团队合作好,使用 Kubernetes 来协调 057 3.1 初识 Kubernetes057 3.2 搭建集群 063 3.4 Kubernetes Dashboard 管理工具 079 3.5 实训:在集群中部署 Nginx 服务器集群 084 第3篇 技法篇 第 4 章 筑高楼,需利器,使用 Hadoop 做核心 088 4.1 Hadoop 简介 088 4.2 HDFS 分布式文件系统 092 4.3 任务调度与资源管理器 YARN 097 4.4 MapReduce 分布式计算框架104 4.5 Hadoop 环境搭建 113 4.6 Hadoop 常用操作命令 127 4.7 实训:在容器中部署 Hadoop集群 130 第 5 章 空间要灵活,使用 HBase 来管理 136 5.1 初识 HBase 136 5.2 HBase 环境搭建144 5.3 HBase Shell 操作 152 5.4 HBase Thrift 编程接口 160 5.5 Region 的拆分与合并 162 5.6 实训:构建订单管理表 165 第 6 章 数据需要规划,使用 Hive 建仓库169 6.1 初识 Hive 169 6.2 Hive 环境搭建 171 6.3 Hive 数据库与表 176 6.4 表的类型 183 6.5 分桶查询与排序 188 6.6 Sqoop 数据的导入导出 190 6.7 Hive Thrift 编程接口192 6.8 实训:构建订单分析数据仓库 193 第 7 章 处理要够快,使用 Spark 196 7.1 Spark 概述 196 7.2 Spark 核心原理 199 7.3 Spark 环境搭建 202 7.4 提交 Spark 应用 206 7.5 实训:在容器中部署 Spark集群 209 第 8 章 数据无结构,使用 RDD 212 8.1 RDD 设计原理 212 8.2 RDD 编程 216 8.3 键值对 RDD 224 8.4 读写文件 230 8.5 集成 HBase 232 8.6 编程进阶 234 8.7 实训:分析商品销售情况 240 第 9 章 数据有结构,使用 SQL 语句 245 9.1 Spark SQL 概述 245 9.2 创建 DataFrame 对象 249 9.3 DataFrame 常用的 API 254 9.4 保存 DataFrame 262 9.5 实训:分析公司销售业绩 264 第 10 章 Spark 流式计算编程 268 10.1 流计算简介 268 10.2 Discretized Stream 271 10.3 Structured Streaming 278 10.4 实训:实时统计贷款金额 293 第4篇 算法篇 第 11 章 发掘数据价值,使用机器学习技术297 11.1 什么是机器学习 297 11.2 scikit-learn 机器学习库303 11.3 Spark 机器学习库 308 11.4 实训:简单的情感分析 310 第 12 章 处理分类问题313 12.1 分类问题概述 313 12.2 决策树 .315 12.3 随机森林 320 12.4 Logistic 回归 325 12.5 支持向量机 329 12.6 贝叶斯 334 12.7 实训:判断用户是否购买该商品 337 第 13 章 处理回归问题 340 13.1 回归问题概述 340 13.2 线性回归与多项式回归 342 13.3 决策树回归 347 13.4 实训:预测房价 352 第 14 章 处理聚类问题 355 14.1 聚类问题概述 355 14.2 基于划分聚类 356 14.3 基于模型聚类 359 14.4 实训:对客户进行聚类 363 第 15 章 关联规则与协同过滤 365 15.1 关联规则数据挖掘 365 15.2 协同过滤 368 15.3 实训:使用 Spark ALS 推荐菜单 371 第 16 章 建立智能应用 374 16.1 构建简单模型 374 16.2 自定义模型和自定义层 384 16.3 回调 386 16.4 保存与恢复模型 388 16.5 识别手写字 391 16.6 实训:猫狗识别 394 第5篇 实战篇 第 17 章 综合实战:猜你喜欢401 17.1 项目背景与解决方案介绍 401 17.2 数据库设计 403 17.3 推荐模型 404 17.4 前端网站 406 第 18 章 综合实战:人脸识别416 18.1 项目背景与解决方案介绍 416 18.2 图像采集 418 18.3 训练模型与识别人脸 422