作品简介

本书内容主要围绕实时大数据系统的各个方面展开,从实时平台总体介绍到集群源码、运维监控、实时系统扩展、以用户画像为主的数据平台,最后到推荐、广告、搜索等具体的大数据应用。书中提到的不少问题是实际生产环境中因为数据量增长而遇到的一些真实问题,对即将或正在运用实时系统处理大数据问题的团队会有所帮助。

本书适合对大数据领域感兴趣的技术人员或者在校学生阅读,更适合大数据方向的架构师、运维工程师、算法/应用的开发者参考。

陈敏敏:1号店个性精准化部门资深架构师,在此之前曾服务于微软和三星电子等公司,长期从事大数据、搜索和推荐平台相关工作。目前主要关注于NoSQL、实时计算框架、推荐、广告投放等相关技术。

王新春:大众点评网数据平台资深工程师,负责点评实时计算平台相关工作,推动流式计算和实时计算在点评的应用和推广,一直致力于大数据和分布式系统的研究和应用。目前主要从事NoSQL、实时分布式系统的研究与开发。

黄奉线:1号店基础架构部分布式存储团队负责人,推动流式计算在1号店的应用,获得CTO特别奖,长期从事基础架构相关工作。目前主要关注于NoSQL、开源、流式计算、分布式存储等相关技术。

作品目录

  • 前言
  • 第1章 绪论
  • 1.1 Storm的基本组件
  • 1.1.1 集群组成
  • 1.1.2 核心概念
  • 1.1.3 Storm的可靠性
  • 1.1.4 Storm的特性
  • 1.2 其他流式处理框架
  • 1.2.1 Apache S4
  • 1.2.2 Spark Streaming
  • 1.2.3 流计算和Storm的应用
  • 第2章 实时平台介绍
  • 2.1 实时平台架构介绍
  • 2.2 Kafka架构
  • 2.2.1 Kafka的基本术语和概念
  • 2.2.2 Kafka在实时平台中的应用
  • 2.2.3 消息的持久化和顺序读写
  • 2.2.4 sendfile系统调用和零复制
  • 2.2.5 Kafka的客户端
  • 2.2.6 Kafka的扩展
  • 2.3 大众点评实时平台
  • 2.3.1 相关数据
  • 2.3.2 实时平台简介
  • 2.3.3 Blackhole
  • 2.4 1号店实时平台
  • 第3章 Storm集群部署和配置
  • 3.1 Storm的依赖组件
  • 3.2 Storm的部署环境
  • 3.3 部署Storm服务
  • 3.3.1 部署ZooKeeper
  • 3.3.2 部署Storm
  • 3.3.3 配置Storm
  • 3.4 启动Storm
  • 3.5 Storm的守护进程
  • 3.6 部署Storm的其他节点
  • 3.7 提交Topology
  • 第4章 Storm内部剖析
  • 4.1 Storm客户端
  • 4.2 Nimbus
  • 4.2.1 启动Nimbus服务
  • 4.2.2 Nimbus服务的执行过程
  • 4.2.3 分配Executor
  • 4.2.4 调度器
  • 4.2.5 默认调度器DefaultScheduler
  • 4.2.6 均衡调度器EvenScheduler
  • 4.3 Supervisor
  • 4.3.1 ISupervisor接口
  • 4.3.2 Supervisor的共享数据
  • 4.3.3 Supervisor的执行过程
  • 4.4 Worker
  • 4.4.1 Worker中的数据流
  • 4.4.2 创建Worker的过程
  • 4.5 Executor
  • 4.5.1 Executor的创建
  • 4.5.2 创建Spout的Executor
  • 4.5.3 创建Bolt的Executor
  • 4.6 Task
  • 4.6.1 Task的上下文对象
  • 4.6.2 Task的创建
  • 4.7 Storm中的统计
  • 4.7.1 stats框架
  • 4.7.2 metric框架
  • 4.8 Ack框架
  • 4.8.1 Ack的原理
  • 4.8.2 Acker Bolt
  • 4.9 Storm总体架构
  • 第5章 Storm运维和监控
  • 5.1 主机信息监控
  • 5.2 日志和监控
  • 5.3 Storm UI和NimbusClient
  • 5.4 Storm Metric的使用
  • 5.5 Storm ZooKeeper的目录
  • 5.6 Storm Hook的使用
  • 第6章 Storm的扩展
  • 6.1 Storm UI的扩展
  • 6.1.1 Storm UI原生功能
  • 6.1.2 Storm UI新功能需求
  • 6.1.3 Storm的Thrift接口
  • 6.2 资源隔离
  • 6.2.1 CGroup测试
  • 6.2.2 基于CGroup的资源隔离的实现
  • 第7章 Storm开发
  • 7.1 简单示例
  • 7.2 调试和日志
  • 7.3 Storm Trident
  • 7.4 Strom DRPC
  • 第8章 基于Storm的实时数据平台
  • 8.1 Hadoop到Storm的代码迁移经验
  • 8.2 实时用户画像
  • 8.2.1 简单实时画像
  • 8.2.2 实时画像优化
  • 8.2.3 实时画像的毫秒级更新
  • 8.3 其他场景画像
  • 8.4 画像的兴趣度模型构建
  • 8.5 外部画像融合经验分享
  • 8.6 交互式查询和分析用户画像
  • 8.7 实时产品和店铺信息更新
  • 第9章 大数据应用案例
  • 9.1 实时DAU计算
  • 9.2 实时推荐系统
  • 9.2.1 推荐系统介绍
  • 9.2.2 实时推荐系统的方法
  • 9.2.3 基于Storm的实时推荐系统
  • 9.3 广告投放的精准化
  • 9.3.1 点击率预测
  • 9.3.2 搜索引擎营销
  • 9.3.3 精准化营销与千人千面
  • 9.4 实时意图和搜索
  • 9.4.1 用户意图预测
  • 9.4.2 搜索比价
  • 9.4.3 搜索排序
  • 第10章 Storm使用经验和性能优化
  • 10.1 使用经验
  • 10.1.1 使用rebalance命令动态调整并发度
  • 10.1.2 使用tick消息做定时器
  • 10.1.3 使用组件的并行度代替线程池
  • 10.1.4 不要用DRPC批量处理大数据
  • 10.1.5 不要在Spout中处理耗时的操作
  • 10.1.6 log4j的使用技巧
  • 10.1.7 注意fieldsGrouping的数据均衡性
  • 10.1.8 优先使用localOrShuffleGrouping
  • 10.1.9 设置合理的MaxSpoutPending值
  • 10.1.10 设置合理的Worker数
  • 10.1.11 平衡吞吐量和时效性
  • 10.2 性能优化
  • 10.2.1 找到Topology的性能瓶颈
  • 10.2.2 GC参数优化
  • 10.3 性能优化原则
  • 附录A Kafka原理
  • 附录B 将Storm源码导入Eclipse
展开全部