Storm 實戰:構建大資料實時計算

broadviewbj發表於2014-08-15

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

阿里巴巴集團資料平臺事業部商家資料業務部 編著

ISBN 978-7-121-22649-6

20148月出版

定價:59.00

184

16

編輯推薦

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章詳細而系統地講解了幾個高階特性:事務、DRPCTrident;第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 的知識和技能。

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

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/13164110/viewspace-1251878/,如需轉載,請註明出處,否則將追究法律責任。

相關文章