Hadoop学习经典教程,中文版,高清PDF,有完整目录和书签。 目 录 第1章 初识hadoop 1 1.1 数据!数据 1 1.2 数据的存储和分析 3 1.3 相较于其他系统 4 1.3.1 关系型数据库管理系统 5 1.3.2 网格计算 6 1.3.3 志愿计算 8 1.4 hadoop发展简史 9 1.5 apache hadoop项目 12 第2章 mapreduce简介 15 2.1 一个气象数据集 15 2.2 使用unix tools来分析数据 17 2.3 使用hadoop进行数据分析 19 2.3.1 map和reduce 19 2.3.2 java mapreduce 20 2.4 分布化 30 2.4.1 数据流 30 2.4.2 具体定义一个combiner 34 2.4.3 运行分布式mapreduce作业 35 .2.5 hadoop流 35 2.5.1 ruby语言 36 2.5.2 python 38 2.6 hadoop管道 40 第3章 hadoop分布式文件系统 44 3.1 hdfs的设计 44 3.2 hdfs的概念 45 3.2.1 块 45 3.2.2 名称节点与数据节点 47 3.3 命令行接口 48 3.4 hadoop文件系统 50 3.5 java接口 54 3.5.1 从hadoop url中读取数据 54 3.5.2 使用filesystem api读取数据 56 3.5.3 写入数据 59 3.5.4 目录 62 3.5.5 查询文件系统 62 3.5.6 删除数据 67 3.6 数据流 68 3.6.1 文件读取剖析 68 3.6.2 文件写入剖析 71 3.6.3 一致模型 73 3.7 通过distcp进行并行复制 75 3.9 hadoop归档文件 77 3.9.1 使用hadoop archives 77 3.8.2 不足 79 第4章 hadoop的i/o 80 4.1 数据完整性 80 4.1.1 hdfs的数据完整性 81 4.1.2 本地文件系统 82 4.1.3 checksumfilesystem 82 4.2 压缩 83 4.2.1 编码/解码器 84 4.2.2 压缩和输入分割 89 4.2.3 在mapreduce中使用压缩 90 4.3 序列化 92 4.3.1 writable接口 93 4.3.2 writeable类 96 4.3.3 实现自定义的writable 104 4.3.4 序列化框架 109 4.4 基于文件的数据结构 111 4.4.1 sequencefile类 112 4.4.2 mapfile 120 第5章 mapreduce应用开发 125 5.1 api的配置 126 5.1.1 合并资源 127 5.1.2 各种扩展形式 128 5.2 配置开发环境 128 5.2.1 配置的管理 129 5.2.2 genericoptionsparser,tool和toolrunner 131 5.3 编写单元测试 134 5.3.1 mapper 135 5.3.2 reducer 137 5.4 本地运行测试数据 138 5.4.1 在本地作业运行器上运行作业 139 5.4.2 测试驱动程序 142 5.5 在集群上运行 144 5.5.1 打包 144 5.5.2 启动作业 144 5.5.3 mapreduce网络用户界面 146 5.5.4 获取结果 150 5.5.4 调试作业 151 5.5.5 使用远程调试器 157 5.6 作业调优 159 5.7 mapreduce的工作流 162 5.7.1 将问题分解成mapreduce作业 163 5.7.2 运行独立的作业 164 第6章 mapreduce的工作原理 166 6.1 运行mapreduce作业 166 6.1.1 提交作业 166 6.1.2 作业的初始化 168 6.1.3 任务的分配 168 6.1.4 任务的执行 169 6.1.5 进度和状态的更新 170 6.1.6 作业的完成 171 6.2 失败 172 6.2.1 任务失败 172 6.2.2 tasktracker失败 174 6.2.3 jobtracker失败 174 6.3 作业的调度 174 6.4 shuffle和排序 175 6.5.1 map端 176 6.5.2 reduce端 177 6.5.3 配置的调整 178 6.6 任务的执行 181 6.6.1 推测式执行 181 6.6.2 任务jvm重用 183 6.6.3 跳过坏记录 184 6.6.4 任务执行环境 185 第7章 mapreduce的类型与格式 188 7.1 mapreduce类型 188 7.2 输入格式 198 7.2.1 输入分片与记录 198 7.2.2 文本输入 210 7.2.3 二进制输入 214 7.2.4 多种输入 215 7.2.5 数据库格式的输入/输出 216 7.3 输出格式 217 7.3.1 文本输出 217 7.3.2 二进制输出 218 7.3.3 多个输出 218 7.3.4 延迟输出 226 7.3.5 数据库输出 226 第8章 mapreduce 特性 227 8.1 计数器 227 8.1.1 内置计数器 227 8.1.2 用户自定义java计数器 230 8.1.3 用户自定义流计数器 235 8.2 排序 235 8.2.1 准备 235 8.2.2 部分排序 237 8.2.3 全局排序 242 8.2.4 二次排序 246 8.3 联接 252 8.3.1 map端联接 253 8.3.2 reduce端联接 254 8.4 次要数据的分布 258 8.4.1 使用作业配置 258 8.4.2 分布式缓存 258 8.5 mapreduce的类库 263 第9章 hadoop集群的安装 264 9.1 集群说明 264 9.2 集群的建立和安装 268 9.2.1 安装java 268 9.2.2 创建hadoop用户 269 9.2.3 安装hadoop 269 9.2.4 测试安装 270 9.3 ssh配置 270 9.4 hadoop配置 271 9.4.1 配置管理 271 9.4.2 环境设置 274 9.4.3 重要的hadoop后台程序属性 278 9.4.4 hadoop后台程序地址和端口 283 9.4.5 其他hadoop属性 284 9.5 安装之后 286 9.6 hadoop集群基准测试 286 9.6.1 hadoop基准测试 287 9.6.2 用户作业 290 9.7 云计算中的hadoop 290 第10章 hadoop的管理 293 10.1 hdfs 293 10.1.1 持久化的数据结构 293 10.1.2 安全模式 298 10.1.3 审计日志 300 10.1.4 工具 300 10.2 监控 306 10.2.1 日志 306 10.2.2 度量 307 10.2.3 java 管理扩展 310 10.3 维护 313 10.3.1 例行管理程序 313 10.3.2 委托节点和撤消节点 314 10.3.3 升级 317 第11章 pig简介 321 11.1 安装和运行pig 322 11.1.1 执行类型 322 11.1.2 运行pig程序 324 11.1.3 grunt 324 11.1.4 pig latin编辑器 325 11.2 实例 325 11.3 与数据库比较 329 11.4 pig latin 330 11.4.1 结构 330 11.4.2 语句 331 11.4.3 表达式 334 11.4.4 类型 335 11.4.5 模式 337 11.4.6 函数 341 11.5 用户定义函数 343 11.5.1 过滤udf 343 11.5.2 求值udf 347 11.5.3 加载udf 348 11.6 数据处理操作符 353 11.6.1 加载和存储数据 353 11.6.2 过滤数据 353 11.6.3 数据的分组和联接 356 11.6.4 数据的排序 361 11.6.5 数据的合并和分割 362 11.7 pig实践提示与技巧 363 11.7.1 并行 363 11.7.2 参数替换 364 第12章 hbase简介 366 12.1 hbase基础 366 12.2 概念 367 12.2.1 数据模型速览 367 12.2.2 实现 368 12.3 安装 371 12.4 客户端 374 12.4.1 java 374 12.4.2 rest和thrift 376 12.5 示例 377 12.5.1 架构 378 12.5.2 加载数据 379 12.5.3. web查询 382 12.6 hbase与rdbms的比较 385 12.6.1 成功的服务 386 12.6.2 hbase 387 12.6.3 用例:streamy.com的hbase 388 12.7 实践 390 12.7.1 版本 390 12.7.2 hbase和hdfs的爱与恨 390 12.7.3 用户界面 392 12.7.4 度量 392 12.7.5 架构设计 392 第13章 zookeeper简介 394 13.1 zookeeper的安装和运行 395 13.2 范例 396 13.2.1 zookeeper中的组成员制 397 13.2.2 创建组 397 13.2.3 加入组 400 13.2.4 列出组成员 401 13.2.5 删除一个组 404 13.3 zookeeper服务 405 13.3.1 数据模型 405 13.3.2 操作 407 13.3.3 执行 411 13.3.4 一致性 412 13.3.5 会话 414 13.3.6 状态 416 13.4 使用zookeeper建立应用程序 417 13.4.1 配置服务 417 13.4.2 可恢复的zookeeper应用 421 13.4.3 锁服务 425 13.4.4 更多分布式数据结构和协议 427 13.5 工业界中的zookeeper 428 13.5.1 恢复力及性能 428 13.5.2 配置 429 第14章 案例研究 431 14.1 hadoop在last.fm的应用 431 14.1.1 last.fm:社会音乐革命 431 14.1.2 使用hadoop生成排行榜 432 14.1.3 单曲统计程序 433 14.1.4 小结 440 14.2 hadoop和hive在facebook的应用 441 14.2.1 简介 441 14.2.2 hadoop在facebook的应用 441 14.2.3 虚拟案例研究 444 14.2.4 hive 446 14.2.5 存在的问题及未来的工作 450 14.3 hadoop在nutch搜索引擎 451 14.3.1 背景 451 14.3.2 数据结构 453 14.3.3 nutch中hadoop数据处理精选实例 455 14.3.4 小结 465 14.4 hadoop用于rackspace的日志处理 466 14.4.1 需求/存在的问题 466 14.4.2 简史 467 14.4.3 选择hadoop 467 14.4.4 收集和存储 467 14.4.5 日志的mapreduce 468 14.5 cascading项目 474 14.5.1 字段、元组和管道 475 14.5.2 操作 477 14.5.3 tap、sheme和flow 479 14.5.4 cascading实践 480 14.5.5 灵活性 483 14.5.6 hadoop和cascading在sharethis的应用 484 14.5.7 小结 487 14.6 apache hadoop的1 tb排序 488 附录a apache hadoop的安装 491 附录b cloudera的hadoop分发包 497 附录c 预备ncdc气象资料 502