具體描述
基本信息
作者: 硃凱
叢書名: 大數據技術叢書
齣版社:機械工業齣版社
ISBN:9787111595953
上架時間:2018-4-9
齣版日期:2018 年4月
開本:16開
版次:1-1
目錄
推薦序 思者常新,厚積薄發
前 言
第1章 淺談企業級大數據平颱的重要性 1
1.1 缺乏統一大數據平颱的問題 2
1.1.1 資源浪費 2
1.1.2 數據孤島 2
1.1.3 服務孤島 3
1.1.4 安全存疑 3
1.1.5 缺乏可維護性和可擴展性 3
1.1.6 缺乏可復製性 4
1.2 構建統一大數據平颱的優勢 4
1.3 企業級大數據平颱需要具備的基本能力 6
1.3.1 集群管理與監控 7
1.3.2 數據接入 7
1.3.3 數據存儲與查詢 7
1.3.4 數據計算 8
1.3.5 平颱安全與管理 10
1.4 平颱輔助工具 12
1.5 本章小結 13
第2章 企業級大數據平颱技術棧介紹 15
2.1 HDFS 16
2.1.1 概述 16
2.1.2 RAID技術 17
2.1.3 核心設計目標 18
2.1.4 命名空間 19
2.1.5 數據模型 20
2.1.6 Namenode和Datanode 20
2.1.7 使用場景 21
2.2 Zookeeper 22
2.2.1 概述 22
2.2.2 核心特性 23
2.2.3 命名空間 24
2.2.4 數據模型 24
2.2.5 節點狀態監聽 25
2.2.6 原子消息廣播協議 25
2.2.7 使用場景 32
2.3 HBase 33
2.3.1 概述 33
2.3.2 數據模型 34
2.3.3 Regions 34
2.3.4 HBase Master 35
2.3.5 Region Server 36
2.3.6 MemStore與HFile 37
2.3.7 使用場景 37
2.4 YARN 38
2.4.1 概述 38
2.4.2 資源模型和Container 40
2.4.3 ResourceManager 40
2.4.4 ApplicationMaster 40
2.4.5 NodeManager 41
2.4.6 單一集群架構 41
2.4.7 工作流程 41
2.4.8 使用場景 43
2.5 Spark 43
2.5.1 概述 43
2.5.2 數據模型 45
2.5.3 編程模型和作業調度 45
2.5.4 依賴 46
2.5.5 容錯 47
2.5.6 集群模式 47
2.5.7 使用場景 48
2.6 本章小結 49
第3章 使用Ambari安裝Hadoop集群 50
3.1 概述 50
3.2 集群設計 52
3.2.1 主控節點 52
3.2.2 存儲與計算節點 53
3.2.3 安全認證與管理節點 54
3.2.4 協同管理與其他節點 54
3.3 Ambari的安裝、配置與啓動 55
3.3.1 安裝前的準備 55
3.3.2 安裝Ambari-Server 62
3.3.3 Ambari-Server目錄結構 64
3.3.4 配置Ambari-Server 65
3.3.5 啓動Ambari-Server 66
3.4 新建集群 67
3.4.1 設置集群名稱並配置HDP安裝包 67
3.4.2 配置集群 69
3.5 Ambari控製颱功能簡介 77
3.5.1 集群服務管理 78
3.5.2 集群服務配置 80
3.5.3 輔助工具 82
3.6 本章小結 86
第4章 構建企業級平颱安全方案 87
4.1 淺談企業級大數據平颱麵臨的安全隱患 88
4.1.1 缺乏統一的訪問控製機製 88
4.1.2 缺乏統一的資源授權策略 88
4.1.3 缺乏Hadoop服務安全保障 89
4.2 初級安全方案 89
4.2.1 訪問控製 89
4.2.2 數據授權與管理 97
4.3 本章小結 110
第5章 Hadoop服務安全方案 111
5.1 Kerberos協議簡介 111
5.2 使用FreeIPA安裝Kerberos和LDAP 113
5.2.1 安裝FreeIPA 115
5.2.2 IPA-Server管理控製颱功能介紹 119
5.2.3 IPA CLI功能介紹 122
5.3 開啓Ambari的Kerberos安全選項 127
5.3.1 集成前的準備 127
5.3.2 集成IPA 129
5.3.3 測試Kerberos認證 133
5.4 本章小結 136
第6章 單點登錄與用戶管理 137
6.1 集成單點登錄 139
6.1.1 CAS簡介 140
6.1.2 安裝CAS-Server 141
6.1.3 集成Knox網關與CAS-
Server 148
6.1.4 集成Ranger與CAS-Server 151
6.1.5 集成Ambari與CAS-Server 152
6.2 實現統一的用戶管理係統 155
6.3 使用Java程序調用腳本 161
6.4 創建Ranger擴展用戶 166
6.5 本章小結 169
第7章 搭建平颱管理端RESTful服務 170
7.1 搭建RESTful服務框架 170
7.2 用戶查詢 174
7.2.1 引入LDAP模塊 174
7.2.2 配置LDAP 174
7.2.3 實現持久層 177
7.2.4 實現服務層 181
7.2.5 實現RESTful服務 181
7.2.6 整閤用戶管理 183
7.3 RESTful服務安全認證 184
7.3.1 用戶登錄服務 185
7.3.2 使用JWT認證 185
7.3.3 創建用戶登錄RESTful服務 188
7.3.4 認證過濾器 194
7.3.5 測試服務安全認證 198
7.4 數據倉庫數據查詢 200
7.4.1 創建JDBC連接 200
7.4.2 Kerberos登錄 202
7.4.3 使用JDBC協議查詢 202
7.4.4 實現服務層與RESTful服務 206
7.4.5 測試查詢 207
7.5 數據倉庫元數據查詢 208
7.5.1 使用query服務查詢數倉元數據 208
7.5.2 引入JdbcTemplate模塊 209
7.5.3 增加Hive元數據庫配置 210
7.5.4 實現元數據持久層 211
7.5.5 實現元數據服務層與RESTful服務 216
7.5.6 測試元數據查詢 218
7.6 本章小結 219
第8章 Spark任務與調度服務 220
8.1 提交Spark任務的3種方式 220
8.1.1 使用Spark-Submit腳本提交 220
8.1.2 使用Spark Client提交 226
8.1.3 使用YARN RESTful API提交 229
8.2 查詢Spark日誌 234
8.3 任務調度 236
8.3.1 引入Quartz模塊 237
8.3.2 增加Quartz配置 237
8.3.3 編寫調度任務 240
8.3.4 改進空間 241
8.4 本章小結 241
附錄A Hadoop簡史 242
附錄B Hadoop生態其他常用組件一覽 245
附錄C 常用組件配置說明 248
智能數據時代的基石:企業級大數據平颱構建的藝術與實踐 在信息爆炸的當下,數據已成為驅動企業決策、創新業務、提升競爭力的核心要素。如何有效地收集、存儲、處理、分析和應用海量、異構、高速增長的數據,是每一個現代企業都必須麵對的挑戰。本書並非探討具體技術的工具手冊,而是旨在深入解析構建一個強大、靈活、可擴展的企業級大數據平颱所需的戰略思維、架構設計理念和核心實現原則。它將帶領讀者穿越傳統數據孤島的迷霧,抵達智能化數據時代的廣闊天地。 一、 平颱構建的戰略藍圖:從業務需求到技術選型 構建企業級大數據平颱,絕非簡單的技術堆砌,而是企業數字化轉型戰略的重要組成部分。本書的第一部分將聚焦於平颱構建的戰略層麵,引導讀者理解“為何而建”以及“建什麼”。 理解企業的數據價值與應用場景: 我們將從企業業務的根本需求齣發,深入剖析不同行業(如金融、零售、製造、醫療、互聯網等)在數據采集、分析和應用方麵的共性與特性。例如,在金融領域,實時反欺詐、精準營銷、風險評估對數據處理的低延遲和高吞吐量提齣瞭極緻要求;而在零售業,客戶畫像構建、供應鏈優化、個性化推薦則依賴於對海量交易和用戶行為數據的深度挖掘。理解這些具體場景,是設計齣滿足實際需求的平颱的基礎。 數據驅動的業務轉型: 本部分將探討數據如何在企業內部發揮“潤滑劑”和“催化劑”的作用,推動業務流程的優化、産品服務的創新,以及決策模式的轉變。我們將分析如何通過建立數據驅動的文化,鼓勵員工擁抱數據、信任數據,並將其轉化為可執行的洞察。 大數據平颱的功能定位與核心能力: 一個成熟的大數據平颱應具備哪些核心能力?本書將詳細闡述數據采集與接入(Batch/Streaming)、數據存儲與管理(Data Lake/Data Warehouse)、數據處理與計算(ETL/ELT, Batch/Stream Processing)、數據服務與應用(API, BI, AI/ML),以及數據治理與安全等關鍵維度。這些能力的有機結閤,構成瞭平颱的基礎骨架。 技術選型的理性考量: 麵對紛繁復雜的大數據技術棧,如何做齣明智的選擇?本書將提供一套審慎的技術選型框架,強調權衡開源與商業、雲原生與私有化部署、成熟度與創新性等因素。我們將討論各種技術在不同場景下的優劣勢,例如,在流處理方麵,Kafka與Pulsar在消息隊列領域的特點;在分布式計算方麵,Spark與Flink在批處理和流處理性能上的差異;在存儲方麵,HDFS、S3、Ceph在對象存儲和文件存儲上的適用性。這種理性分析,旨在幫助讀者規避盲目跟風,構建適閤自身情況的技術體係。 二、 平颱架構的宏觀設計:係統性與伸縮性的平衡 成功的大數據平颱離不開精心設計的架構。本書的第二部分將深入探討構建一個健壯、高效、可擴展的平颱架構所需的原則和方法。 分層架構的演進與實踐: 我們將從經典的數據倉庫、數據湖的概念齣發,逐步演進到現代數據平颱的分層架構,包括但不限於:數據采集層、數據存儲層、數據處理層、數據服務層、數據應用層以及支撐層(如元數據管理、調度、監控、安全)。每一層的功能定位、相互關係以及在整個平颱中的職責都將被清晰界定。 數據湖與數據倉庫的融閤: 傳統的“數據倉庫”與新興的“數據湖”各有韆鞦,而現代大數據平颱往往需要將兩者優勢結閤。本書將深入剖析如何構建“湖倉一體”或“數據湖倉”的解決方案,實現結構化、半結構化、非結構化數據的統一存儲與高效訪問,支持多樣化的分析需求,從BI報錶到機器學習模型訓練。 批處理與流處理的協同: 實時性與時效性是大數據平颱的重要考量。我們將探討如何設計支持批處理(Batch Processing)和流處理(Stream Processing)的混閤架構,實現數據的準實時更新與分析。理解Lambda架構、Kappa架構等不同模式的演進,以及如何選擇適閤的流處理引擎(如Flink, Spark Streaming)和批處理引擎,是實現這一協同的關鍵。 微服務與容器化技術: 隨著大數據平颱的復雜性增加,采用微服務架構能夠提升係統的靈活性、可維護性和彈性。本書將討論如何將大數據平颱中的各個組件(如數據采集服務、計算任務調度、數據服務API等)解耦為獨立的微服務,並結閤Docker、Kubernetes等容器化技術,實現高效的部署、管理和彈性伸縮。 雲原生與混閤雲策略: 雲計算為大數據平颱提供瞭前所未有的彈性、靈活性和成本效益。本書將分析如何在雲環境中構建大數據平颱,包括公有雲、私有雲以及混閤雲的策略。我們將探討雲原生大數據服務(如AWS EMR, Azure HDInsight, Google Dataproc, Databricks)的優勢,以及如何在混閤雲環境下實現跨雲的數據遷移與統一管理。 高可用性與災難恢復: 關鍵業務數據的可靠性至關重要。本書將重點闡述如何設計高可用(High Availability, HA)和災難恢復(Disaster Recovery, DR)機製,確保平颱在硬件故障、網絡中斷甚至區域性災難發生時,仍能提供不間斷的服務,保障數據的安全與業務的連續性。 三、 核心實現的關鍵要素:技術細節與工程實踐 架構設計離不開具體的實現。本書的第三部分將深入剖析支撐大數據平颱運行的核心技術和工程實踐。 海量數據存儲與管理: 分布式文件係統(HDFS, S3等): 深入理解其原理、適用場景、性能調優,以及在數據湖中的地位。 分布式數據庫與NoSQL: 探討關係型數據庫(如PostgreSQL, MySQL)、NewSQL(如TiDB)、MPP數據庫(如Greenplum, Snowflake)以及多種NoSQL數據庫(如HBase, Cassandra, MongoDB, Redis)的特性、優劣勢,以及在不同數據存儲需求下的選擇。 數據湖格式(Parquet, ORC, Avro): 分析這些列式存儲格式在壓縮率、查詢性能、Schema演進等方麵的優勢,及其在數據湖中的重要性。 分布式計算框架: Hadoop生態係統: 從MapReduce到YARN,理解分布式計算的基礎。 Apache Spark: 深入解析Spark的RDD、DataFrame、Dataset API,理解其內存計算、DAG調度、Catalyst優化器等核心機製,及其在批處理和流處理中的強大能力。 Apache Flink: 重點介紹Flink的事件驅動、真正的流處理特性、狀態管理、容錯機製,以及在低延遲、高吞吐量場景下的應用。 SQL on Hadoop/Data Lake: 探討Presto, Hive, Impala等SQL查詢引擎,以及如何實現對數據湖中數據的直接SQL查詢。 數據采集與集成: ETL/ELT工具與策略: 分析傳統ETL工具(如Informatica, DataStage)與新興ELT工具(如dbt, Spark SQL)在數據整閤中的作用,以及如何設計高效的數據管道。 實時數據采集: 重點講解Apache Kafka、Pulsar等消息隊列的原理、架構和應用,以及如何構建可靠的流數據采集係統。 Change Data Capture (CDC): 討論如何實現數據庫變更數據的實時捕獲與同步。 數據治理與元數據管理: 數據質量保障: 探討數據清洗、校驗、去重等策略,以及如何建立數據質量監控體係。 元數據管理: 強調元數據的集中管理、血緣追蹤、數據目錄構建,是實現數據可發現性、可理解性和可信度的關鍵。 數據安全與權限控製: 講解數據的加密、脫敏、訪問控製、審計等機製,確保數據閤規性與安全性。 作業調度與監控: 工作流調度器: 介紹Airflow, Oozie等工具,以及如何構建健壯、可觀測的自動化數據處理流程。 性能監控與日誌分析: 探討Prometheus, Grafana, ELK Stack等監控與日誌分析工具,如何實時掌握平颱運行狀態,快速定位與解決問題。 四、 平颱運維與持續演進:麵嚮未來的數據能力 構建隻是開始,持續的運維和演進纔是平颱生命力的保證。 彈性伸縮與成本優化: 探討如何根據業務負載動態調整平颱資源,實現成本效益最大化。 自動化運維與CI/CD: 引入DevOps理念,實現平颱的自動化部署、測試與發布。 性能調優與故障排除: 提供常見性能瓶頸分析與解決思路,以及故障診斷的係統性方法。 技術演進與生態整閤: 持續關注大數據技術的發展趨勢,及時引入和整閤新的技術與工具,保持平颱的先進性。 構建數據驅動的企業文化: 強調平颱不僅是技術設施,更是賦能業務、驅動創新的基石,以及如何通過平颱建設推動企業整體的數據素養提升。 本書力求以清晰的邏輯、嚴謹的論證和豐富的案例,為讀者構建一個關於企業級大數據平颱構建的全麵視角。它不僅僅是一本技術指南,更是一份指導企業在智能數據時代實現跨越式發展的戰略藍圖。通過閱讀本書,您將能深刻理解構建一個強大、靈活、可擴展的大數據平颱的精髓,並具備將理論轉化為實際解決方案的能力,為企業的數據資産保駕護航,開啓數據價值的新篇章。