新書推薦:

《
ABB工业机器人离线编程与仿真
》
售價:HK$
130.9

《
工厂生产计划精细化、精益化、精进化管理手册
》
售價:HK$
75.9

《
中国画技法与教学研究
》
售價:HK$
72.6

《
生命瞬间 人生风采——晚晴居影集
》
售價:HK$
107.8

《
美国国家地理·环球终极探索 全10册
》
售價:HK$
327.8

《
通往权力之路:叶卡捷琳娜大帝
》
售價:HK$
141.9

《
西方毛发时尚演变
》
售價:HK$
107.8

《
法国革命史(史外一种:圣鞠斯特)
》
售價:HK$
107.8
|
編輯推薦: |
1)围绕Hadoop大数据处理框架展开,旨在深入介绍Hadoop生态系统的开发技术及应用。2)结合理论与实践,通过丰富的案例和实例帮助读者更好地理解与运用Hadoop技术。3)以简明易懂的语言解释复杂的技术概念,使得初学者也能够轻松入门。4)着重介绍实践和实用技巧,帮助读者在实际项目中更高效地应用Hadoop技术。5)配套提供电子课件、习题答案、教学大纲、源代码、试卷。
|
內容簡介: |
本书围绕Hadoop大数据处理框架展开,旨在深入介绍Hadoop生态系统的开发技术及应用。本书内容涵盖Hadoop基础知识,MapReduce编程模型、HDFS文件系统、YARN资源管理器等关键技术,以及Hadoop集群的搭建、优化和调试方法。此外,本书还重点讲解了Hadoop生态中常用采集组件(如Sqoop、Flume等)的开发与整合技术,帮助读者全面掌握大数据处理的流程和方法。本书将理论与实践相结合,通过丰富的案例和实例帮助读者更好地理解和运用Hadoop技术。本书既适合作为高校数据科学与大数据技术、软件工程及相关专业的教材,也适合作为从事大数据开发与处理工作的技术人员的参考书籍。无论是初学者还是有一定经验的开发者,都能从本书中获得对Hadoop技术更深入的了解和实际操作经验,提升在实际项目中应用Hadoop技术解决实际问题的能力。
|
關於作者: |
刘月峰,内蒙古科技大学副教授,博士。作为系主任和专业负责人申报并获批数据科学与大数据技术新专业,联合企业开展校企合作专业共建。在学院领导下参与建设并成功获批内蒙古自治区级产业学院--数智产业学院。系统讲授4门本科生课程和3门研究生课程,学生及督导评教优秀;作为课程负责人,获批2门内蒙古自治区一流课程。以第一主编编著出版教材1部,并获批内蒙古自治区规划教材。作为计算机学科人工智能应用方向带头人,形成了“人工智能技术及应用”的稳定研究方向,主持国家级、自治区级等纵向科研项目7项,横向课题2项,主持教学研究项目6项。以第一作者发表科研教研论文40余篇,其中SCI高水平论文12篇、EI收录20余篇,申请国家发明专利12项,授权9项,出版专著一部。
|
目錄:
|
前言第1章 初识Hadoop 11.1 大数据概述 11.1.1 大数据的起源 11.1.2 大数据的概念 21.1.3 大数据的基本处理流程 41.1.4 大数据技术体系结构 51.1.5 大数据行业应用 61.1.6 大数据与云计算、物联网的关系 61.2 Hadoop起源及发展历史 81.2.1 Hadoop的概念 81.2.2 Hadoop的起源 81.2.3 Hadoop发展简史 91.3 Hadoop的设计思想和特性 91.3.1 Hadoop的设计思想 91.3.2 Hadoop的特性 91.4 Hadoop的体系结构 101.4.1 Hadoop 1.x 101.4.2 Hadoop 2.x 101.4.3 Hadoop 3.x 101.5 Hadoop的生态系统 111.6 Hadoop的发行版与下载 121.6.1 Apache Hadoop发行版 121.6.2 Cloudera 131.6.3 Hortonworks 131.6.4 FusionInsight 141.6.5 Hadoop版本选择依据 151.7 习题 15第2章 Hadoop分布式文件系统 162.1 Hadoop伪分布式安装和配置 162.1.1 安装前准备 162.1.2 Hadoop安装 182.1.3 环境测试 212.2 HDFS设计思想 222.2.1 大数据分布式文件系统 222.2.2 HDFS角色 252.2.3 HDFS架构思想 262.3 Hadoop常用操作命令 272.3.1 目录与文件操作 272.3.2 本地与集群操作、集群内操作 282.3.3 hdfs dfsadmin命令 292.4 Java实现HDFS操作 302.4.1 HDFS连接操作 302.4.2 实现目录创建 312.4.3 实现上传文件 312.4.4 实现文件列表查看功能 322.4.5 实现目录删除 332.4.6 实现资源回收 342.5 习题 35第3章 YARN原理与架构 363.1 YARN原理与组件构成 363.1.1 YARN概述 363.1.2 YARN整体架构 383.1.3 YARN与HDFS的关系 413.1.4 YARN组件工作流程 423.2 YARN与MapReduce V1 443.2.1 MapReduce V1简介 443.2.2 YARN对比MapReduce V1 453.3 YARN任务调度机制 463.3.1 YARN任务调度概述 463.3.2 YARN先进先出调度器 473.3.3 YARN容量调度器 473.3.4 YARN公平调度器 513.3.5 容量调度器和公平调度器的异同 533.4 习题 54第4章 MapReduce初体验 554.1 MapReduce概述 554.1.1 MapReduce简介 554.1.2 MapReduce编程模型 604.1.3 MapReduce与HDFS的关系 634.2 Hadoop官方案例体验 654.2.1 Hadoop案例介绍 654.2.2 WordCount案例体验 664.2.3 WordCount案例执行流程说明 724.3 案例:编程实现WordCount 734.3.1 MapReduce编程规范 734.3.2 MapReduce编程实现 734.3.3 MapReduce程序执行 764.3.4 Hadoop序列化概述 774.4 习题 79第5章 MapReduce应用开发 805.1 MapReduce编程 805.1.1 MapReduce应用开发概述 805.1.2 MapReduce应用本地测试 955.1.3 MapReduce应用自定义日志 1005.1.4 MapReduce编程指南 1015.2 MapReduce运行模式 1035.2.1 MapReduce运行模式介绍 1035.2.2 案例:文本词频统计应用的运行模式测试 1045.3 MRUnit单元测试 1075.3.1 MRUnit介绍 1075.3.2 案例:文本词频统计应用的MRUnit单元测试 1075.4 习题 115第6章 MapReduce工作机制 1166.1 MapReduce程序运行机制 1166.1.1 作业提交 1176.1.2 作业初始化 1186.1.3 任务分配 1186.1.4 任务执行 1196.1.5 进度和状态更新 1196.1.6 作业完成 1206.2 MapReduce编程组件 1206.2.1 MapReduce编程流程 1206.2.2 InputFormat组件 1226.2.3 Mapper组件 1256.2.4 Shuffle组件 1266.2.5 Reducer组件 1316.2.6 OutputFormat组件 1316.3 案例:MapReduce开发经典案例 1326.3.1 案例:数据去重MapReduce程序开发 1326.3.2 案例:计算平均值MapReduce程序开发 1356.3.3 案例:数据排序MapReduce程序开发 1406.4 习题 140第7章 Hadoop的I/O操作 1417.1 Hadoop I/O概述 1417.1.1 Hadoop I/O操作的基本概念 1417.1.2 Hadoop I/O操作流程 1417.1.3 常用的InputFormat和OutputFormat 1427.1.4 示例代码 1427.2 数据完整性 1427.2.1 数据完整性概述 1427.2.2 HDFS数据完整性校验 1457.3 MapReduce数据压缩 1467.3.1 MapReduce数据压缩概述 1467.3.2 编程实现数据压缩 1487.4 序列化机制 1507.4.1 序列化概述 1507.4.2 常用的Hadoop序列化框架 1517.4.3 Hadoop序列化格式Writable 1527.5 案例:序列化编程实战 1587.6 案例:数据完整性实战 1627.7 案例:编程实现数据压缩 1647.8 习题 165第8章 MapReduce类型与格式 1668.1 MapReduce类型 1668.1.1 默认的MapReduce作业 1668.1.2 验证MapReduce作业默认数据类型 1688.1.3 显式地把作业环境参数设置为默认值 1698.2 MapReduce输入格式 1718.2.1 输入分片与记录 1718.2.2 文本输入格式 1738.2.3 二进制输入格式 1778.2.4 多文件输入 1788.2.5 数据库输入 1798.3 MapReduce输出格式 1818.3.1 输出格式分类 1818.3.2 文本输出 1828.3.3 二进制输出 1838.3.4 多文件输出 1858.3.5 延迟输出 1878.4 案例:SequenceFileInputFormat格式文件读取 1888.5 案例:统计结果的多文件输出 1908.6 习题 192第9章 MapReduce高级操作 1939.1 计数器 1939.1.1 计数器概述 1939.1.2 内置计数器 1949.1.3 自定义计数器 1979.2 排序 1999.2.1 排序概述 1999.2.2 部分排序 2009.2.3 完全排序 2039.2.4 辅助排序 2049.2.5 倒排索引 2079.3 数据倾斜解决 2099.4 连接 2099.4.1 连接概述 2099.4.2 Map端连接 2109.4.3 Reduce端连接 2129.5 边数据分布 2149.5.1 边数据分布概述 2149.5.2 分布式缓存 2159.6 案例:统计缺失记录和单词质量异常 2179.7 案例:统计分析商品和订单综合信息 2209.8 习题 223第10章 构建Hadoop集群 22410.1 集群规划与设计 22410.1.1 部署方式和配置 22410.1.2 硬件准备 22510.2 操作系统安装与配置 22510.3 集群的构建和部署 22710.3.1 集群主节点配置 22710.3.2 集群子节点配置 23710.3.3 启动Hadoop集群 24010.4 集群运行和测试 24110.4.1 测试WordCount词频统计 24110.4.2 使用TestDFSIO来评测HDFS 24210.5 习题 244第11章 Hadoop集群管理 24511.1 HDFS文件管理 24511.1.1 永久性数据结构 24511.1.2 安全模式 24811.1.3 日志审计 24911.2 集群监控 25111.2.1 通过Web监控HDFS集群 25111.2.2 验证文件和文件系统状态的命令 25611.3 集群维护 25811.3.1 规划和准备 25811.3.2 添加集群节点 25811.3.3 删除集群节点 25911.3.4 常见问题处理 26011.4 习题 262第12章 Avro数据类型和模型 26312.1 Avro数据类型 26312.1.1 Avro概述 26312.1.2 Avro复杂数据类型 26412.2 Avro数据文件 26412.2.1 Avro数据文件概述 26412.2.2 Avro数据文件在大数据处理中的应用 26612.2.3 Avro序列化和反序列化 26712.3 Avro MapReduce编程 26912.3.1 Avro格式转换案例 26912.3.2 Avro MapReduce Max案例 27012.3.3 Avro MapReduce排序案例 27212.4 案例:实现Avro文件的序列化和反序列化 27512.4.1 定义数据类 27512.4.2 序列化和反序列化 27612.4.3 运行程序 27712.5 案例:统计分析Avro格式文件中的信息 27712.5.1 准备数据 27712.5.2 创建Spark应用程序 27812.5.3 运行Spark应用程序 27812.6 Avro的新功能和改进 27912.7 习题 279第13章 Parquet数据格式 28013.1 Parquet数据类型及文件模型 28013.1.1 Parquet文件格式 28013.1.2 Parquet文件在磁盘上的分布 28213.1.3 Parquet数据类型 28313.1.4 深入解析Parquet文件Schema语法结构 28413.1.5 Parquet的数据编码和压缩 28613.2 Parquet文件的读写操作 28613.2.1 Parquet文件写操作 28613.2.2 Parquet文件读操作 28813.3 Parquet与大数据处理框架的集成 28913.3.1 Parquet在Apache Hadoop生态系统中的应用 28913.3.2 Parquet与Apache Spark、Apache Hive等工具的集成 29013.3.3 Parquet数据格式在数据湖架构中的角色 29013.4 案例:员工平均薪水统计分析 29113.5 案例:实现Spark对Parquet文件的分析操作 29213.6 案例:使用Hive对Parquet文件进行统计 29413.7 习题 295第14章 Flume日志收集 29614.1 Flume安装与配置 29614.2 Flume各组件使用示例 30314.2.1 Flume的Source组件 30314.2.2 Flume的Channel组件 30514.2.3 Flume的Sink组件 30614.3 Flume采集日志示例 30914.4 Flume和Sqoop对比 31214.5 Flume事务与可靠性 31314.5.1 Flume事务机制 31314.5.2 Flume的At-least-once提交方式 31414.5.3 Flume的批处理机制 31514.6 Flume与应用程序集成 31514.6.1 Flume拦截器概述 31514.6.2 Flume拦截器分类 31514.6.3 使用静态拦截器实现多个节点日志数据收集 31614.6.4 自定义Flume拦截器 31914.7 习题 321第15章 Sqoop数据迁移 32215.1 Sqoop概述 32215.1.1 理解Sqoop 32215.1.2 Sqoop架构 32215.2 Sqoop安装与配置 32315.2.1 安装依赖环境 32315.2.2 Sqoop安装 32415.2.3 Sqoop首次启用 32415.3 Sqoop的数据迁移 32515.3.1 导入数据到Hadoop 32515.3.2 导出数据到关系数据库 32615.3.3 Sqoop命令行工具详解 32715.4 高级功能 32815.4.1 增量导入与导出 32815.4.2 并行导入与导出 33015.4.3 自定义连接器 33115.5 Sqoop性能优化 33215.5.1 Sqoop性能调优策略 33215.5.2 数据传输最佳实践 33315.6 Sqoop故障排除 33415.6.1 常见问题与解决方案 33415.6.2 日志分析与调试技巧 33515.7 Sqoop未来展望 33615.7.1 Sqoop的发展趋势 33615.7.2 Sqoop在大数据生态系统中的地位 33615.8 习题 337参考文献 338
|
內容試閱:
|
在数据驱动的时代,海量数据的处理与分析成为企业和组织面临的一大挑战。Hadoop作为一个开源的分布式存储与计算平台,为处理大规模数据集提供了一种可靠、可扩展的解决方案。本书旨在为读者提供全面的学习路径,从 Hadoop 的基础概念到实际的应用开发,再到集群的搭建与管理,逐步深入探讨 Hadoop 生态系统的各个方面。本书通过理论与实践相结合的方式,帮助读者构建起对Hadoop技术栈的全面理解,并通过实际案例,帮助读者掌握使用 Hadoop 进行大数据开发与处理的核心技能。无论是大数据领域的新手,还是希望深化现有知识的专业人士,本书都将是你宝贵的学习资源和参考手册。通过系统而深入的学习,读者将能够掌握 Hadoop 技术栈的核心概念、基本原理和实际应用技能,为在大数据领域的职业发展打下坚实的基础。为了更好地为读者所学习和应用,本书具有如下特点:①系统性与全面性。本书涵盖了 Hadoop 生态系统的各个方面,包括基础架构、核心组件、数据存储、数据处理等,确保读者可以全面了解 Hadoop 技术栈。②实践性与案例驱动。本书注重通过实际案例来解释概念和技术,以实践驱动学习,帮助读者更好地理解和掌握Hadoop 大数据开发技术。③深入浅出的讲解风格。本书以简明易懂的语言解释复杂的技术概念,避免使用过多专业术语,使得初学者也能够轻松入门。④重视最佳实践和实用技巧。本书不仅介绍了基础知识,还着重介绍了最佳实践和实用技巧,帮助读者在实际项目中更高效地应用Hadoop技术。⑤与时俱进。本书的编者及时更新内容,跟踪Hadoop生态系统的新发展,为读者提供新的、实用的知识。为了帮助读者更好地学习和应用大数据开发技术,本书将逐步引导读者了解 Hadoop 的架构、核心组件和应用案例,帮助读者掌握大数据开发技术数据处理的核心要点和技能。在第 1 章中,详细介绍了Hadoop的历史背景、核心概念及其在大数据处理中的地位和作用。通过第 1 章的学习,读者将建立起对大数据发展历史和典型应用场景的理解,为后续章节的学习打下坚实的基础。在第 2 章和第3章中,深入探讨了 HDFS 的设计理念、架构组成、工作机制以及如何在HDFS上进行数据的存储与管理;剖析了 Hadoop的资源管理器YARN,阐述其设计目标、核心组件及资源调度原理。通过这两章的学习,读者将理解HDFS分布式文件存储的存储特点和实现,为后期构建大数据中心做好技术准备。第4章到第9章重点介绍MapReduce编程模型的特点、开发MapReduce程序,包括环境搭建、API使用、调试优化等;深入分析MapReduce的运行机制,包括作业调度、任务执行、数据分区、高级操作等核心过程。通过这些内容的学习,读者将对MapReduce编程模型和开发有更深入的理解,为后续章节的学习奠定坚实的基础,并能够更好地编写和调优MapReduce应用程序。在第10章和第11章,侧重于介绍Hadoop集群的构建和管理,指导读者搭建自己的Hadoop集群,包括硬件选择、软件配置和集群部署,着重讲解集群的维护、监控和性能优化等日常管理任务。第12章和第13章重点介绍了Avro数据序列化系统,强调其在Hadoop中处理复杂数据结构的能力;探讨了 Parquet 列式存储格式在大数据分析中的应用,特别是在提高性能方面的优势。通过这两章的学习,读者将熟悉数据的不同数据结构和数据处理模式,并掌握在实际场景中应用MapReduce的技巧和最佳实践。第 14 章和第 15 章是本书的扩展章节,侧重于介绍日志收集与数据迁移,详细讲述了使用Flume进行高效的日志数据收集、聚合和传输的方法;介绍了Sqoop工具在Hadoop与传统数据库系统间迁移数据的方法。通过这些内容的学习,读者将熟悉大数据体系下日志收集的实现,以及大数据技术中如何对数据处理和分析的结果进行迁移操作,从而掌握实际场景中的实现方法。本书提供丰富的示例和实例,旨在帮助读者在实践中掌握Hadoop的应用技巧和最佳实践。不论您是初学者还是有经验的开发人员,本书都将为您提供充分的指导和实践经验。您可以通过实际的示例代码,深入了解Hadoop的内部工作原理并掌握实际应用技巧。所有示例和实例都已在 Hadoop3.2.1 版本下调试和运行验证,确保其可行性和有效性。从应用程序的设计到部署和监控,读者可以按照书中的内容进行实施,以更好地理解和应用所学知识。为了巩固所学,每章后都附有习题,供读者进行练习和思考,帮助读者加深对Hadoop的理解并提升实际应用能力。本书由刘月峰编写第6、7、8章,王静宇编写第3、4、5章,周李涌编写第14、15章,李灵芳编写第1、2章,祝铁芳编写第9 章,伦金龙编写第10、11章,穆文龙编写第12、13章,全书由刘月峰负责统稿。荆明明和肖莉娟参与了本书的部分内容整理工作。虽然本书在编写时已尽力保证准确性和完整性,但由于时间仓促,难免存在不妥之处。恳请读者提出宝贵的意见和反馈,以帮助改进和完善本书。
|
|