Storm 實戰:構建大數據實時計算

Storm 實戰:構建大數據實時計算(阿里巴巴集團技術叢書,大數據叢書。大型互聯網公司大數據實時處理乾貨分享!來自淘寶一線技術團隊的豐富實踐,快速掌握Storm技術精髓!)數據庫

阿里巴巴集團數據平臺事業部商家數據業務部 編著 安全

ISBN 978-7-121-22649-6網絡

2014年8月出版架構

訂價:59.00元 併發

184框架

16分佈式

編輯推薦ide

Storm以其簡單、靈活、健壯而著稱。隨着大數據實時處理需求的強勁增加,Storm的出現填補了大數據處理生態系統的缺失,並被愈來愈多的公司所採用。高併發

《Storm實戰:構建大數據實時計算 》來自阿里巴巴集團數據平臺事業部商家數據業務部一線經驗的分享。團隊專一於「數據讓生意更簡單」的大數據應用使命,一直致力於解決商家的大數據應用需求。並開發出量子恆道店鋪經、江湖策、御膳房等重量級大數據開發、計算和分析工具。團隊很早便開始使用Storm來處理實時大數據,結合實際的應用場景,積累了豐富的實踐經驗。《Storm實戰:構建大數據實時計算》正是這些經驗和心得的結晶,它一一解答了是Storm是什麼,怎麼作,如何作更好等關鍵的實際問題,對於從事大數據處理與分析的讀者而言,是一本至關有價值的學習參考手冊。工具

阿里巴巴集團技術叢書是抱持着爲工程師服務的理念誕生的。

阿里的快速發展,使咱們有機會見證技術變革的強大力量。在這過程當中,咱們經歷了技術的變遷、興衰、成敗,既有收穫也有教訓。現在,阿里已成爲一家使人矚目的互聯網公司,站在這樣的時點上,回顧過去,放眼四周,咱們深入地以爲有必要將沉澱下來的一線經驗與智慧,結集出版,理由有三。

1.回報。咱們得到的種種經驗與教訓,只有在阿里這樣快速成長、體量巨大的公司中才有機會親歷。這樣的技術環境並非每一個工程師都有機緣遇到的。這些經歷幫助了咱們我的能力的提高,也幫助阿里成爲一家技術實力過硬的公司。咱們願意把這些內容分享出來,幫助即將或已經面臨相似問題的朋友們,若是他們能夠從閱讀中得到一些啓發而少走彎路的話,將是咱們最大的欣慰。

2.交流。在這套叢書裏,咱們一樣會拋出咱們的困惑、問題,藉助叢書的平臺,擴大工程師溝通的圈子,以書會友,共同探索、學習、提升。

3.溫故知新。以結集的形式,將以往的經驗與知識固化下來,既可便於之後查閱,也能夠幫助咱們系統地梳理思路,更爲全面地審視、洞察、並理解過去發生的種種,爲將來的變化作好更充分、紮實的準備。

基於以上的考慮,阿里巴巴集團技術叢書將立足於實踐,着眼於問題,從工程師的視角解讀技術的內涵。

讓思考成爲咱們生活的樂趣,讓閱讀成爲咱們進步的階梯!

內容提要

隨着大數據實時處理需求的強勁增加,Storm的出現填補了大數據處理生態系統的缺失,並被愈來愈多的公司所採用。阿里巴巴集團數據平臺事業部商家數據業務部正是最先使用Storm的技術團隊之一。

《Storm實戰:構建大數據實時計算 》是一本系統而且具備實踐指導意義的Storm工具書和參考書,對Storm整個技術體系進行了全面的講解,不只包括對基本概念、特性的介紹,也涵蓋了一些原理說明。

實戰性很強,各章節都提供了一些小案例,同時對於本地,以及集羣環境的部署有詳細介紹,易於理解,操做性強。

《Storm實戰:構建大數據實時計算 》一共分爲10章:第1章全面介紹了Storm的特性、能解決什麼問題,以及和其餘流計算系統的對比;第2章經過實際運行一個簡單的例子,以及介紹本地環境和集羣環境的搭建,讓讀者對Storm有了直觀的認識;第3章深刻講解了Storm的基本概念,同時實現一個Topology運行;第4章和第5章闡述了Storm的併發度、可靠處理的特性;第6章~第8章詳細而系統地講解了幾個高級特性:事務、DRPC和Trident;第9章以實例的方式講解了Storm在實際業務場景中的應用;第10章總結了幾個在大數據場景應用過程當中遇到的經典問題,以及詳細的排查過程。

目錄

第1 章 Storm 基礎 1

1.1 Storm 能作什麼 ............................................... 2

1.2 Storm 特性 ...................................................... 3

1.3 其餘流計算系統 .............................................. 8

1.4 應用模式 ....................................................... 13

第2 章 Storm 初體驗 17

2.1 本地環境搭建 ............................................... 18

2.2 Storm 集羣 .................................................... 25

第3 章 構建Topology 41

3.1 Storm 基本概念 ............................................. 42

3.2 構建Topology ............................................... 53

3.3 小結 .............................................................. 61

第4 章 Topology 的並行度 62

4.1 並行元素 ....................................................... 63

4.2 配置並行度 ................................................... 65

4.3 一個運行中Topology 的例子 ....................... 68

4.4 如何更新運行中的Topology 的並行度 ........ 71

第5 章 消息的可靠處理 73

5.1 簡介 .............................................................. 74

5.2 理解消息被完整處理 .................................... 74

5.3 消息的生命週期 ............................................ 76

5.4 可靠相關的API ............................................ 79

5.5 高效地實現tuple tree .................................... 84

5.6 選擇合適的可靠性級別 ................................ 87

5.7 集羣的各級容錯 ............................................ 89

5.8 小結 .............................................................. 91

第6 章 一致性事務 92

6.1 簡單設計一:強順序流 ................................ 93

6.2 簡單設計二:強順序batch 流 ...................... 95

6.3 CoordinateBolt 的原理 .................................. 96

6.4 Transactional Topology .................................. 98

第7 章 DRPC 105

7.1 Storm DRPC ................................................ 106

7.2 整體概述 ..................................................... 106

7.3 LinearDRPCTopologyBuilder ...................... 108

7.4 本地模式DRPC .......................................... 110

7.5 遠程模式DRPC .......................................... 111

7.6 一個複雜的例子 .......................................... 113

7.7 非線性DRPC 拓撲 ..................................... 117

7.8 LinearDRPCTopologyBuilder 工做過程 ...... 117

7.9 高級進階 ..................................................... 118

第8 章 Trident 的特性 119

8.1 理解Trident ................................................ 120

8.2 結合多個Trident 任務 ................................ 124

8.3 消費和生產Field ........................................ 126

8.4 State(狀態保存) ...................................... 128

8.5 Trident Topology 的執行過程 ...................... 136

8.6 總結 ............................................................ 137

第9 章 Storm 實例 138

9.1 一個簡單的實例 .......................................... 139

9.2 複雜一點的實例 .......................................... 150

9.3 其餘 ............................................................ 161

第10 章 常見應用問題分析 162

10.1 性能問題排查與定位 ................................ 163

10.2 系統中常見的問題與排查 ......................... 167

10.3 業務問題的定位與排查 ............................ 170

做者簡介

商家數據業務部, 隸屬於阿里巴巴集團數據平臺事業部,致力於「數據讓生意更簡單」的大數據應用使命。幾年來,一直專一於解決商家的大數據應用需求,經過量子恆道店鋪經已支撐起超過400萬商家的平常經營決策,併爲100萬商家提供淘寶官方流量管理工具——江湖策,讓深度探索、優化流量成爲可能。2013年開創性地推出雲數據平臺——御膳房,做爲完善的大數據開放、計算和分析雲平臺,打通了「阿里大數據」與「開放平臺和服務市場體系」,爲淘寶生態中的ISV和賣家提供海量豐富的阿里大數據、強大穩定的雲計算處理能力和安全的數據應用開發容器,支持淘寶生態圈發展基於大數據分析的創新應用,深度助力賣家下降經營成本、提高效率,已爲數百萬的商家提供經營鏈路中的大數據應用解決方案。
支撐這些的,是對大數據的分佈式計算、倉庫建設、數據挖掘、高併發網站構建、數據可視化等各個領域前沿技術的深刻探索和應用。

前言

實時流計算

互聯網從誕生的一刻起,對世界的最大改變就是讓信息可以實時交互,從而大大提升各個環節的效率。正由於你們對信息實時響應、實時交互的需求,軟件行業除了我的操做系統以外,數據庫(更精確地說是關係型數據庫)應該是軟件行業發展最快、收益最爲豐厚的產品了。記得20 世紀90年代,不少銀行別說實時轉帳,連實時查詢都作不到,可是數據庫和高速網絡改變了這個狀況。

互聯網的進一步發展,從Portal 信息瀏覽型到Search 信息搜索型再到SNS 關係交互傳遞型,以及電子商務、互聯網旅遊生活產品等,將人們生活中的流通環節在線化。對效率的要求讓你們對實時性的要求進一步提高,而信息的交互和溝通正在從點對點向信息鏈甚至信息網的方向發展,這樣必然帶來數據在各個維度的交叉關聯,數據爆炸已不可避免。所以流式處理加NoSQL 產品應運而生,分別解決實時處理框架和數據大規模存儲計算的問題。

早在2000 年初,諸如UC 伯克利、斯坦福等大學就開始了對流式數據處理的研究,可是因爲更多地關注於金融行業的業務場景或者互聯網流量監控的業務場景,以及當時互聯網數據場景的限制,形成了研究可能是基於對傳統數據庫處理的流式化,對流式框架自己的研究偏少。目前這樣的研究逐漸沒有了聲音,工業界將更多的精力轉向了實時數據庫。

2010 年Yahoo!對S4 的開源,2011 年Twitter 對Storm的開源,改變了這個現狀。之前互聯網的開發人員在作一個實時應用的時候,除了要關注應用邏輯計算處理自己,還要爲數據的實時流轉、交互、分佈大傷腦筋。如今的狀況卻大爲不一樣,以Storm 爲例,開發人員能夠快速搭建一套健壯、易用的實時流處理框架,配合SQL 產品或者NoSQL 產品或者MapReduce 計算平臺,就能夠以低成本作出不少之前很難想象的實時產品,好比量子恆道品牌旗下的多個產品就是構建在Storm 實時流處理平臺上的。

本書是一本對Storm 的基礎介紹手冊,可是咱們也但願它不只僅是一本Storm 的使用手冊,咱們會在其中加入更多在實際數據生產過程當中的經驗和應用架構,最終的目的是幫助全部願意使用實時流處理框架的技術同仁,同時也默默地改變這個世界。

在本書即將出版之際,Storm 已經成功發佈了0.9.0 版本,追加了一些新的特性,如使用Netty 做爲新的消息傳輸層、提供日誌查看UI 等,同時修復了大量跟穩定性相關的BUG。本次發佈對茁壯成長的Storm 來講是一次巨大的進步。新版本的Storm 在系統結構及使用方式方面,並無太多變化,本書能夠幫助你快速掌握應用Storm 的知識和技能。

本書由團隊中多位同窗前後參與合做完成,爲體現阿里巴巴的文化,這裏列出全部涉及同窗的花名:張中、太奇、鳴世、曦軒、嗚珂、民瞻、九翎、淵虹、國相、晨炫、木晗、毅山、宋智、澄蒼,是你們的合做與努力才讓此書得以成行。同時感謝劉皎等編輯的辛苦工做,是大家把這本書呈獻給讀者,感謝大家!一樣要感謝支持咱們工做的同事們:冰夷、王賁,有大家的幫助和支持才讓咱們有決心和毅力來完成這項工做。

相關文章
相關標籤/搜索