構建Apache Kafka流數據應用 ( 簡體 字) |
作者:[印] 曼尼施·庫馬爾 尚沙勒·辛格 著 | 類別:1. -> 程式設計 -> Kafka |
譯者:蔣守壯 譯 |
出版社:清華大學出版社 | 3dWoo書號: 49905 詢問書籍請說出此書號!【有庫存】 NT售價: 395 元 |
出版日:9/1/2018 |
頁數:236 |
光碟數:0 |
|
站長推薦: |
印刷:黑白印刷 | 語系: ( 簡體 版 ) |
|
加入購物車 │加到我的最愛 (請先登入會員) |
ISBN:9787302509363 |
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 序 |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證) |
作者序: |
譯者序: |
前言:Apache Kafka是一個流行的分布式流平臺,充當消息隊列或企業消息系統,允許你發布和訂閱流記錄,并以容錯的方式進行處理。 本書是使用Apache Kafka和其他大數據工具設計和構建企業級流應用(應用程序)的綜合指南,包括構建此類應用程序的最佳實踐,并解決了一些常見的挑戰性問題,例如如何有效地使用Kafka來輕松處理高容量數據。本書首先介紹消息系統類型,然后詳細介紹Apache Kafka及其內部細節,接著介紹如何使用各種框架和工具(如Apache Spark、Apache Storm等)設計流應用程序。掌握了這些基礎知識以后,我們將帶你理解Apache Kafka中更高級的概念,例如容量規劃和安全性。 到本書結束時,你將掌握使用Apache Kafka時所需要的所有信息,并使用它設計高效的流數據應用程序。 本書涵蓋的內容 第1章,消息系統介紹,介紹消息系統的概念。本章涵蓋了消息系統及其企業需求的概述,它進一步強調了使用諸如點到點或發布/訂閱等消息系統的不同方式,并引入了AMQP。 第2章,介紹Kafka——分布式消息平臺,介紹諸如Kafka這樣的分布式消息平臺。本章涵蓋了Kafka架構,并觸及內部組件,進一步探討了每個Kafka組件的角色和重要性,以及它們如何對低延遲、可靠性和Kafka消息系統的可伸縮性做出貢獻。 第3章,深入研究Kafka生產者,是關于如何向Kafka系統發布消息的內容。本章進一步介紹了Kafka生產者APIs及其用法,展示了使用Java和Scala編程語言調用Kafka生產者APIs的例子。需要深入了解生產者消息流以及一些用于向Kafka Topics生產消息的常見模式,為Kafka的生產者提供了一些性能優化的技術。 第4章,深入研究Kafka消費者,是關于如何從Kafka系統中消費消息。這也包括Kafka消費者APIs及其使用,展示了使用Java和Scala編程語言調用Kafka消費者APIs的例子,深入探討了消費者消息流和一些常見的從Kafka Topics中消費消息的模式,為Kafka消費者提供了一些性能優化的技術。 第5章,集成Kafka構建Spark Streaming應用,是關于如何將Kafka與流行的分布式處理引擎Apache Spark集成在一起的內容。本章提供了Apache Kafka的簡要概述,將Kafka與Spark集成的不同方法以及它們的優缺點,并展示了Java和Scala中的用例。 第6章,集成Kafka構建Spark Storm應用,是關于如何將Kafka與流行的實時處理引擎Apache Storm集成在一起的內容。本章還簡要介紹了Apache Storm和Apache Heron,展示了使用Apache Storm和Kafka進行事件處理的不同方法的示例,包括有保證的事件處理。 第7章,使用Kafka與Confluent Platform,是關于新興的流平臺Confluent的,使你能夠有效地使用Kafka和許多其他額外的功能,展示了許多本章涵蓋主題的許多例子。 第8章,使用Kafka構建ETL管道,介紹Kafka Connect,這是一種常見組件,用于構建涉及Kafka的ETL管道,強調如何在ETL管道中使用Kafka Connect,并討論一些相關深入的技術概念。 第9章,使用Kafka Streams構建流應用程序,是關于如何使用Kafka Stream構建流應用程序的內容,這是Kafka 0.10發行版的一個組成部分,也包括使用Kafka Stream構建快速可靠的流應用程序,包括示例。 第10章,Kafka集群部署,著重于在企業級生產系統上部署Kafka集群,深入涵蓋了Kafka集群,例如如何進行容量規劃、如何管理單個/多集群部署等,還介紹了如何在多租戶環境中管理Kafka以及Kafka數據遷移所涉及的各個步驟。 第11章,在大數據應用程序中使用Kafka,介紹了在大數據應用程序中使用Kafka的一些方面,包括如何管理Kafka中的高容量、如何確保有保證的消息傳遞、處理故障而不丟失數據的最佳方式以及在大數據管道中使用Kafka時可應用的一些治理原則。 第12章,Kafka安全,是關于保護Kafka集群的內容,包括身份驗證、授權機制以及示例。 第13章,流應用程序設計的考慮,是關于構建流應用程序的不同設計考慮的內容,可以讓你了解并行性、內存調優等方面,全面提供了設計流應用程序的不同范式。 對于這本書你需要什么 你將需要以下軟件來處理本書中的示例: Apache Kafka、大數據、Apache Hadoop、發布和訂閱、企業消息系統、分布式流、生產者API、消費者API、Streams API、Connect API。 這本書適合誰 如果你想以最簡單的方式學習如何使用Apache Kafka和Kafka生態系統中的各種工具,本書就是為你準備的。需要具有一些Java編程經驗才能充分利用這本書。 排版約定 在本書中,你將會發現許多區分不同類型信息的文本格式。下面是這些樣式的一些例子及其含義的解釋。 代碼塊的設置如下: import org.apache.Kafka.clients.producer.KafkaProducer; import org.apache.Kafka.clients.producer.ProducerRecord; import org.apache.Kafka.clients.producer.RecordMetadata;
任何命令行輸入或輸出的寫法如下: sudo su - hdfs -c "hdfs dfs -chmod 777 /tmp/hive" sudo chmod 777 /tmp/hive
部分新術語和重要單詞會以粗體顯示。例如,在屏幕上看到的單詞或菜單中出現的文字如下所示:“為了下載新模塊,我們將轉到Files | Settings | Project Name | Project Interpreter”。 警告或重要提示使用圖標: 提示和技巧使用圖標: 讀者反饋 歡迎來自我們讀者的反饋。讓我們知道你對這本書的看法——你喜歡或不喜歡的內容。讀者反饋對我們來說很重要,因為它可以幫助我們開發出你真正可以獲得最大收益的主題。 為了給我們提供反饋,請發送E-mail至:jiangshouzhuang@gmail.com,并在你的郵件主題中注明這本書的書名。
|
內容簡介:Apache Kafka是一個流行的分布式流平臺,充當消息隊列或企業消息傳遞系統。它用來發布和訂閱數據流,并在發生錯誤時以容錯方式處理它們。 本書共13章,全面介紹使用Apache Kafka等大數據工具設計和構建企業級流應用方面的內容,包括構建流應用程序的最佳實踐,并解決了一些常見的挑戰,例如如何高效地使用Kafka輕松處理高容量數據。完成本書的學習后,讀者能使用Kafka設計高效的流數據應用程序。 本書既適合Kafka初學者、大數據應用開發人員、大數據應用運維人員閱讀,也適合高等院校與培訓學校相關專業的師生教學參考。 |
目錄:其他生產者配置 40 Java編程語言:Kafka生產者示例 42 常見的消息發布模式 44 最佳實踐 46 總結 48 第4章深入研究Kafka消費者 49 Kafka消費者內部機制 50 理解Kafka消費者的職責 50 Kafka消費者API 52 消費者配置 52 訂閱和輪詢 54 提交和輪詢 56 其他配置 59 利用Java實現Kafka消費者 60 利用Scala實現Kafka消費者 62 Rebalancelisteners 64 常用的消息消費模式 64 最佳實踐 67 總結 68 第5章集成Kafka構建SparkStreaming應用 69 Spark介紹 70 Spark架構 70 Spark的核心 72 Spark生態系統 73 SparkStreaming 75 Receiver-based集成 75 Receiver-basedapproach的缺點 77 Receiver-based集成的Java示例 77 Receiver-based集成的Scala示例 79 Directapproach 80 Directapproach的Java示例 82 Directapproach的Scala示例 83 日志處理用例—欺詐IP檢測 84 Maven 85 生產者 89 Reader屬性 89 生產者代碼 90 欺詐IP查找 92 暴露Hive表 93 Streaming代碼 94 總結 97 第6章集成Kafka構建Storm應用 98 ApacheStorm介紹 98 Storm集群架構 99 Storm應用程序的概念 100 ApacheHeron介紹 101 Heron架構 102 Herontopology架構 103 集成ApacheKafka與ApacheStorm-Java 104 示例 105 集成ApacheKafka與ApacheStorm-Scala 110 用例—使用Storm、Kafka和Hive處理日志 114 生產者 118 生產者代碼 119 欺詐IP查找 122 Storm應用程序 123 運行項目 132 總結 133 第7章使用Kafka與ConfluentPlatform 134 ConfluentPlatform介紹 135 深入ConfluentPlatform架構 136 理解KafkaConnect和KafkaStream 139 KafkaStreams 139 使用SchemaRegistry與Avro交互 140 將Kafka數據移動到HDFS 142 Camus 142 運行Camus 143 Gobblin 144 Gobblin架構 144 KafkaConnect 146 Flume 147 總結 150 第8章使用Kafka構建ETL管道 151 在ETL管道中使用Kafka 151 介紹KafkaConnect 153 深入研究KafkaConnect 154 介紹使用KafkaConnect示例 155 KafkaConnect常見的用例 159 總結 160 第9章使用KafkaStreams構建流應用程序 161 介紹KafkaStreams 161 在流處理中使用Kafka 162 KafkaStream—輕量級流處理庫 163 KafkaStream架構 164 集成框架的優勢 166 理解Tables和Streams 167 Maven依賴 167 KafkaStream單詞計數 168 KTable 170 KafkaStream使用案例 171 KafkaStreams的Maven依賴 171 reader屬性 172 IP記錄生產者 173 IP查詢服務 176 欺詐檢測應用程序 177 總結 179 第10章Kafka集群部署 180 Kafka集群的內部結構 180 Zookeeper角色 181 復制 182 元數據(Metadata)請求處理 184 生產者(Producer)請求處理 184 消費者(Consumer)請求處理 185 容量規劃 186 容量規劃的目標 186 復制因子 186 內存 187 硬盤驅動器 187 網絡 188 CPU 188 Kafka單集群部署 189 Kafka多集群部署 190 退役brokers 192 數據遷移 192 總結 193 第11章在大數據應用中使用Kafka 194 管理Kafka的高容量 195 適當的硬件選擇 195 生產者讀取和消費者寫入的選擇 197 Kafka消息傳遞語義 198 至少一次傳遞 199 最多一次傳遞 202 正好一次傳遞 203 大數據和Kafka常見的使用模式 204 Kafka和數據治理 206 報警和監控 207 有用的Kafka指標 208 Kafka生產者指標 208 Kafkabroker指標 209 Kafka消費者指標 209 總結 210 第12章Kafka安全 211 Kafka安全的概述 211 SSL有線加密 212 Kafka啟用SSL的步驟 213 為Kafkabroker配置SSL 214 為Kafka客戶端配置SSL 214 KerberosSASL認證 215 在Kafka中啟用SASL/GSSAPI的步驟 217 為Kafkabroker配置SASL 217 為Kafka客戶端配置SASL─生產者和消費者 219 理解ACL和授權 220 常見的ACL操作 221 ACLs列表 222 Zookeeper身份驗證 223 ApacheRanger授權 224 為Ranger添加Kafka服務 224 添加策略(policies) 225 最佳實踐 227 總結 229 第13章流應用程序設計的考慮 230 延遲和吞吐量 231 數據和狀態的持久性 232 數據源 232 外部數據查詢 233 數據格式 233 數據序列化 234 并行度 234 無序的事件 235 消息處理語義 235 總結 236 |
序: |