资源名称:Hadoop硬实战
内容简介:
Hadoop 是一个开源的MapReduce 平台,设计运行在大型分布式集群环境中,为开发者进行数据存储、管理以及分析提供便利的方法。《Hadoop硬实战》详细讲解了Hadoop 和MapReduce 的基本概念,并收集了85 个问题及其解决方案。在关键问题领域对基础概念和实战方法做了权衡。
《Hadoop硬实战》适合使用Hadoop 进行数据存储、管理和分析的技术人员使用。
资源目录:
前言 …………………………………………………………………………………………………XV
致谢 ………………………………………………………………………………………………XVII
关于本书 ……………………………………………………………………………………….. XIX
第1 部分 背景和基本原理………………………………………..1
1 跳跃中的Hadoop…………………………………………………………………………… 3
1.1 什么是Hadoop ……………………………………………………………………………………. 4
1.1.1 Hadoop 的核心组件 …………………………………………………………………. 5
1.1.2 Hadoop 生态圈 ………………………………………………………………………… 9
1.1.3 物理架构 ……………………………………………………………………………….. 10
1.1.4 谁在使用Hadoop …………………………………………………………………… 12
1.1.5 Hadoop 的局限性 …………………………………………………………………… 13
1.2 运行Hadoop ……………………………………………………………………………………… 14
1.2.1 下载并安装Hadoop ……………………………………………………………….. 14
1.2.2 Hadoop 的配置 ………………………………………………………………………. 15
1.2.3 CLI 基本命令 …………………………………………………………………………. 17
1.2.4 运行MapReduce 作业 …………………………………………………………….. 18
1.3 本章小结 ………………………………………………………………………………………….. 24
第2 部分 数据逻辑………………………………………………. 25
2 将数据导入导出Hadoop…………………………………………………27
2.1 导入导出的关键要素 ………………………………………………………………………… 29
2.2 将数据导入Hadoop …………………………………………………………………………… 30
2.2.1 将日志文件导入Hadoop ………………………………………………………… 31
技术点1 使用Flume 将系统日志文件导入HDFS ……………………….. 33
2.2.2 导入导出半结构化和二进制文件 ……………………………………………. 42
技术点2 自动复制文件到HDFS 的机制 …………………………………….. 43
技术点3 使用Oozie 定期执行数据导入活动 ………………………………. 48
2.2.3 从数据库中拉数据 …………………………………………………………………. 52
技术点4 使用MapReduce 将数据导入数据库 …………………………….. 53
技术点5 使用Sqoop 从MySQL 导入数据 ………………………………….. 58
2.2.4 HBase ……………………………………………………………………………………. 68
技术点6 HBase 导入HDFS ……………………………………………………….. 68
技术点7 将HBase 作为MapReduce 的数据源 ……………………………. 70
2.3 将数据导出Hadoop …………………………………………………………………………… 73
2.3.1 将数据导入本地文件系统 ………………………………………………………. 73
技术点8 自动复制HDFS 中的文件 ……………………………………………. 73
2.3.2 数据库 …………………………………………………………………………………… 74
技术点9 使用Sqoop 将数据导入MySQL …………………………………… 75
2.3.3 Hbase …………………………………………………………………………………….. 78
技术点10 将数据从HDFS 导入HBase ………………………………………. 78
技术点11 使用HBase 作为MapReduce 的数据接收器 ……………….. 79
2.4 本章小结 ………………………………………………………………………………………….. 81
3 数据序列化——处理文本文件及其他格式的文件……………………83
3.1 了解MapReduce 中的输入和输出 ……………………………………………………… 84
3.1.1 数据输入 ……………………………………………………………………………….. 85
3.1.2 数据输出 ……………………………………………………………………………….. 89
3.2 处理常见的序列化格式 …………………………………………………………………….. 91
3.2.1 XML ……………………………………………………………………………………… 91
技术点12 MapReduce 和XML …………………………………………………… 91
3.2.2 JSON ……………………………………………………………………………………… 95
技术点13 MapReduce 和JSON ………………………………………………….. 95
3.3 大数据的序列化格式 ………………………………………………………………………… 99
3.3.1 比较SequenceFiles、Protocol Buffers、Thrift 和 Avro ……………… 99
3.3.2 Sequence File ………………………………………………………………………… 101
技术点14 处理SequenceFile …………………………………………………….. 103
3.3.3 Protocol Buffers …………………………………………………………………….. 109
技术点15 整合Protocol Buffers 和MapReduce …………………………. 110
3.3.4 Thrift ……………………………………………………………………………………. 117
技术点16 使用Thrift ……………………………………………………………….. 117
3.3.5 Avro …………………………………………………………………………………….. 119
技术点17 MapReduce 的下一代数据序列化技术 ………………………. 120
3.4 自定义文件格式 ……………………………………………………………………………… 127
3.4.1 输入输出格式 ………………………………………………………………………. 127
技术点18 输入和输出格式为CSV 的文件 ……………………………….. 128
3.4.2 output committing 的重要性 ………………………………………………….. 136
3.5 本章小结 ………………………………………………………………………………………… 136
第3 部分 大数据模式…………………………………………..137
.
.
第4 部分 数据科学……………………………………………….251
.
第5 部分 驯服大象………………………………………………333
.
附录A 相关技术…………………………………………………………… 443
附录B Hadoop 内置的数据导入导出工具……………………………. 471
附录C HDFS 解剖……………………………………………………….. 486
附录D 优化MapReduce 合并框架…………………………………….. 493
索引……………………………………………………………………………… 503
资源截图: