作品简介

这是一本真正能让读者通过真实的企业应用实践掌握如何应用Storm处理各种大数据业务的著作。作者是国内顶尖的大数据专家,深谙初学者的难处和企业的实际需求,在此基础上巧妙地安排和组织了本书的内容,旨在让读者能达到事半功倍的效果。

本书没有过于繁琐和高深的理论,先系统介绍了Storm的设计思想、核心组件和适用场景,生产环境的搭建和部署,以及核心概念和数据模型;然后通过实时语音处理、网络流量分析、实时路况分析、数据质量实时监控、交通路况监控、广告实时流量统计等6典型的企业级案例讲解了如何应用Storm处理各种类型的大数据业务,每个案例都包括背景介绍、系统架构、模块设计和逻辑实现等组成部分,讲解十分详尽;最后从运维角度总结了Storm在安装部署、启动、运行等环节可能会出现的各种故障并给出了解决方案,以及Storm的各种技巧和最佳实践。

马延辉 资深Hadoop技术专家,曾就职于淘宝、Answers.com、暴风等互联网公司,从事Hadoop相关的研发和运维工作,对大数据技术的企业级落地、研发、运维和管理方面有着深刻理解和丰富的实战经验。开源HBase监控工具Ella作者。在国内Hadoop社区内非常活跃,经常在各种会议和沙龙上做技术分享,深受欢迎。现在致力于大数据技术在传统行业的落地,以及大数据技术的普及和推广。著有畅销书《HBase企业应用开发实战》,HBase领域公认最有价值的著作之一。

陈书美 高级数据分析工程师,对Storm实时数据计算、Kafka消息系统析有深入的研究和丰富的实践经验,并对HDFS、MapReduce、Hive、HBase等Hadoop生态系统内的技术有系统且深刻的了解。曾就职于暴风影音,负责大数据应用等开发工作;目前就职于百度,从事数据分析工作。

雷葆华 武汉绿色网络信息服务有限公司副总经理,负责公司大数据、SDN/NFV等新产品的研发工作。是业界知名的云计算专家,中国电子学会云计算专委会委员。创业之前曾任中国电信北京研究院云计算产品线总监,是中国电信云计算工作主要发起者和推动者之一,在CDN、P2P、IDC等方面都有深入研究。提交专利28项,已授权专利8项,发表多篇有影响力的论文和文章,多次获得部级科技进步奖励。

著有《云计算解码》、《CDN技术详解》、《SDN核心技术剖析和实战指南》等多部畅销著作并获得多个奖项。

作品目录

  • Storm企业级应用:实战、运维和调优
  • 前言
  • 为什么写作本书
  • 读者对象
  • 如何阅读本书
  • 勘误和支持
  • 致谢
  • 基础篇
  • 第1章 认识Storm
  • 1.1 什么是实时流计算
  • 1.1.1 实时流计算背景
  • 1.1.2 实时计算应用场景
  • 1.1.3 实时计算处理流程
  • 1.1.4 实时计算框架
  • 1.2 Storm是什么
  • 1.2.1 Storm出现的背景
  • 1.2.2 Storm简介
  • 1.2.3 Storm的设计思想
  • 1.2.4 Storm与Hadoop的角色和组件比较
  • 1.3 Storm核心组件
  • 1.3.1 主节点Nimbus
  • 1.3.2 工作节点Supervisor
  • 1.3.3 协调服务组件ZooKeeper
  • 1.3.4 其他核心组件
  • 1.4 Storm的特性
  • 1.5 Storm的功能
  • 1.6 本章小结
  • 第2章 开始使用Storm
  • 2.1 环境准备
  • 2.1.1 系统配置
  • 2.1.2 安装ZooKeeper集群
  • 2.2 启动模式
  • 2.2.1 本地模式
  • 2.2.2 分布式模式
  • 2.3 安装部署Storm集群
  • 2.3.1 安装Storm依赖库
  • 2.3.2 安装Storm集群
  • 2.3.3 启动Storm集群
  • 2.3.4 停止Storm集群
  • 2.4 创建Topology并向集群提交任务
  • 2.4.1 创建Topology
  • 2.4.2 向集群提交任务
  • 2.5 本章小结
  • 第3章 核心概念和数据流模型
  • 3.1 Tuple元组
  • 3.1.1 Tuple描述
  • 3.1.2 Tuple的生命周期
  • 3.2 Spout数据源
  • 3.2.1 Spout介绍
  • 3.2.2 Spout实例
  • 3.3 Bolt消息处理者
  • 3.3.1 Bolt介绍
  • 3.3.2 Bolt实例
  • 3.4 Topology拓扑
  • 3.4.1 Topology实例
  • 3.4.2 Topology运行
  • 3.5 Stream消息流和Stream Grouping消息流组
  • 3.5.1 Stream消息流
  • 3.5.2 Stream Grouping消息流组
  • 3.6 Task任务
  • 3.7 Worker工作者进程
  • 3.8 Worker、Task、Executor三者之间的关系
  • 3.9 事务
  • 3.10 数据流模型
  • 3.10.1 数据流模型简介
  • 3.10.2 Storm数据流模型
  • 3.11 本章小结
  • 实战篇
  • 第4章 实例1:移动互联——语音“实时墙”
  • 4.1 业务背景
  • 4.1.1 案例背景
  • 4.1.2 设计目标
  • 4.1.3 数据格式
  • 4.1.4 硬件配置
  • 4.2 系统架构与模块设计
  • 4.2.1 整体架构
  • 4.2.2 数据采集
  • 4.2.3 数据实时处理
  • 4.2.4 存储设计
  • 4.2.5 Web实时展示
  • 4.2.6 硬件部署图
  • 4.3 核心模块实现
  • 4.3.1 实时处理业务逻辑实现
  • 4.3.2 Web展示实现
  • 4.3.3 最终效果呈现
  • 4.4 本章小结
  • 第5章 实例2:运营商——网络流量流向实时分析
  • 5.1 业务背景
  • 5.1.1 案例背景
  • 5.1.2 设计目标
  • 5.1.3 数据规模预估
  • 5.1.4 数据格式
  • 5.1.5 统计分析需求
  • 5.2 系统架构与模块设计
  • 5.2.1 整体架构
  • 5.2.2 数据源
  • 5.2.3 日志采集
  • 5.2.4 数据存储
  • 5.2.5 数据处理
  • 5.2.6 目标存储和扩展服务
  • 5.2.7 结果Web展示
  • 5.3 核心模块实现
  • 5.3.1 模拟数据实现
  • 5.3.2 日志采集和存储实现
  • 5.3.3 数据处理实现
  • 5.3.4 Web展示实现
  • 5.4 本章小结
  • 第6章 实例3:交通——基于GPS的实时路况分析
  • 6.1 业务背景
  • 6.1.1 案例背景
  • 6.1.2 设计目标
  • 6.1.3 数据格式
  • 6.1.4 实时路况分析方法
  • 6.2 系统架构和模块设计
  • 6.3 核心模块的实现
  • 6.3.1 安装Kafka集群
  • 6.3.2 Flume整合Kafka
  • 6.3.3 实时处理数据
  • 6.3.4 Web页面展示
  • 6.4 本章小结
  • 第7章 实例4:互联网——数据质量实时监控
  • 7.1 业务背景
  • 7.1.1 案例背景
  • 7.1.2 设计目标
  • 7.1.3 数据格式
  • 7.2 系统架构与模块设计
  • 7.2.1 整体架构
  • 7.2.2 结果Web展示
  • 7.3 核心模块实现
  • 7.3.1 模拟数据
  • 7.3.2 实时处理业务逻辑的实现
  • 7.3.3 Web界面实现
  • 7.3.4 最终效果图
  • 7.4 本章小结
  • 第8章 实例5:交通——超速频发路段监控
  • 8.1 业务背景
  • 8.1.1 案例背景
  • 8.1.2 数据类型
  • 8.2 系统架构和模块设计
  • 8.3 核心模块实现
  • 8.3.1 实现入口类Main
  • 8.3.2 数据源SocketSpout的实现
  • 8.3.3 实时处理MapSearchBolt和SpeedProcessBolt的实现
  • 8.3.4 目标存储DataBaseLoadBolt的实现
  • 8.4 本章小结
  • 第9章 实例6:互联网——广告实时流量统计
  • 9.1 广告实时流量统计系统架构
  • 9.1.1 广告数据
  • 9.1.2 详细需求描述
  • 9.1.3 系统架构
  • 9.2 表结构与模块设计
  • 9.2.1 表结构设计
  • 9.2.2 功能模块设计
  • 9.3 核心模块实现
  • 9.3.1 部署物理集群环境
  • 9.3.2 Kafka生产者逻辑的实现
  • 9.3.3 使用Storm-kafka实现业务逻辑
  • 9.3.4 使用HBase存储并实现统计
  • 9.4 本章小结
  • 技巧篇
  • 第10章 Storm常见故障及解决方法
  • 10.1 安装部署故障
  • 10.1.1 “no jzmq in java.library.path”异常
  • 10.1.2 “No rule to make target”异常
  • 10.1.3 “cannot access org.zeromq.ZMQ”异常
  • 10.1.4 缺少pkg-config异常
  • 10.1.5 “java.lang.UnsatisfiedLinkError”异常
  • 10.1.6 “java.lang.NoClassDefFoundError:clojure.core.protocols$”异常
  • 10.1.7 “Error:cannot link with-luuid,install uuid-dev”异常
  • 10.1.8 “bad interpreter:No such file or directory”异常
  • 10.1.9 “org.zeromq.ZMQException:Invalid argument”异常
  • 10.2 启动故障
  • 10.2.1 “java.io.FileNotFoundException”异常
  • 10.2.2 “java.io.EOFException”异常
  • 10.3 运行时故障
  • 10.3.1 “Nimbus host is not set”异常
  • 10.3.2 “AlreadyAliveException(msg:xxx is alreadyactive)”异常
  • 10.3.3 无法序列化log4j.Logger异常
  • 10.3.4 “Failing message”异常
  • 10.3.5 “java.io.NotSerializableException”异常
  • 10.3.6 “java.lang.NoClassDefFoundError”异常
  • 10.3.7 “java.net.NoRouteToHostException”异常
  • 10.3.8 “java.net.UnknownHostException”异常
  • 10.3.9 重复defaults.yaml资源文件异常
  • 10.3.10 “KeeperException$NoNodeException”异常
  • 10.3.11 “A fatal error has been detected by the Java Runtime Environment”错误
  • 10.3.12 “java.lang.ArrayIndexOutOfBoundsException”异常
  • 10.3.13 DRPC空指针异常
  • 10.3.14 Storm Thrift读取数据报错
  • 10.4 本章小结
  • 第11章 Storm使用技巧和最佳实践
  • 11.1 核心组件使用要点
  • 11.1.1 Spout和Bolt
  • 11.1.2 ZooKeeper集群尽量独立
  • 11.1.3 Thrift服务的应用场景
  • 11.1.4 序列化机制的使用场景
  • 11.2 集群配置技巧
  • 11.2.1 默认参数配置
  • 11.2.2 日志信息
  • 11.2.3 合理配置JVM参数
  • 11.3 集群运维技巧
  • 11.3.1 Storm计算结果的存储位置
  • 11.3.2 Storm集群动态增删节点
  • 11.3.3 关闭Storm相关进程
  • 11.3.4 Storm UI显示内容的问题
  • 11.4 项目开发技巧
  • 11.4.1 使用assembly插件打包
  • 11.4.2 依赖JAR冲突
  • 11.5 保证消息的可靠处理
  • 11.5.1 消息失败后的处理
  • 11.5.2 主动干预可靠性
  • 11.5.3 处理重复的Tuple
  • 11.6 理解DRPC原语
  • 11.6.1 DRPC工作流
  • 11.6.2 LinearDRPCTopologyBuilder实现类
  • 11.6.3 DRPC的两种模式
  • 11.7 快速理解一致性事务
  • 11.7.1 Trident框架的使用
  • 11.7.2 Trident框架的细节
  • 11.7.3 事务性Spout
  • 11.7.4 状态State
  • 11.8 本章小结
展开全部