注冊(cè) | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁(yè)出版圖書科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)軟件工程及軟件方法學(xué)從零開始學(xué)Storm

從零開始學(xué)Storm

從零開始學(xué)Storm

定 價(jià):¥59.00

作 者: 趙必廈,程麗明
出版社: 清華大學(xué)出版社
叢編項(xiàng):
標(biāo) 簽: 計(jì)算機(jī)/網(wǎng)絡(luò) 軟件工程/開發(fā)項(xiàng)目管理

ISBN: 9787302372455 出版時(shí)間: 2014-10-01 包裝:
開本: 頁(yè)數(shù): 字?jǐn)?shù):  

內(nèi)容簡(jiǎn)介

  本書由基礎(chǔ)知識(shí)、安裝與部署、研發(fā)與維護(hù)、進(jìn)階知識(shí)、企業(yè)應(yīng)用5個(gè)模塊構(gòu)成,并細(xì)分為20個(gè)章節(jié),其中“基礎(chǔ)知識(shí)”6章、“安裝與部署”4章、“研發(fā)與維護(hù)”4章、“進(jìn)階知識(shí)”5章、“企業(yè)應(yīng)用”1章,分別介紹了Storm的安裝與配置、Storm的基本原理、Topology組件、Spout組件、Bolt組件、ZooKeeper集群、實(shí)戰(zhàn)環(huán)節(jié)等內(nèi)容,包括理論基礎(chǔ)、環(huán)境搭建、研發(fā)準(zhǔn)備、應(yīng)用案例等。本書理論聯(lián)系實(shí)際,通過(guò)大量實(shí)例分析,讓讀者在較短的時(shí)間內(nèi)掌握Storm的使用,搭建并研發(fā)出自己的基于Storm的大數(shù)據(jù)處理平臺(tái)。本書適合所有大數(shù)據(jù)處理、實(shí)時(shí)流數(shù)據(jù)處理、Storm的開發(fā)者或愛好者,也適合高等院校和培訓(xùn)學(xué)校相關(guān)專業(yè)的師生參考使用。

作者簡(jiǎn)介

暫缺《從零開始學(xué)Storm》作者簡(jiǎn)介

圖書目錄

第1章  Storm簡(jiǎn)介
1.1  什么是Storm
1.2  Storm的誕生
1.2.1  從Twitter說(shuō)起
1.2.2  Twitter需要處理大批實(shí)時(shí)性要求高的大數(shù)據(jù)業(yè)務(wù)
1.2.3  Storm幫助Twitter解決實(shí)時(shí)海量大數(shù)據(jù)處理問(wèn)題
1.3  Storm的成長(zhǎng)
1.3.1  Storm正式開源
1.3.2  Storm的核心技術(shù)和基本組成
1.3.3  Storm的項(xiàng)目小組
1.3.4  Storm的技術(shù)支持網(wǎng)站
1.4  Storm的優(yōu)勢(shì)
1.4.1  集成多種技術(shù)
1.4.2  簡(jiǎn)單的API
1.4.3  可擴(kuò)展的
1.4.4  容錯(cuò)的
1.4.5  保證數(shù)據(jù)處理
1.4.6  可以使用任何語(yǔ)言
1.4.7  部署和操作簡(jiǎn)單
1.4.8  自由開源
1.5  Storm的應(yīng)用現(xiàn)狀和發(fā)展趨勢(shì)
1.5.1  應(yīng)用現(xiàn)狀
1.5.2  發(fā)展趨勢(shì)
1.6  如何學(xué)習(xí)Storm
1.7  本書的章節(jié)安排及學(xué)習(xí)建議
1.7.1  本書的章節(jié)安排
1.7.2  關(guān)于如何閱讀本書的建議
1.8  本章小結(jié)


第2章  Storm的基本知識(shí)
2.1  概念
2.1.1  元組(Tuple)
2.1.2  流(Stream)
2.1.3  噴口(Spout)
2.1.4  螺栓(Bolt)
2.1.5  拓?fù)洌═opology)
2.1.6  主控節(jié)點(diǎn)與工作節(jié)點(diǎn)
2.1.7  Nimbus進(jìn)程與Supervisor進(jìn)程
2.1.8  流分組(Stream grouping)
2.1.9  工作進(jìn)程(Worker)
2.1.10  任務(wù)(Task)
2.1.11  執(zhí)行器(Executor)
2.1.12  可靠性(Reliability)
2.2  Storm的配置
2.2.1  Storm的配置類型
2.2.2  defaults.yaml文件
2.2.3  storm.yaml文件
2.2.4  Config類
2.3  序列化(Serialization)
2.3.1  動(dòng)態(tài)類型
2.3.2  自定義序列化
2.3.3  Java序列化
2.3.4  特定組件序列化注冊(cè)
2.4  容錯(cuò)機(jī)制
2.4.1  Worker進(jìn)程死亡
2.4.2  節(jié)點(diǎn)死亡
2.4.3  Nimbus或者Supervisor守護(hù)進(jìn)程死亡
2.4.4  Nimbus是否是“單點(diǎn)故障”的
2.5  可靠性機(jī)制——保證消息處理
2.5.1  消息被“完全處理”的含義
2.5.2  如果一個(gè)消息被完全處理或完全處理失敗會(huì)發(fā)生什么
2.5.3  Storm如何保證可靠性
2.5.4  Storm如何實(shí)現(xiàn)可靠性
2.5.5  調(diào)節(jié)可靠性
2.6  消息傳輸機(jī)制
2.6.1  ZeroMQ
2.6.2  Netty
2.6.3  自定義消息通信機(jī)制
2.7  Storm的開發(fā)環(huán)境與生產(chǎn)環(huán)境
2.7.1  開發(fā)環(huán)境與本地模式
2.7.2  生產(chǎn)環(huán)境與遠(yuǎn)程模式
2.7.3  開發(fā)環(huán)境與生產(chǎn)環(huán)境的對(duì)比
2.8  Storm拓?fù)涞牟⑿卸龋╬arallelism)
2.8.1  工作進(jìn)程、執(zhí)行器和任務(wù)
2.8.2  配置拓?fù)涞牟⑿卸?
2.8.3  拓?fù)涫纠?
2.8.4  如何改變運(yùn)行中拓?fù)涞牟⑿卸?
2.9  Storm命令行客戶端
2.10  Javadoc文檔
2.11  本章小結(jié)

第3章  拓?fù)湓斀?br /> 3.1  什么是拓?fù)?
3.2  TopologyBuilder
3.3  流分組
3.3.1  什么是流分組
3.3.2  不同的流分組方式
3.4  一個(gè)簡(jiǎn)單的拓?fù)?
3.5  在本地模式下運(yùn)行拓?fù)?
3.6  在生產(chǎn)集群上運(yùn)行拓?fù)?
3.6.1  常見的配置
3.6.2  殺死拓?fù)?
3.6.3  更新運(yùn)行中的拓?fù)?
3.6.4  監(jiān)控拓?fù)?
3.7  拓?fù)涞某R娔J?
3.7.1  流連接(Stream Join)
3.7.2  批處理(Batching)
3.7.3  BasicBolt
3.7.4  內(nèi)存中緩存與字段的組合
3.7.5  流的top N
3.7.6  高效保存最近更新緩存對(duì)象的TimeCacheMap(已棄用)
3.7.7  分布式RPC的CoordinatedBolt與KeyedFairBolt
3.8  本地模式與StormSubmitter的對(duì)比
3.9  多語(yǔ)言協(xié)議(Multi-Language Protocol)
3.10  使用非JVM語(yǔ)言操作Storm
3.10.1  支持的非Java語(yǔ)言
3.10.2  對(duì)Storm使用非Java語(yǔ)言
3.10.3  實(shí)現(xiàn)非Java DSL的筆記
3.11  Hook
3.12  本章小結(jié)

第4章  組件詳解
4.1  基本接口
4.1.1  IComponent接口
4.1.2  ISpout接口
4.1.3  IBolt接口
4.1.4  IRichSpout與IRichBolt接口
4.1.5  IBasicBolt接口
4.1.6  IStateSpout與IRichStateSpout接口
4.2  基本抽象類
4.2.1  BaseComponent抽象類
4.2.2  BaseRichSpout抽象類
4.2.3  BaseRichBolt抽象類
4.2.4  BaseBasicBolt抽象類
4.3  事務(wù)接口
4.3.1  IPartitionedTransactionalSpout
4.3.2  IOpaquePartitionedTransactionalSpout
4.3.3  ITransactionalSpout
4.3.4  ICommitterTransactionalSpout
4.3.5  IBatchBolt
4.4  組件之間的相互關(guān)系
4.5  本章小結(jié)

第5章  Spout詳解
5.1  可靠的與不可靠的消息
5.2  Spout獲取數(shù)據(jù)的方式
5.2.1  直接連接(Direct Connection)
5.2.2  消息隊(duì)列(Enqueued Messages)
5.2.3  DRPC(分布式RPC)
5.3  常用的Spout
5.3.1  Kestrel作為Spout的數(shù)據(jù)源
5.3.2  AMQP作為Spout的數(shù)據(jù)源
5.3.3  JMS作為Spout的數(shù)據(jù)源
5.3.4  Redis作為Spout的數(shù)據(jù)源
5.3.5  beanstalkd作為Spout的數(shù)據(jù)源
5.4  學(xué)習(xí)編寫Spout類
5.5  本章小結(jié)

第6章  Bolt詳解
6.1  Bolt概述
6.2  可靠的與不可靠的Bolt
6.2.1  使用Anchoring機(jī)制實(shí)現(xiàn)可靠的Bolt
6.2.2  使用IBasicBolt接口實(shí)現(xiàn)自動(dòng)確認(rèn)
6.3  復(fù)合流與復(fù)合Anchoring
6.3.1  復(fù)合流
6.3.2  復(fù)合Anchoring
6.4  使用其他語(yǔ)言定義Bolt
6.5  學(xué)習(xí)編寫B(tài)olt類
6.5.1  可靠的Bolt
6.5.2  不可靠的Bolt
6.6  本章小結(jié)

第7章  ZooKeeper詳解
7.1  ZooKeeper簡(jiǎn)介
7.2  ZooKeeper的下載和部署
7.2.1  ZooKeeper的下載
7.2.2  ZooKeeper的部署
7.3  ZooKeeper的配置
7.4  ZooKeeper的運(yùn)行
7.5  ZooKeeper的本地模式實(shí)例
7.6  ZooKeeper的數(shù)據(jù)模型
7.6.1  ZNode
7.6.2  ZooKeeper中的時(shí)間
7.6.3  ZooKeeper的Stat結(jié)構(gòu)
7.7  ZooKeeper的命令行操作范例
7.8  Storm在ZooKeeper中的目錄結(jié)構(gòu)
7.9  本章小結(jié)

第8章  基礎(chǔ)軟件的安裝與使用
8.1  Linux的基本操作
8.1.1  環(huán)境變量
8.1.2  常用命令
8.2  JDK的下載與配置
8.2.1  Sun JDK的下載
8.2.2  在Linux下安裝JDK
8.2.3  在Windows下安裝JDK
8.3  GitHub托管項(xiàng)目的下載
8.4  Maven的下載與配置
8.4.1  Maven的下載
8.4.2  在Linux下部署Maven
8.4.3  在Windows下部署Maven
8.5  其他軟件——Notepad++
8.6  本章小結(jié)

第9章  Storm的安裝與配置
9.1  Storm集群的安裝步驟與準(zhǔn)備工作
9.1.1  搭建ZooKeeper集群
9.1.2  安裝Storm的本地依賴
9.1.3  下載并解壓Storm發(fā)行版本
9.1.4  配置storm.yaml文件
9.1.5  啟動(dòng)Storm的守護(hù)進(jìn)程
9.2  本地模式的Storm完整的配置命令
9.3  本章小結(jié)

第10章  Storm集群搭建實(shí)踐
10.1  準(zhǔn)備工作
10.1.1  概述
10.1.2  配置hosts文件
10.1.3  配置靜態(tài)IP
10.1.4  集群SSH無(wú)密碼
10.1.5  修改主機(jī)名
10.1.6  關(guān)閉防火墻
10.1.7  同步時(shí)間
10.1.8  安裝JDK
10.2  ZooKeeper集群的搭建
10.2.1  部署第一個(gè)節(jié)點(diǎn)
10.2.2  部署第i個(gè)節(jié)點(diǎn)
10.2.3  啟動(dòng)ZooKeeper集群
10.2.4  查看ZooKeeper狀態(tài)
10.2.5  關(guān)閉ZooKeeper集群
10.2.6  清理ZooKeeper集群
10.3  Storm集群的搭建
10.3.1  安裝Storm依賴(每個(gè)Storm節(jié)點(diǎn))
10.3.2  部署第一個(gè)節(jié)點(diǎn)
10.3.3  部署第i個(gè)節(jié)點(diǎn)
10.3.4  啟動(dòng)Storm守護(hù)進(jìn)程
10.4  本章小結(jié)

第11章  準(zhǔn)備Storm的開發(fā)環(huán)境
11.1  Storm的開發(fā)環(huán)境
11.1.1  什么是Storm的開發(fā)環(huán)境
11.1.2  如何管理Storm
11.1.3  如何提交拓?fù)涞郊?
11.2  Eclipse的下載與配置
11.2.1  Eclipse的下載
11.2.2  Eclipse的配置與運(yùn)行
11.2.3  Eclipse插件的安裝
11.3  使用Maven管理項(xiàng)目
11.3.1  Maven的下載與配置
11.3.2  配置pom.xml文件
11.3.3  運(yùn)行Maven命令
11.4  使用Nexus搭建本地Maven私服
11.4.1  下載Nexus
11.4.2  運(yùn)行Nexus
11.4.3  登錄Nexus后臺(tái)
11.4.4  配置Repositories
11.4.5  配置setting.xml文件
11.4.6  修改Eclipse的Maven插件的配置
11.5  使用SVN管理代碼版本
11.5.1  在Windows下搭建SVN服務(wù)器
11.5.2  在Linux下搭建SVN服務(wù)器
11.5.3  安裝SVN客戶端
11.6  部署單節(jié)點(diǎn)的Storm集群
11.6.1  部署偽分布的ZooKeeper
11.6.2  部署偽分布的Storm集群
11.7  本章小結(jié)

第12章  開發(fā)自己的Storm應(yīng)用
12.1  新建Maven項(xiàng)目
12.2  修改為適合Storm開發(fā)的項(xiàng)目
12.2.1  對(duì)包名進(jìn)行分類管理
12.2.2  修改pom.xml文件
12.3  編寫代碼
12.3.1  編寫Spout類
12.3.2  編寫B(tài)olt類
12.3.3  編寫Topology類
12.4  本地測(cè)試運(yùn)行
12.5  提交到Storm集群運(yùn)行
12.5.1  使用Maven打包
12.5.2  提交jar包到集群
12.6  本章小結(jié)

第13章  storm-starter詳解
13.1  storm-starter項(xiàng)目概述
13.2  storm-starter的下載
13.3  使用Maven進(jìn)行管理
13.3.1  使用Maven打包storm-starter
13.3.2  使用Maven直接運(yùn)行WordCountTopology
13.3.3  使用Maven運(yùn)行單元測(cè)試
13.4  在Eclipse中運(yùn)行
13.4.1  新建Maven項(xiàng)目的方式
13.4.2  導(dǎo)入已存在的項(xiàng)目的方式
13.5  storm-starter的入門例子
13.5.1  ExclamationTopology
13.5.2  WordCountTopology
13.5.3  ReachTopology
13.6  storm-starter的其他例子
13.6.1  BasicDRPCTopology
13.6.2  ManualDRPC
13.6.3  PrintSampleStream
13.6.4  RollingTopWords
13.6.5  SingleJoinExample
13.6.6  TransactionalGlobalCount
13.6.7  TransactionalWords
13.7  本章小結(jié)

第14章  研發(fā)與集群管理技巧
14.1  使用daemontools監(jiān)控Storm進(jìn)程
14.1.1  daemontools簡(jiǎn)介
14.1.2  安裝daemontools
14.1.3  編寫監(jiān)控腳本
14.2  使用Monit監(jiān)控Storm
14.2.1  Monit簡(jiǎn)介
14.2.2  安裝Monit
14.2.3  配置Monit
14.2.4  啟動(dòng)Monit
14.2.5  獲取Monit幫助信息
14.3  常用的集群操作命令
14.4  使用Storm的經(jīng)驗(yàn)與建議
14.5  本章小結(jié)

第15章  DRPC詳解
15.1  概述
15.2  DRPCTopologyBuilder
15.2.1  LinearDRPCTopologyBuilder
15.2.2  LinearDRPCTopologyBuilder提供的方法
15.2.3  LinearDRPCTopologyBuilder使用范例
15.2.4  LinearDRPCTopologyBuilder的工作原理
15.2.5  LinearDRPCTopologyBuilder目前已棄用
15.3  本地模式的DRPC
15.4  遠(yuǎn)程模式的DRPC
15.5  一個(gè)復(fù)雜的DRPC例子(計(jì)算reach值)
15.6  非線性DRPC
15.7  本章小結(jié)

第16章  事務(wù)拓?fù)湓斀?br /> 16.1  什么是事務(wù)拓?fù)?
16.1.1  設(shè)計(jì)1
16.1.2  設(shè)計(jì)2
16.1.3  設(shè)計(jì)3(Storm的設(shè)計(jì))
16.2  事務(wù)拓?fù)涞脑O(shè)計(jì)細(xì)節(jié)
16.3  事務(wù)拓?fù)涞膶?shí)現(xiàn)細(xì)節(jié)
16.3.1  事務(wù)Spout的工作原理 262
16.3.2  “對(duì)于給定的事務(wù)id不能發(fā)射相同的Batch”的處理
16.3.3  更多的細(xì)節(jié)
16.4  事務(wù)拓?fù)銩PI
16.4.1  Bolt
16.4.2  事務(wù)Spout
16.4.3  配置
16.5  TransactionalTopologyBuilder
16.5.1  TransactionalTopologyBuilder提供的方法
16.5.2  TransactionalTopologyBuilder類已棄用
16.6  一個(gè)簡(jiǎn)單的例子
16.7  本章小結(jié)

第17章  Trident詳解
17.1  Trident概述
17.1.1  簡(jiǎn)單的例子——單詞統(tǒng)計(jì)(TridentWordCount)
17.1.2  另一個(gè)例子——計(jì)算Reach值(TridentReach)
17.1.3  字段和元組
17.1.4  狀態(tài)(State)
17.1.5  Trident拓?fù)涞膱?zhí)行
17.2  Trident API
17.2.1  概述
17.2.2  本地分區(qū)操作
17.2.3  重新分區(qū)操作
17.2.4  聚合操作
17.2.5  流分組操作
17.2.6  合并與連接
17.3  Trident的狀態(tài)
17.3.1  Trident狀態(tài)分類
17.3.2  事務(wù)Spout(Transactional Spout)
17.3.3  不透明事務(wù)Spout(Opaque Transactional Spout)
17.3.4  非事務(wù)Spout(Non-transactional Spout)
17.3.5  Spout與State之間的聯(lián)系
17.3.6  State API
17.3.7  persistentAggregate方法
17.3.8  實(shí)現(xiàn) MapStates
17.4  Trident Spout
17.4.1  流水線(Pipelining)
17.4.2  Trident Spout的類型
17.5  本章小結(jié)

第18章  Storm的內(nèi)部實(shí)現(xiàn)
18.1  文件系統(tǒng)分析
18.2  數(shù)據(jù)目錄結(jié)構(gòu)
18.2.1  Nimbus節(jié)點(diǎn)的目錄結(jié)構(gòu)
18.2.2  Supervisor節(jié)點(diǎn)的目錄結(jié)構(gòu)
18.3  代碼庫(kù)的結(jié)構(gòu)
18.3.1  storm.thrift
18.3.2  Java接口
18.3.3  實(shí)現(xiàn)
18.4  拓?fù)涞纳芷?
18.4.1  啟動(dòng)拓?fù)?
18.4.2  監(jiān)控拓?fù)?
18.4.3  殺死拓?fù)?br /> 18.5  Acking框架的實(shí)現(xiàn)
18.5.1  異或計(jì)算的基本原理
18.5.2  Acking框架的實(shí)現(xiàn)原理
18.5.3  Acker的execute方法
18.5.4  待定元組(pending tuple)和RotatingMap
18.6  Metric
18.7  本章小結(jié)

第19章  Storm相關(guān)的其他項(xiàng)目
19.1  JStorm項(xiàng)目
19.1.1  項(xiàng)目簡(jiǎn)介
19.1.2  下載與部署
19.1.3  源代碼編譯
19.2  storm-deploy項(xiàng)目
19.3  Storm與Kafka
19.3.1  Kafka簡(jiǎn)介
19.3.2  Kafka的安裝
19.3.3  啟動(dòng)服務(wù)
19.3.4  測(cè)試運(yùn)行
19.3.5  Storm與Kafka的項(xiàng)目
19.4  storm-kestrel項(xiàng)目 334
19.4.1  storm-kestrel項(xiàng)目簡(jiǎn)介
19.4.2  使用storm-kestrel項(xiàng)目
19.4.3  Kestrel服務(wù)器和隊(duì)列
19.4.4  添加元素到kestrel
19.4.5  從Kestrel中移除元素
19.4.6  持續(xù)添加元素到Kestrel
19.4.7  使用KestrelSpout
19.4.8  執(zhí)行
19.5  本章小結(jié)

第20章  企業(yè)應(yīng)用案例
20.1  Storm席卷眾多互聯(lián)網(wǎng)企業(yè)
20.1.1  Storm的典型應(yīng)用場(chǎng)景
20.1.2  Storm的三大基本應(yīng)用
20.2  Storm在Twitter中的應(yīng)用
20.2.1  Twitter公司簡(jiǎn)介
20.2.2  Storm幫助Twitter提升產(chǎn)品性能
20.2.3  MapR在Twitter中的應(yīng)用簡(jiǎn)介
20.3  Storm在阿里巴巴集團(tuán)的應(yīng)用
20.3.1  阿里巴巴集團(tuán)簡(jiǎn)介
20.3.2  Storm在阿里巴巴的應(yīng)用
20.3.3  Storm在淘寶公司的應(yīng)用
20.3.4  Storm在支付寶公司的應(yīng)用
20.4  其他應(yīng)用Storm的知名企業(yè)和項(xiàng)目
20.5  本章小結(jié)
參考資料
  

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) www.afriseller.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)