Hadoop实战手册
出版时间:2014
内容简介
这是一本Hadoop实用手册,主要针对实际问题给出相应的解决方案。《Hadoop实战手册》特色是以实践结合理论分析,手把手教读者如何操作,并且对每个操作都做详细的解释,对一些重要的知识点也做了必要的拓展。全书共包括3个部分,第一部分为基础篇,主要介绍Hadoop数据导入导出、HDFS的概述、Pig与Hive的使用、ETL和简单的数据处理,还介绍了MapReduce的调试方式;第二部分为数据分析高级篇,主要介绍高级聚合、大数据分析等技巧;第三部分为系统管理篇,主要介绍Hadoop的部署的各种模式、添加新节点、退役节点、快速恢复、MapReduce调优等。《Hadoop实战手册》适合各个层次的Hadoop技术人员阅读。通过阅读《Hadoop实战手册》,Hadoop初学者可以使用Hadoop来进行数据处理,Hadoop工程师或者数据挖掘工程师可以解决复杂的业务分析,Hadoop系统管理员可以更好地进行日常运维。《Hadoop实战手册》也可作为一本Hadoop技术手册,针对要解决的相关问题,在工作中随时查阅。
目 录
第1章 Hadoop分布式文件系统——导入和导出数据 1
1.1 介绍 1
1.2 使用Hadoop shell命令导入和导出数据到HDFS 2
1.3 使用distcp实现集群间数据复制 7
1.4 使用Sqoop从MySQL数据库导入数据到HDFS 9
1.5 使用Sqoop从HDFS导出数据到MySQL 12
1.6 配置Sqoop以支持SQL Server 15
1.7 从HDFS导出数据到MongoDB 17
1.8 从MongoDB导入数据到HDFS 20
1.9 使用Pig从HDFS导出数据到MongoDB 23
1.10 在Greenplum外部表中使用HDFS 24
1.11 利用Flume加载数据到HDFS中 26
第2章 HDFS 28
2.1 介绍 28
2.2 读写HDFS数据 29
2.3 使用LZO压缩数据 31
2.4 读写序列化文件数据 34
2.5 使用Avro序列化数据 37
2.6 使用Thrift序列化数据 41
2.7 使用Protocol Buffers序列化数据 44
2.8 设置HDFS备份因子 48
2.9 设置HDFS块大小 49
第3章 抽取和转换数据 51
3.1 介绍 51
3.2 使用MapReduce将Apache日志转换为TSV格式 52
3.3 使用Apache Pig过滤网络服务器日志中的爬虫访问量 54
3.4 使用Apache Pig根据时间戳对网络服务器日志数据排序 57
3.5 使用Apache Pig对网络服务器日志进行会话分析 59
3.6 通过Python扩展Apache Pig的功能 61
3.7 使用MapReduce及二次排序计算页面访问量 62
3.8 使用Hive和Python清洗、转换地理事件数据 67
3.9 使用Python和Hadoop Streaming执行时间序列分析 71
3.10 在MapReduce中利用MultipleOutputs输出多个文件 75
3.11 创建用户自定义的Hadoop Writable及InputFormat读取地理事件数据 78
第4章 使用Hive、Pig和MapReduce处理常见的任务 85
4.1 介绍 85
4.2 使用Hive将HDFS中的网络日志数据映射为外部表 86
4.3 使用Hive动态地为网络日志查询结果创建Hive表 87
4.4 利用Hive字符串UDF拼接网络日志数据的各个字段 89
4.5 使用Hive截取网络日志的IP字段并确定其对应的国家 92
4.6 使用MapReduce对新闻档案数据生成n-gram 94
4.7 通过MapReduce使用分布式缓存查找新闻档案数据中包含关键词的行 98
4.8 使用Pig加载一个表并执行包含GROUP BY的SELECT操作 102
第5章 高级连接操作 104
5.1 介绍 104
5.2 使用MapReduce对数据进行连接 104
5.3 使用Apache Pig对数据进行复制连接 108
5.4 使用Apache Pig对有序数据进行归并连接 110
5.5 使用Apache Pig对倾斜数据进行倾斜连接 111
5.6 在Apache Hive中通过map端连接对地理事件进行分析 113
5.7 在Apache Hive通过优化的全外连接分析地理事件数据 115
5.8 使用外部键值存储(Redis)连接数据 118
第6章 大数据分析 123
6.1 介绍 123
6.2 使用MapReduce和Combiner统计网络日志数据集中的独立IP数 124
6.3 运用Hive日期UDF对地理事件数据集中的时间日期进行转换与排序 129
6.4 使用Hive创建基于地理事件数据的每月死亡报告 131
6.5 实现Hive用户自定义UDF用于确认地理事件数据的来源可靠性 133
6.6 使用Hive的map/reduce操作以及Python标记最长的无暴力发生的时间区间 136
6.7 使用Pig计算Audioscrobbler数据集中艺术家之间的余弦相似度 141
6.8 使用Pig以及datafu剔除Audioscrobbler数据集中的离群值 145
第7章 高级大数据分析 147
7.1 介绍 147
7.2 使用Apache Giraph计算PageRank 147
7.3 使用Apache Giraph计算单源最短路径 150
7.4 使用Apache Giraph执行分布式宽度优先搜索 158
7.5 使用Apache Mahout计算协同过滤 165
7.6 使用Apache Mahout进行聚类 168
7.7 使用Apache Mahout进行情感分类 171
第8章 调试 174
8.1 介绍 174
8.2 在MapReduce中使用Counters监测异常记录 174
8.3 使用MRUnit开发和测试MapReduce 177
8.4 本地模式下开发和测试MapReduce 179
8.5 运行MapReduce作业跳过异常记录 182
8.6 在流计算作业中使用Counters 184
8.7 更改任务状态显示调试信息 185
8.8 使用illustrate调试Pig作业 187
第9章 系统管理 189
9.1 介绍 189
9.2 在伪分布模式下启动Hadoop 189
9.3 在分布式模式下启动Hadoop 192
9.4 添加一个新节点 195
9.5 节点安全退役 197
9.6 NameNode故障恢复 198
9.7 使用Ganglia监控集群 199
9.8 MapReduce作业参数调优 201
第10章 使用Apache Accumulo进行持久化 204
10.1 介绍 204
10.2 在Accumulo中设计行键存储地理事件 205
10.3 使用MapReduce批量导入地理事件数据到Accumulo 213
10.4 设置自定义字段约束Accumulo中的地理事件数据 220
10.5 使用正则过滤器限制查询结果 225
10.6 使用SumCombiner计算同一个键的不同版本的死亡数总和 228
10.7 使用Accumulo实行单元级安全的扫描 232
10.8 使用MapReduce聚集Accumulo中的消息源 237