展开全部

主编推荐语

由百度顶尖的Hadoop技术工程师撰写,是百度Hadoop技术实践经验的总结。

内容简介

这是一本技术深度与企业实践并重的著作。本书使用、实现原理、运维和开发4个方面对Hadoop的核心技术进行了深入的讲解:详细讲解了HDFS存储系统、MapReduce计算框架,以及HDFS的命令系统;结合源代码,深度分析了MapReduce、HDFS、Streaming、Pipes、Hadoop作业调度系统等重要技术和组件的架构设计、工作机制和实现原理;结合百度的实际生产环境,详细讲解了Hadoo。

目录

  • 版权信息
  • 前言
  • 基础篇
  • 第1章 认识Hadoop
  • 1.1 缘于搜索的小象
  • 1.1.1 Hadoop的身世
  • 1.1.2 Hadoop简介
  • 1.1.3 Hadoop发展简史
  • 1.2 大数据、Hadoop和云计算
  • 1.2.1 大数据
  • 1.2.2 大数据、Hadoop和云计算的关系
  • 1.3 设计思想与架构
  • 1.3.1 数据存储与切分
  • 1.3.2 MapReduce模型
  • 1.3.3 MPI和MapReduce
  • 1.4 国外Hadoop的应用现状
  • 1.5 国内Hadoop的应用现状
  • 1.6 Hadoop发行版
  • 1.6.1 Apache Hadoop
  • 1.6.2 Cloudera Hadoop
  • 1.6.3 Hortonworks Hadoop发行版
  • 1.6.4 MapR Hadoop发行版
  • 1.6.5 IBM Hadoop发行版
  • 1.6.6 Intel Hadoop发行版
  • 1.6.7 华为Hadoop发行版
  • 1.7 小结
  • 第2章 Hadoop使用之初体验
  • 2.1 搭建测试环境
  • 2.1.1 软件与准备
  • 2.1.2 安装与配置
  • 2.1.3 启动与停止
  • 2.2 算法分析与设计
  • 2.2.1 Map设计
  • 2.2.2 Reduce设计
  • 2.3 实现接口
  • 2.3.1 Java API实现
  • 2.3.2 Streaming接口实现
  • 2.3.3 Pipes接口实现
  • 2.4 编译
  • 2.4.1 基于Java API实现的编译
  • 2.4.2 基于Streaming实现的编译
  • 2.4.3 基于Pipes实现的编译
  • 2.5 提交作业
  • 2.5.1 基于Java API实现作业提交
  • 2.5.2 基于Streaming实现作业提交
  • 2.5.3 基于Pipes实现作业提交
  • 2.6 小结
  • 第3章 Hadoop存储系统
  • 3.1 基本概念
  • 3.1.1 NameNode
  • 3.1.2 DateNode
  • 3.1.3 客户端
  • 3.1.4 块
  • 3.2 HDFS的特性和目标
  • 3.2.1 HDFS的特性
  • 3.2.2 HDFS的目标
  • 3.3 HDFS架构
  • 3.3.1 Master/Slave架构
  • 3.3.2 NameNode和Secondary NameNode通信模型
  • 3.3.3 文件存取机制
  • 3.4 HDFS核心设计
  • 3.4.1 Block大小
  • 3.4.2 数据复制
  • 3.4.3 数据副本存放策略
  • 3.4.4 数据组织
  • 3.4.5 空间回收
  • 3.4.6 通信协议
  • 3.4.7 安全模式
  • 3.4.8 机架感知
  • 3.4.9 健壮性
  • 3.4.10 负载均衡
  • 3.4.11 升级和回滚机制
  • 3.5 HDFS权限管理
  • 3.5.1 用户身份
  • 3.5.2 系统实现
  • 3.5.3 超级用户
  • 3.5.4 配置参数
  • 3.6 HDFS配额管理
  • 3.7 HDFS的缺点
  • 3.8 小结
  • 第4章 HDFS的使用
  • 4.1 HDFS环境准备
  • 4.1.1 HDFS安装配置
  • 4.1.2 HDFS格式化与启动
  • 4.1.3 HDFS运行检查
  • 4.2 HDFS命令的使用
  • 4.2.1 fs shell
  • 4.2.2 archive
  • 4.2.3 distcp
  • 4.2.4 fsck
  • 4.3 HDFS Java API的使用方法
  • 4.3.1 Java API简介
  • 4.3.2 读文件
  • 4.3.3 写文件
  • 4.3.4 删除文件或目录
  • 4.4 C接口libhdfs
  • 4.4.1 libhdfs介绍
  • 4.4.2 编译与部署
  • 4.4.3 libhdfs接口介绍
  • 4.4.4 libhdfs使用举例
  • 4.5 WebHDFS接口
  • 4.5.1 WebHDFS REST API简介
  • 4.5.2 WebHDFS配置
  • 4.5.3 WebHDFS使用
  • 4.5.4 WebHDFS错误响应和查询参数
  • 4.6 小结
  • 第5章 MapReduce计算框架
  • 5.1 Hadoop MapReduce简介
  • 5.2 MapReduce模型
  • 5.2.1 MapReduce编程模型
  • 5.2.2 MapReduce实现原理
  • 5.3 计算流程与机制
  • 5.3.1 作业提交和初始化
  • 5.3.2 Mapper
  • 5.3.3 Reducer
  • 5.3.4 Reporter和OutputCollector
  • 5.4 MapReduce的输入/输出格式
  • 5.4.1 输入格式
  • 5.4.2 输出格式
  • 5.5 核心问题
  • 5.5.1 Map和Reduce数量
  • 5.5.2 作业配置
  • 5.5.3 作业执行和环境
  • 5.5.4 作业容错机制
  • 5.5.5 作业调度
  • 5.6 有用的MapReduce特性
  • 5.6.1 计数器
  • 5.6.2 DistributedCache
  • 5.6.3 Tool
  • 5.6.4 IsolationRunner
  • 5.6.5 Profiling
  • 5.6.6 MapReduce调试
  • 5.6.7 数据压缩
  • 5.6.8 优化
  • 5.7 小结
  • 第6章 Hadoop命令系统
  • 6.1 Hadoop命令系统的组成
  • 6.2 用户命令
  • 6.3 管理员命令
  • 6.4 测试命令
  • 6.5 应用命令
  • 6.6 Hadoop的streaming命令
  • 6.6.1 streaming命令
  • 6.6.2 参数使用分析
  • 6.7 Hadoop的pipes命令
  • 6.7.1 pipes命令
  • 6.7.2 参数使用分析
  • 6.8 小结
  • 高级篇
  • 第7章 MapReduce深度分析
  • 7.1 MapReduce总结构分析
  • 7.1.1 数据流向分析
  • 7.1.2 处理流程分析
  • 7.2 MapTask实现分析
  • 7.2.1 总逻辑分析
  • 7.2.2 Read阶段
  • 7.2.3 Map阶段
  • 7.2.4 Collector和Partitioner阶段
  • 7.2.5 Spill阶段
  • 7.2.6 Merge阶段
  • 7.3 ReduceTask实现分析
  • 7.3.1 总逻辑分析
  • 7.3.2 Shuffle阶段
  • 7.3.3 Merge阶段
  • 7.3.4 Sort阶段
  • 7.3.5 Reduce阶段
  • 7.4 JobTracker分析
  • 7.4.1 JobTracker服务分析
  • 7.4.2 JobTracker启动分析
  • 7.4.3 JobTracker核心子线程分析
  • 7.5 TaskTracker分析
  • 7.5.1 TaskTracker启动分析
  • 7.5.2 TaskTracker核心子线程分析
  • 7.6 心跳机制实现分析
  • 7.6.1 心跳检测分析
  • 7.6.2 TaskTracker.transmitHeartBeat()
  • 7.6.3 JobTracker.heartbeat()
  • 7.6.4 JobTracker.processHeartbeat()
  • 7.7 作业创建分析
  • 7.7.1 初始化分析
  • 7.7.2 作业提交分析
  • 7.8 作业执行分析
  • 7.8.1 JobTracker初始化
  • 7.8.2 TaskTracker.startNewTask()
  • 7.8.3 TaskTracker.localizeJob()
  • 7.8.4 TaskRunner.run()
  • 7.8.5 MapTask.run()
  • 7.9 小结
  • 第8章 Hadoop Streaming和Pipes原理与实现
  • 8.1 Streaming原理浅析
  • 8.2 Streaming实现架构
  • 8.3 Streaming核心实现机制
  • 8.3.1 主控框架实现
  • 8.3.2 用户进程管理
  • 8.3.3 框架和用户程序的交互
  • 8.3.4 PipeMapper和PiperReducer
  • 8.4 Pipes原理浅析
  • 8.5 Pipes实现架构
  • 8.6 Pipes核心实现机制
  • 8.6.1 主控类实现
  • 8.6.2 用户进程管理
  • 8.6.3 PipesMapRunner
  • 8.6.4 PipesReducer
  • 8.6.5 C++端HadoopPipes
  • 8.7 小结
  • 第9章 Hadoop作业调度系统
  • 9.1 作业调度概述
  • 9.1.1 相关概念
  • 9.1.2 作业调度流程
  • 9.1.3 集群资源组织与管理
  • 9.1.4 队列控制和权限管理
  • 9.1.5 插件式调度框架
  • 9.2 FIFO调度器
  • 9.2.1 基本调度策略
  • 9.2.2 FIFO实现分析
  • 9.2.3 FIFO初始化与停止
  • 9.2.4 作业监听控制
  • 9.2.5 任务分配算法
  • 9.2.6 配置与使用
  • 9.3 公平调度器
  • 9.3.1 产生背景
  • 9.3.2 主要功能
  • 9.3.3 基本调度策略
  • 9.3.4 FairScheduler实现分析
  • 9.3.5 FairScheduler启停分析
  • 9.3.6 作业监听控制
  • 9.3.7 资源池管理
  • 9.3.8 作业更新策略
  • 9.3.9 作业权重和资源量的计算
  • 9.3.10 任务分配算法
  • 9.3.11 FairScheduler配置参数
  • 9.3.12 使用与管理
  • 9.4 容量调度器
  • 9.4.1 产生背景
  • 9.4.2 主要功能
  • 9.4.3 基本调度策略
  • 9.4.4 CapacityScheduler实现分析
  • 9.4.5 CapacityScheduler启停分析
  • 9.4.6 作业监听控制
  • 9.4.7 作业初始化分析
  • 9.4.8 任务分配算法
  • 9.4.9 内存匹配机制
  • 9.4.10 配置与使用
  • 9.5 调度器对比分析
  • 9.5.1 调度策略对比
  • 9.5.2 队列和优先级
  • 9.5.3 资源分配保证
  • 9.5.4 作业限制
  • 9.5.5 配置管理
  • 9.5.6 扩展性支持
  • 9.5.7 资源抢占和延迟调度
  • 9.5.8 优缺点分析
  • 9.6 其他调度器
  • 9.6.1 HOD调度器
  • 9.6.2 LATE调度器
  • 9.7 小结
  • 实战篇
  • 第10章 Hadoop集群搭建
  • 10.1 Hadoop版本的选择
  • 10.2 集群基础硬件需求
  • 10.2.1 内存
  • 10.2.2 CPU
  • 10.2.3 磁盘
  • 10.2.4 网卡
  • 10.2.5 网络拓扑
  • 10.3 集群基础软件需求
  • 10.3.1 操作系统
  • 10.3.2 JVM和SSH
  • 10.4 虚拟化需求
  • 10.5 事前准备
  • 10.5.1 创建安装用户
  • 10.5.2 安装Java
  • 10.5.3 安装SSH并设置
  • 10.5.4 防火墙端口设置
  • 10.6 安装Hadoop
  • 10.6.1 安装HDFS
  • 10.6.2 安装MapReduce
  • 10.7 集群配置
  • 10.7.1 配置管理
  • 10.7.2 环境变量配置
  • 10.7.3 核心参数配置
  • 10.7.4 HDFS参数配置
  • 10.7.5 MapReduce参数配置
  • 10.7.6 masters和slaves配置
  • 10.7.7 客户端配置
  • 10.8 启动和停止
  • 10.8.1 启动/停止HDFS
  • 10.8.2 启动/停止MapReduce
  • 10.8.3 启动验证
  • 10.9 集群基准测试
  • 10.9.1 HDFS基准测试
  • 10.9.2 MapReduce基准测试
  • 10.9.3 综合性能测试
  • 10.10 集群搭建实例
  • 10.10.1 部署策略
  • 10.10.2 软件和硬件环境
  • 10.10.3 Hadoop安装
  • 10.10.4 配置core-site.xml
  • 10.10.5 配置hdfs-site.xml
  • 10.10.6 配置mapred-site.xml
  • 10.10.7 SecondaryNameNode和Slave
  • 10.10.8 配置作业队列
  • 10.10.9 配置第三方调度器
  • 10.10.10 启动与验证
  • 10.11 小结
  • 第11章 Hadoop Streaming和Pipes编程实战
  • 11.1 Streaming基础编程
  • 11.1.1 Streaming编程入门
  • 11.1.2 Map和Reduce数目
  • 11.1.3 队列、优先级及权限
  • 11.1.4 分发文件和压缩包
  • 11.1.5 压缩参数的使用
  • 11.1.6 本地作业的调试
  • 11.2 Streaming高级应用
  • 11.2.1 参数与环境变量传递
  • 11.2.2 自定义分隔符
  • 11.2.3 自定义Partitioner
  • 11.2.4 自定义计数器
  • 11.2.5 处理二进制数据
  • 11.2.6 使用聚合函数
  • 11.3 Pipes编程接口
  • 11.3.1 TaskContext
  • 11.3.2 Mapper
  • 11.3.3 Reducer
  • 11.3.4 Partitioner
  • 11.3.5 RecordReader
  • 11.3.6 RecordWriter
  • 11.4 Pipes编程应用
  • 11.5 小结
  • 第12章 Hadoop MapReduce应用开发
  • 12.1 开发环境准备
  • 12.2 Eclipse集成环境开发
  • 12.2.1 构建MapReduce Eclipse IDE
  • 12.2.2 开发示例
  • 12.3 MapReduce Java API编程
  • 12.3.1 Mapper编程接口
  • 12.3.2 Reducer编程接口
  • 12.3.3 驱动类编写
  • 12.3.4 编译运行
  • 12.4 压缩功能使用
  • 12.4.1 Hadoop数据压缩
  • 12.4.2 压缩特征与性能
  • 12.4.3 本地压缩库
  • 12.4.4 使用压缩
  • 12.5 排序应用
  • 12.5.1 Hadoop排序问题
  • 12.5.2 二次排序
  • 12.5.3 比较器和组合排序
  • 12.5.4 全局排序
  • 12.6 多路输出
  • 12.7 常见问题与处理方法
  • 12.7.1 常见的开发问题
  • 12.7.2 运行时错误问题
  • 12.8 小结
展开全部

评分及书评

评分不足
1个评分
  • 用户头像
    给这本书评了
    5.0

    Hadoop 是一个非常优秀的分布式计算系统,利用通用的硬件就可以构建一个强大、稳定、简单,并且高效的分布式集群计算系统,完全可以满足互联网公司基础架构平台的需求,付出相对低廉的代价就可以轻松处理超大规模的数据。

      转发
      评论

    出版方

    机械工业出版社有限公司

    机械工业出版社是全国优秀出版社,自1952年成立以来,坚持为科技、为教育服务,以向行业、向学校提供优质、权威的精神产品为宗旨,以“服务社会和人民群众需求,传播社会主义先进文化”为己任,产业结构不断完善,已由传统的图书出版向着图书、期刊、电子出版物、音像制品、电子商务一体化延伸,现已发展为多领域、多学科的大型综合性出版社,涉及机械、电工电子、汽车、计算机、经济管理、建筑、ELT、科普以及教材、教辅等领域。