|
-- 會員 / 註冊 --
|
|
|
|
分布式實時計算框架原理及實踐案例 ( 簡體 字) |
作者:王成光 | 類別:1. -> 程式設計 -> 綜合 |
譯者: |
出版社:電子工業出版社 | 3dWoo書號: 45038 詢問書籍請說出此書號!【缺書】 NT售價: 395 元 |
出版日:8/1/2016 |
頁數:292 |
光碟數:0 |
|
站長推薦: |
印刷:黑白印刷 | 語系: ( 簡體 版 ) |
|
加入購物車 │加到我的最愛 (請先登入會員) |
ISBN:9787121296208 |
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 序 |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證) |
作者序: |
譯者序: |
前言:“授人以魚不如授人以漁。”——語出《淮南子·說林訓》,道理很簡單,魚是目的,釣魚是手段,一條魚能解一時之饑,卻不能解長久之饑,如果想永遠有魚吃,那就要學會釣魚的方法。 隨著時代發展,互聯網,尤其是移動互聯網的全民普及趨勢,任何一個行業的相關產品都會有很多表示用戶興趣點的行為數據,像用戶的瀏覽、收藏、分享、購買、評論、點贊和搜索等行為由此構建出海量用戶行為數據。如何快速有效地使用上述大數據,挖掘出用戶對產品的興趣點,實時更新用戶畫像,進而向用戶推薦其當前最感興趣的產品及廣告,是目前眾企業所普遍關心的問題,也是大數據的價值所在。 大數據是時代產物,除了BAT、網易、搜狐、新浪、京東等一線互聯網企業需要相關處理,國內更多中小企業或者傳統行業的巨無霸也都需要大數據處理技術。一線互聯網企業由于自己本身就做互聯網業務擁有人才優勢,處理大數據相對簡單。但中小企業及傳統行業巨無霸在面對自己日積月累的大數據時困難重重,主要是本身沒有處理能力,也沒有相關硬件設施支持。 目前大數據處理技術,以開源界大名鼎鼎的Hadoop、Spark、Storm 及后起之秀Flink 為代表,當然國內一線互聯網企業像BAT 也都有各自獨特的處理技術,但由于國內大環境所致,商業公司在運作時首先考慮的是商業及保密措施,使得國內開源界在分布式處理方面相對薄弱,基本上是空白戰場。 目前看來,Hadoop 比較適合用于離線數據處理,Spark 及Storm 的實時處理技術正好彌補了Hadoop 實時處理的欠缺。雖然Hadoop、Spark 及Storm 都在快速發展,但國內真正深入理解這三者的人畢竟鳳毛麟角,而且Hadoop 集群本身動輒就需要上百臺服務器的集群,這對中小企業來說基本上是不可能的,而且中小企業也很少能夠擁有精通Hadoop、Spark 及Storm 的資深技術人員,這就導致絕大部分中小企業的大數據處理基本上處于停滯狀態,它們眼睜睜地看著大量數據產生,而無法進行相應處理。即使眾中小企業花費巨資招聘了Storm、Spark Streaming開發人員,由于自身平臺的限制,開發者基本上只是簡單地調用其封裝好的API,很難從源碼跟蹤到問題根源,也就造成生產環境下有很多問題難以解決。 時代在變,技術也在變,沒有任何一項技術會解決所有問題,對企業及個人開發而言,適合自己的才是最好的。Hadoop3.x 以后將會調整方案架構,將MapReduce 基于內存+IO+磁盤,共同處理數據,這點和當前的Spark 很像;Storm1.0也打破了之前一直存在的詬病:Nimbus 單點問題,實現了HA,這點和阿里推出的JStorm 很像,而JStorm 本身也是源自Storm;最近Twitter 又推出Heron,兼容Storm。Storm 也提供了類似Spark Streaming 的微批處理方式——trident(以一組tuple 為單位)。上述開源項目之間都在互相學習對方優點,取其精華為己所用。鑒于上述原因,本書作者經過多年的深入思考,結合自己碩士畢業8 年多的一線互聯網開發經驗,根據Hadoop 的Map/Reduce 及當前主流實時計算框架Storm的任務分發和Spark Streaming 的Mini-Batch 處理思想,利用時下比較流行的MQ、RPC、NoSQL 等,獨力研發了一套輕量級分布式實時計算服務框架——light_drtc。其最大特點就是簡單易用,它可以幫助開發者快速實現自定義的實時計算平臺,其設計目的是為了降低當前大數據時代的分布式實時計算入門門檻,方便初、中級讀者上手,快速實現企業所需計算實時性要求比較高的業務邏輯。它本身既可以作為獨立的分布式實時計算平臺,也可以以嵌入式方式,作為其他項目的基礎類庫存在。 Light_drtc 目前以Java8 為基礎設計和實現,框架主要包括三部分:實時數據集服務(CollectNode,簡稱CN)、資源協調及任務管理服務(AdminNode,簡稱AN)和任務計算服務(JobNode,簡稱JN)。這套框架擴展靈活,各個相關組件可以自由擴展(目前框架已整合Kafka 和RabbitMQ,物理分布上可以將CN 和AN 整合在一起),集群節點所完成計算所需要的開發語言不僅限于Java,也可以 用時下流行的各種開發語言。 對中小企業而言,利用light_drtc 搭建分布式實時計算平臺,不需要龐大的服務器集群規模,完全可以根據自己業務需要。例如抽取9 臺服務器:其中3 臺服務器同時兼做CN 和AN,6 臺服務器做JN,每個AN 獨立管理2 個JN,即可搭建自己的高可用分布式實時計算集群。在light_drtc 框架中,每個AN 都有自己獨立管理的JN,且每個AN 至少獨立管理1 個JN。框架使用比較方便,尤其是如果開發者也選用Kafka 或RabbitMQ,對于CN 和AN 而言,僅需要開發者自定義MQ 相關配置及實現框架所定義的流數據解析接口,將實現類傳遞給框架AN 節點啟動類即可。對于JN,則需要開發者按照自己業務需求自行實現,框架中有豐富的實例可供參考。 本書偏重工程架構方面,主要內容除了作者自研的light_drtc 詳細介紹,還會以作者多年一線互聯網開發經驗角度,陸續向讀者介紹當前主流MQ、NoSQL、全文檢索Elasticsearch/Solr,及常用微服務架構技術實現RPC 和Web Service 的多種框架,最后介紹整個新聞個性化推薦系統的各個組成部分,對核心模塊用戶畫像實時更新做了詳細設計,并對比Storm、Spark Streaming 和light-drtc 不同實現方式。作者希望讀者通過閱讀本書,讓您對分布式實時計算系統的設計原理及相關實現技術有更加清晰的理解,也希望讓眾多中小企業可以快速組建自己的分布式實時計算平臺,也同時為國內分布式處理技術貢獻一點自己的力量。最后給讀者朋友分享一下個人多年學習的一點心得:萬丈高樓平地起,任何 一項別人看似游刃有余的技能都是經過時間打磨后的熟能生巧,希望讀者朋友們經過自己的奮斗都可以實現人生目標,達到人生頂峰。 王成光 2016/8/5 |
內容簡介:“授人以魚不如授人以漁”,本書是作者以如此初心寫成的,主要參考當前主流分布式實時計算框架Storm的任務分發和Spark Streaming的Mini-Batch設計思想,以及底層實現技術,開源了作者自研的輕量級分布式實時計算框架——Light_drtc,并且重點介紹設計思想和相關實現技術(Kafka/RabbitMQ、Redis/SSDB 、GuavaCache、MongoDB、HBase、ES/SolrCloud、Thrift、Avro、Jetty),最后從工程角度向大家介紹完整的個性化推薦系統,并實例介紹Light_drtc在用戶畫像實時更新的應用。本書描述淺顯易懂,希望讀者理解分布式實時計算的實現原理,并快速上手解決實際問題。 |
目錄:第1 章 分布式實時計算框架介紹.........................................................................................1 1.1 分布式計算Hadoop....................................................................................................1 1.2 分布式實時計算...........................................................................................................3 1.2.1 Spark Streaming.....................................................................................................3 1.2.2 Storm .....................................................................................................................6 1.2.3 其他框架...............................................................................................................8 1.3 為什么自研....................................................................................................................8 1.4 總結...............................................................................................................................10 第2 章 light_drtc 簡介及使用說明...................................................................................... 11 2.1 light_drtc 框架簡介................................................................................................... 11 2.2 light_drtc 代碼結構...................................................................................................12 2.3 light_drtc 重要配置項...............................................................................................14 2.4 light_drtc 和Storm 比較...........................................................................................15 2.5 light_drtc 使用說明...................................................................................................16 2.5.1 ACN(AN 和CN 整合)作為獨立服務...........................................................16 2.5.2 CN、AN 作為獨立服務.....................................................................................20 2.5.3 任務計算JN........................................................................................................23 2.6 總結...............................................................................................................................26 第3 章 light_drtc 核心技術實現...........................................................................................27 3.1 light_drtc 技術架構...................................................................................................27 3.2 light_drtc 計算框架設計思想.................................................................................30 3.2.1 CN 設計思想.......................................................................................................30 3.2.2 AN 多主模式設計思想.......................................................................................31 3.2.3 JN 設計思想........................................................................................................34 3.3 light_drtc 核心技術的實現......................................................................................36 3.3.1 實時收集數據CN...............................................................................................36 3.3.2 任務協調管理AN...............................................................................................40 3.3.3 任務計算JN........................................................................................................49 3.4 總結...............................................................................................................................50 第4 章 消息隊列MQ...............................................................................................................51 4.1 消息隊列使用場景....................................................................................................51 4.2 消息隊列原理.............................................................................................................53 4.2.1 MQ 使用流程......................................................................................................53 4.2.2 MQ 基本概念......................................................................................................54 4.2.3 MQ 通信模式......................................................................................................55 4.2.4 目前知名MQ 比較.............................................................................................56 4.3 MQ 消費狀態監控.....................................................................................................61 4.3.1 KafkaOffsetMonitor 介紹....................................................................................62 4.3.2 KafkaOffsetMonitor 部署....................................................................................62 4.4 RabbitMQ 和Kafka 的基本使用...........................................................................64 4.4.1 RabbitMQ 讀寫實例...........................................................................................64 4.4.2 Kafka 讀寫實例...................................................................................................68 4.5 總結...............................................................................................................................71 第5 章 內存數據庫Redis3.0 及SSDB............................................................................72 5.1 Redis 相關介紹...........................................................................................................72 5.1.1 Redis3.0 集群架構..............................................................................................73 5.1.2 Redis3.0 集群選舉與容錯...................................................................................74 5.1.3 SSDB 簡介..........................................................................................................75 5.2 Redis3.0 集群搭建.....................................................................................................76 5.2.1 集群所依賴的Ruby 環境...................................................................................77 5.2.2 Redis 集群創建...................................................................................................77 5.2.3 Redis 集群驗證...................................................................................................78 5.2.4 SSDB 簡單部署..................................................................................................79 5.3 Redis 管理及使用......................................................................................................81 5.3.1 Redis 基本使用...................................................................................................81 5.3.2 Redis 管理...........................................................................................................83 5.4 Redis 客戶端應用......................................................................................................86 5.4.1 Redis3.0 客戶端..................................................................................................86 5.4.2 SSDB 客戶端......................................................................................................89 5.5 本地緩存Guava Cache.............................................................................................90 5.5.1 認識Guava Cache ...............................................................................................90 5.5.2 Guava Cache 使用...............................................................................................91 5.5.3 Java 客戶端使用.................................................................................................94 5.6 總結...............................................................................................................................97 第6 章 NoSQL:MongoDB3.0 和HBase1.0 ................................................................98 6.1 MongoDB3.0 和HBase1.0 新特性........................................................................99 6.1.1 MongoDB3.0 新特性..........................................................................................99 6.1.2 HBase1.0 新特性...............................................................................................102 6.1.3 MongoDB 和HBase 比較.................................................................................104 6.2 MongoDB3.0 集群和索引.....................................................................................105 6.2.1 MongoDB3.0 集群............................................................................................105 6.2.2 Mongo 索引介紹...............................................................................................107 6.3 HBase 底層實現介紹..............................................................................................108 6.3.1 HBase 相關Hadoop 體系.................................................................................108 6.3.2 HBase 系統架構................................................................................................ 110 6.4 Mongo 和HBase 客戶端使用.............................................................................. 113 6.4.1 Mongo 客戶端................................................................................................... 113 6.4.2 HBase 客戶端.................................................................................................... 119 6.5 總結..............................................................................................................................124 第7 章 全文檢索:ElasticSearch2.x...............................................................................125 7.1 認識ElasticSearch 和Solr.....................................................................................125 7.1.1 ElasticSearch 和Solr 基本介紹........................................................................125 7.1.2 ES 基本概念......................................................................................................127 7.1.3 ES 和SolrCloud 集群結構................................................................................129 7.1.4 ES 使用案例......................................................................................................130 7.2 ES 和Solr 比較分析...............................................................................................131 7.2.1 ES 和Solr 發展比較.........................................................................................131 7.2.2 ES 和Solr 綜合比較.........................................................................................132 7.3 ES 集群介紹..............................................................................................................135 7.3.1 插件安裝...........................................................................................................135 7.3.2 中文分詞安裝...................................................................................................136 7.3.3 ES2.X 集群節點類型........................................................................................138 7.3.4 ES 配置事項......................................................................................................142 7.4 ES 客戶端使用.........................................................................................................144 7.4.1 ES 客戶端連接..................................................................................................145 7.4.2 ES 基本操作......................................................................................................146 7.4.3 ES 高級使用......................................................................................................150 7.5 ES 在自研框架中的作用.......................................................................................154 7.6 總結..............................................................................................................................155 第8 章 微服務架構通信——RPC 和Web Service ....................................................156 8.1 微服務架構由來.......................................................................................................156 8.1.1 微服務與SOA 比較..........................................................................................157 8.1.2 微服務架構的優缺點........................................................................................159 8.1.3 微服務雪崩效應的防范....................................................................................161 8.2 RPC 介紹及實踐......................................................................................................163 8.2.1 Thrift/Nifty 介紹................................................................................................163 8.2.2 Avro 介紹..........................................................................................................168 8.2.3 Dubbo/Dubbox 介紹..........................................................................................180 8.2.4 GRPC/ProtoBuf 介紹........................................................................................185 8.2.5 ZeroC ICE..........................................................................................................191 8.3 Web Service 介紹及實踐.......................................................................................199 8.3.1 SOAP 和Rest ....................................................................................................200 8.3.2 JWS(JDK 自身實現Web Service)...............................................................202 8.3.3 Jetty:嵌入式Servlet 容器...............................................................................204 8.3.4 基于Spring MVC..............................................................................................206 8.3.5 其他Web Service 框架..................................................................................... 211 8.4 總結..............................................................................................................................212 第9 章 綜合實例:新聞推薦中的用戶畫像近實時更新............................................213 9.1 個性化推薦系統組成.............................................................................................213 9.1.1 用戶行為收集...................................................................................................214 9.1.2 行為日志解析...................................................................................................216 9.1.3 常用推薦算法...................................................................................................221 9.1.4 用戶畫像數據倉庫...........................................................................................245 9.1.5 元數據索引庫...................................................................................................247 9.1.6 用戶推薦服務...................................................................................................248 9.2 新聞推薦中用戶畫像近實時更新設計.............................................................248 9.2.1 新聞推薦中用戶畫像構成................................................................................250 9.2.2 新聞推薦中用戶畫像標簽數據字典................................................................251 9.2.3 新聞推薦用戶畫像實時更新流程....................................................................257 9.3 新聞推薦用戶畫像近實時更新技術實現.........................................................260 9.3.1 Storm 接入Kafka 實時計算實例.....................................................................260 9.3.2 Spark Streaming 接入Kafka 實時計算實例....................................................265 9.3.3 Light_drtc 接入Kafka.......................................................................................270 9.3.4 用戶畫像實時更新核心實現............................................................................270 9.4 總結..............................................................................................................................280 |
序: |
|