
本书作为 Hadoop 大数据技术的项目化实战教材,以任务驱动为导向,深入浅出地介绍了 Hadoop 及其周边框架的应用,涵盖了当前 Hadoop 生态系统中的主流大数据技术。全书共 12 个项目,包括云计算和大数据基础概论、CentOS 的安装与网络配置、MPI 集群部署及应用、Hadoop 集群部署及应用、MapReduce 基本原理及应用、HBase 数据库的搭建及使用、Hive 数据仓库的安装及应用、Pig 数据分析、Sqoop 数据迁移、Flume 日志收集系统、Spark 部署及数据分析、大数据技术编程实例。本书秉承“实践为主、理论够用、注重实用”原则,在任务实施中融入各个知识点与课程教学内容,以便读者能更好地学习和掌握大数据关键技术。本书既可以作为高职高专院校和应用型本科院校计算机相关专业的教材,还可以作为 IT 类培训机构培训云计算和大数据技术等相关课程的实训教材,并可以作为相关技术人员的参考书。
近年来,国家多个部委陆续出台了多项与大数据有关的专项支持政策,并把大数据列为国家重点支持和发展的战略新兴产业,大数据的迅速发展已经成为当今科学界、教育界,甚至世界各国政府部门关注的热点。大数据具有庞大的价值空间,而且大数据的价值体系也有非常大的成长空间,从消费互联网到产业互联网阶段,大数据的价值得到了越来越多的体现。此外,大数据还被列入“新基建”计划,这为大数据带来了更强的资源整合能力,将全面推动大数据的实践应用。 目前,“Hadoop 大数据技术”课程已经成为大数据、云计算、人工智能、计算机网络技术等相关专业的必修课,选择一本合适的教材对课程教学非常重要。本书依据高职高专的教学特色及职业教育培养理念,以“重实操、弱理论”方式组织内容,以项目化任务驱动教学逻辑进行编排,强化学生的实操实训能力和培养学生的职业道德素养。全书注重实用性,图文并茂,方便学生对照任务中提供的知识点进行学习。 本书由汕尾职业技术学院和广东省高等教育学会高职高专云计算与大数据专业委员会共同牵头,组织院校教师与企业工程师共同编写。本书的编写也获得了深圳信息职业技术学院的大力支持,是深圳信息职业技术学院与汕尾职业技术学院校际教材建设帮扶项目成果之一。同时,本书还凝聚了许多来自教学一线的教师近些年来的相关教科研成果,主要有:2020 年度广东省普通高校创新团队项目(自然科学)(课题编号:2020KCXTD045)、2021 年度广东省普通高校重点领域专项(新一代信息技术)(课题编号:2021ZDZX1101)、2021 年 度 广 东 省 普 通 高 校 重 点 领 域 专 项(数 字 经 济)(课 题 编 号:2021ZDZX3041)、2021 年度广东省教育科学规划课题(高等教育专项)项目(课题编号:2021GXJK515、2021GXJK589)、2020年度第二批中国高校产学研创新基金“新一代信息技术创新项目”(课题编号:2020ITA03032)、2021 年广东省高职计算机教指委教育教学改革研究与实践项目 (JSJJZW2021028)、2021 年广东省高等教育学会职业教育研究会立项课题(课题编号:GDGZ21Z003)等科研成果。 本书是在汕尾职业技术学院校长蔡昭权教授的指导下编写完成的,全书由深圳信息职业技术学院花罡辰老师主审。石慧编写了项目 7、8、9,谢志明编写了项目 2、3,蔡少霖编写了项目 5、6,刘少锴、郑伟亮和蔡少霖共同编写了项目 4,邓奎彪和张海珍共同编写了项目 10,陈培辉、刘少锴和郑伟亮共同编写了项目 1,石慧和张良均共同编写了项目11,谢志明和张良均共同编写了项目 12,叶小容、陈焕彬、罗海洋、李广用等老师及学生对本书的任务实施部分进行了验证。本书的编写也得到了相关企业的支持,广东泰迪智能科技股份有限公司对本书编写进行了技术指导,广州五舟科技股份有限公司为本书提供了大数据实训室建设解决方案。正因为有了他们的支持和帮助,我们才能如期完成本书的 撰写和编排工作,在此深表感谢。 大数据技术涉及面很广且更新较快,编者基于大量的重复实验及多年的工作经验积累,参考并引用了诸多前辈学者的研究成果和论述,并在与之相关的研究基础上进行了扩充和改进,编者在此向这些前辈学者深表敬意。大数据技术作为一门正在快速发展的新兴技术,新方法、新架构层出不穷,加之编者的经验和水平有限,本书的结构、内容难免存在疏漏和不足之处,恳请同行专家和读者给予批评和指正。如有任何意见和建议,可发送电子邮件至 455987511@qq.com,以便我们及时修正和完善。为方便师生教学和学习的需要,本书配有电子课件、微课、源代码、课后习题等相关资源,请有此需要的师生登录华信教育资源网注册后免费下载。电子工业出版社为方便院校教师的教学工作,特建立了教学服务 QQ 群:892043175(或者扫描以下二维码入群),广大老师可进群后交流。
项目 1? 云计算和大数据基础概论 …………………………………………………………… 1 任务 1 认识云计算 ……………………………………………………………………… 1 任务 2 云计算中的虚拟化技术 ………………………………………………………… 7 任务 3 云计算与大数据 …………………………………………………………………13 任务 4 大数据的技术架构 ………………………………………………………………16 任务 5 大数据的应用前景 ………………………………………………………………18 任务 6 大数据的发展历程及其面临的挑战 ……………………………………………22 项目 2? CentOS 的安装与网络配置 ……………………………………………………… 27 任务 1 Linux 操作系统概述 ……………………………………………………………27 任务 2 使用 VMware 虚拟机安装 CentOS ……………………………………………32 任务 3 CentOS 网络环境配置 …………………………………………………………54 任务 4 yum 源设置及使用 ………………………………………………………………62 项目 3? MPI 集群部署及应用 ……………………………………………………………… 72 任务 1 NTP 时间同步设置 ……………………………………………………………72 任务 2 SSH 证书登录……………………………………………………………………78 任务 3 使用 NFS 设置共享目录 ………………………………………………………82 任务 4 MPI 的安装及测试 ………………………………………………………………86 任务 5 MPI 编程实战 ……………………………………………………………………91 项目 4? Hadoop 集群部署及应用 ………………………………………………………… 100 任务 1 Hadoop 集群部署前的准备工作 …………………………………………… 100 任务 2 Hadoop 的安装 ……………………………………………………………… 106 任务 3 Hadoop 伪分布式部署及应用 ……………………………………………… 110 任务 4 Hadoop 分布式部署及应用 ………………………………………………… 114 项目 5? MapReduce 基本原理及应用 …………………………………………………… 122 任务 1 MapReduce 工作原理及工作流程 …………………………………………… 122 任务 2 词频统计编程实践 …………………………………………………………… 125 任务 3 数据合并去重编程实践 ……………………………………………………… 136 任务 4 数据排序编程实践 …………………………………………………………… 140 项目 6? HBase 数据库的搭建及使用 …………………………………………………… 146 任务 1 HBase 安装及伪分布式部署 ………………………………………………… 146 任务 2 HBase 完全分布式部署 ……………………………………………………… 150 任务 3 HBase 操作实践 ……………………………………………………………… 156 任务 4 HBase 编程实践 ……………………………………………………………… 163 项目 7? Hive 数据仓库的安装及应用 …………………………………………………… 175 任务 1 Hive 基本概念………………………………………………………………… 175 任务 2 Hive 安装及部署……………………………………………………………… 178 任务 3 Hive 基本命令和应用………………………………………………………… 190 项目 8? Pig 数据分析 ……………………………………………………………………… 208 任务 1 Pig 基本概念 ………………………………………………………………… 208 任务 2 Pig 安装及部署 ……………………………………………………………… 211 任务 3 Pig 命令语法和使用 ………………………………………………………… 216 任务 4 Pig 简单编程 ………………………………………………………………… 235 项目 9? Sqoop 数据迁移…………………………………………………………………… 244 任务 1 Sqoop 基本概念 ……………………………………………………………… 244 任务 2 Sqoop 安装及部署 …………………………………………………………… 247 任 务 3 利 用 Sqoop 工具实现 MySQL 与 HDFS 之间数据迁移 …………………………………………………………………… 254 任务 4 利用 Sqoop 工具实现 MySQL 与 Hive/HBase 之间数据迁移……………… 265 项目 10? Flume 日志收集系统 …………………………………………………………… 278 任务 1 Flume 系统概述 ……………………………………………………………… 278 任务 2 Flume 安装和部署 …………………………………………………………… 282 任务 3 Flume 应用案例 ……………………………………………………………… 291 项目 11? Spark 部署及数据分析 ………………………………………………………… 305 任务 1 Spark 基本概念 ……………………………………………………………… 305 任务 2 Spark 安装及部署 …………………………………………………………… 308 任务 3 Spark 数据分析 ……………………………………………………………… 317 任务 4 Spark 应用案例 ……………………………………………………………… 332 项目 12? 大数据技术编程实例 …………………………………………………………… 347 任务 1 能耗数据分析及处理 ………………………………………………………… 347 任务 2 餐饮大数据分析及处理 ……………………………………………………… 360 参考文献……………………………………………………………………………………… 371